13 m_fields[slot_index] = std::move(field);
18 "MeshTransformOperator: bound field to slot {}", slot_index);
40 if (field_it !=
m_fields.end() && field_it->second) {
52 const auto now = std::chrono::steady_clock::now();
53 const float real_dt = std::chrono::duration<float>(now -
m_last_tick).count();
70 return glm::mat4(1.0F);
74 return glm::mat4(1.0F);
76 return (*
m_slots)[pidx].world_transform;
#define MF_DEBUG(comp, ctx,...)
const std::vector< uint32_t > * m_order
std::vector< MeshSlot > * m_slots
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
bool dirty
Set when local_transform or slot config changes since last upload.
glm::mat4 local_transform
Local-space transform relative to parent (or world if root).
uint32_t index
Position of this slot in MeshNetwork::m_slots. Stable after insertion.
glm::mat4 world_transform
World-space transform, recomputed each cycle from the DAG.
std::optional< uint32_t > parent_index
Index of the parent slot, or nullopt for a root slot.
Named, independently transformable mesh unit within a MeshNetwork.