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 121 of file MeshFieldOperator.cpp.

122{
123 auto it = m_field_ops.find(slot.index);
124 if (it == m_field_ops.end())
125 return;
126
127 auto& field_op = it->second;
128
129 if (field_op->get_vertex_count() == 0 && slot.node
130 && slot.node->get_mesh_vertex_count() > 0) {
131 field_op->initialize(slot.node->get_mesh_vertices());
133 "MeshFieldOperator: lazy-initialised slot {} ({} vertices)",
134 slot.index, slot.node->get_mesh_vertex_count());
135 }
136
137 field_op->process(dt);
138
139 if (field_op->is_vertex_data_dirty() && slot.node) {
140 slot.node->set_mesh_vertices(field_op->extract_mesh_vertices());
141 field_op->mark_vertex_data_clean();
142 }
143}
#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.