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

◆ process_slot()

void MayaFlux::Nodes::Network::MeshFieldOperator::process_slot ( MeshSlot slot,
float  dt 
)
overridevirtual

Run the slot's FieldOperator (if bound) and write results back to slot.node via set_mesh_vertices().

Implements MayaFlux::Nodes::Network::MeshOperator.

Definition at line 179 of file MeshFieldOperator.cpp.

180{
181 auto it = m_field_ops.find(slot.index);
182 if (it == m_field_ops.end())
183 return;
184
185 auto& field_op = it->second;
186
187 if (field_op->get_vertex_count() == 0 && slot.node
188 && slot.node->get_mesh_vertex_count() > 0) {
189 field_op->initialize(slot.node->get_mesh_vertices());
191 "MeshFieldOperator: lazy-initialised slot {} ({} vertices)",
192 slot.index, slot.node->get_mesh_vertex_count());
193 }
194
195 field_op->process(dt);
196
197 if (field_op->is_vertex_data_dirty() && slot.node) {
198 slot.node->set_mesh_vertices(field_op->extract_mesh_vertices());
199 field_op->mark_vertex_data_clean();
200 }
201}
#define MF_DEBUG(comp, ctx,...)
std::unordered_map< uint32_t, std::shared_ptr< FieldOperator > > m_field_ops
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References MayaFlux::Nodes::Network::MeshSlot::index, m_field_ops, MF_DEBUG, MayaFlux::Nodes::Network::MeshSlot::node, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.