MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ set_vertex()

void MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex ( uint32_t  vertex_index,
const void *  data,
size_t  size_bytes 
)

Set a single vertex by index.

Parameters
vertex_indexIndex of vertex to set
dataPointer to vertex data
size_bytesSize of vertex data (should match stride)

Copies size_bytes starting at (vertex_index * stride).

Definition at line 84 of file GeometryWriterNode.cpp.

85{
86 if (!data || size_bytes == 0) {
88 "Cannot set vertex: null data or zero size");
89 return;
90 }
91
92 if (m_vertex_stride == 0) {
94 "Cannot set vertex: stride is 0");
95 return;
96 }
97
98 if (vertex_index >= m_vertex_count) {
100 "Vertex index {} out of range (count: {})",
101 vertex_index, m_vertex_count);
102 return;
103 }
104
105 if (size_bytes > m_vertex_stride) {
107 "Vertex data size {} exceeds stride {}; truncating",
108 size_bytes, m_vertex_stride);
109 size_bytes = m_vertex_stride;
110 }
111
112 const size_t offset = static_cast<size_t>(vertex_index) * m_vertex_stride;
113
114 if (offset + size_bytes > m_vertex_buffer.size()) {
116 "Vertex {} lies beyond the vertex buffer ({} bytes)",
117 vertex_index, m_vertex_buffer.size());
118 return;
119 }
120
121 std::memcpy(m_vertex_buffer.data() + offset, data, size_bytes);
122
124 "GeometryWriterNode: Set vertex {} ({} bytes)", vertex_index, size_bytes);
125
126 m_vertex_data_dirty = true;
127}
#define MF_ERROR(comp, ctx,...)
#define MF_TRACE(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
uint64_t offset
Definition Composite.cpp:10
std::vector< uint8_t > m_vertex_buffer
Vertex data buffer (flat array of bytes)
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
size_t m_vertex_stride
Bytes per vertex (stride for vertex buffer binding)
uint32_t m_vertex_count
Number of vertices in buffer.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References m_vertex_buffer, m_vertex_count, m_vertex_data_dirty, m_vertex_stride, MF_ERROR, MF_TRACE, MF_WARN, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, and offset.