MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
PointNode.cpp
Go to the documentation of this file.
1#include "PointNode.hpp"
3
5
7 : PointNode(PointVertex { .position = glm::vec3(0.0F), .color = glm::vec3(1.0F), .size = 10.0F })
8{
9}
10
11PointNode::PointNode(const glm::vec3& position, const glm::vec3& color, float size)
12 : PointNode(PointVertex { .position = position, .color = color, .size = size })
13{
14}
15
18 , m_point_vertex(point)
19{
20 const auto& stride = sizeof(PointVertex);
21 set_vertex_stride(stride);
22 const auto& layout = Kakshya::VertexLayout::for_points(stride);
23
24 set_vertex_layout(layout);
25
26 resize_vertex_buffer(1, false);
27
29 "Created PointNode at position ({}, {}, {}), color ({}, {}, {}), size {}",
32}
33
34void PointNode::set_position(const glm::vec3& position)
35{
36 m_point_vertex.position = position;
38}
39
40void PointNode::set_color(const glm::vec3& color)
41{
42 m_point_vertex.color = color;
44}
45
46void PointNode::set_size(float size)
47{
48 m_point_vertex.size = size;
50}
51
53{
54 set_vertices<PointVertex>(std::span { &m_point_vertex, 1 });
55
57 "PointNode: position ({}, {}, {}), color ({}, {}, {}), size {}",
60}
61
62} // namespace MayaFlux::Nodes
#define MF_TRACE(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
void resize_vertex_buffer(uint32_t vertex_count, bool preserve_data=false)
Resize vertex buffer to hold specified number of vertices.
void set_vertex_stride(size_t stride)
Set vertex stride (bytes per vertex)
Base class for nodes that generate 3D geometry data.
PointNode()
Create point at origin.
Definition PointNode.cpp:6
void set_color(const glm::vec3 &color)
Set point color.
Definition PointNode.cpp:40
void set_size(float size)
Set point size.
Definition PointNode.cpp:46
void set_position(const glm::vec3 &position)
Set point position.
Definition PointNode.cpp:34
void compute_frame() override
Compute frame - upload single point to vertex buffer.
Definition PointNode.cpp:52
Single 3D point in space.
Definition PointNode.hpp:21
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
static VertexLayout for_points(uint32_t stride=28)
Factory: Create layout for point primitives (position, color, size)