18 , m_point_vertex(point)
29 .offset_in_vertex = 0,
30 .name =
"position" });
35 .offset_in_vertex =
sizeof(glm::vec3),
41 .offset_in_vertex =
sizeof(glm::vec3) +
sizeof(glm::vec3),
49 "Created PointNode at position ({}, {}, {}), color ({}, {}, {}), size {}",
77 "PointNode: position ({}, {}, {}), color ({}, {}, {}), size {}",
#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.
void set_color(const glm::vec3 &color)
Set point color.
void set_size(float size)
Set point size.
void set_position(const glm::vec3 &position)
Set point position.
PointVertex m_point_vertex
void compute_frame() override
Compute frame - upload single point to vertex buffer.
Single 3D point in space.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
@ UNKNOWN
Unknown or undefined modality.
DataModality component_modality
Semantic type of this attribute e.g., VERTEX_POSITIONS_3D → vec3, TEXTURE_COORDS_2D → vec2.
Semantic description of a single vertex attribute.
uint32_t stride_bytes
Total bytes per vertex (stride in Vulkan terms) e.g., 3 floats (position) + 3 floats (normal) = 24 by...
uint32_t vertex_count
Total number of vertices in this buffer.
std::vector< VertexAttributeLayout > attributes
All attributes that make up one vertex Ordered by shader location (0, 1, 2, ...)
Complete description of vertex data layout in a buffer.