37 const std::vector<uint32_t>& order)
49 if (!m_slots || !m_order)
51 for (uint32_t idx : *m_order)
52 process_slot((*m_slots)[idx], dt);
67 [[nodiscard]] std::optional<double>
query_state(std::string_view)
const override
73 std::vector<MeshSlot>* m_slots {
nullptr };
74 const std::vector<uint32_t>* m_order {
nullptr };
void process(float dt) override
Iterate slots in topological order and call process_slot() on each.
virtual void process_slot(MeshSlot &slot, float dt)=0
Process a single slot.
~MeshOperator() override=default
std::optional< double > query_state(std::string_view) const override
Query operator internal state.
void set_parameter(std::string_view, double) override
Set operator parameter.
void set_slots(std::vector< MeshSlot > &slots, const std::vector< uint32_t > &order)
Supply the slot list and processing order for the coming cycle.
Abstract base for operators that process MeshNetwork slots.
Domain-agnostic interpretive lens for network processing.
Named, independently transformable mesh unit within a MeshNetwork.