7 Kakshya::VertexLayout create_point_vertex_layout()
9 Kakshya::VertexLayout layout;
10 layout.stride_bytes =
sizeof(PointVertex);
12 layout.attributes.push_back(Kakshya::VertexAttributeLayout {
14 .offset_in_vertex = 0,
15 .name =
"position" });
16 layout.attributes.push_back(Kakshya::VertexAttributeLayout {
18 .offset_in_vertex =
sizeof(glm::vec3),
20 layout.attributes.push_back(Kakshya::VertexAttributeLayout {
22 .offset_in_vertex =
sizeof(glm::vec3) +
sizeof(glm::vec3),
35 auto layout = create_point_vertex_layout();
36 layout.vertex_count = 0;
42 "Created PointCollectionNode with capacity for {} points", initial_capacity);
47 , m_points(
std::move(points))
51 auto layout = create_point_vertex_layout();
52 layout.vertex_count =
static_cast<uint32_t
>(
m_points.size());
58 "Created PointCollectionNode with {} points",
m_points.size());
90 "Point index {} out of range (count: {})", index,
m_points.size());
100 "Point index {} out of range, returning zero", index);
125 layout->vertex_count =
static_cast<uint32_t
>(
m_points.size());
130 "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.
@ UNKNOWN
Unknown or undefined modality.