14 layout.vertex_count = 0;
20 "Created PointCollectionNode with capacity for {} points", initial_capacity);
25 , m_points(
std::move(points))
30 layout.vertex_count =
static_cast<uint32_t
>(
m_points.size());
36 "Created PointCollectionNode with {} points",
m_points.size());
68 "Point index {} out of range (count: {})", index,
m_points.size());
78 "Point index {} out of range, returning zero", index);
103 layout->vertex_count =
static_cast<uint32_t
>(
m_points.size());
108 "PointSourceNode: Uploaded {} points to vertex buffer",
m_points.size());
#define MF_TRACE(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
uint32_t get_vertex_count() const
Get number of vertices.
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
std::optional< Kakshya::VertexLayout > get_vertex_layout() const
Get cached vertex layout.
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)
bool m_needs_layout_update
Flag indicating if layout needs update.
Base class for nodes that generate 3D geometry data.
void update_point(size_t index, const PointVertex &point)
Update specific point position.
void set_points(const std::vector< PointVertex > &points)
Set all points (replaces existing)
void add_point(const PointVertex &point)
Add a point to the collection.
PointCollectionNode(size_t initial_capacity=1024)
Create empty point source.
void add_points(const std::vector< PointVertex > &points)
Add multiple points.
void compute_frame() override
Compute frame - uploads positions to vertex buffer.
PointVertex get_point(size_t index) const
Get point position.
std::vector< PointVertex > m_points
void clear_points()
Clear all points.
@ 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)