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

◆ get_metadata()

std::unordered_map< std::string, std::string > MayaFlux::Nodes::Network::ParticleNetwork::get_metadata ( ) const
overridevirtual

Get network metadata for debugging/visualization.

Returns
Map of property names to string representations

Subclasses can override to expose internal state:

  • Particle count, average velocity
  • Modal frequencies, decay times
  • Waveguide delay lengths etc.

Reimplemented from MayaFlux::Nodes::Network::NodeNetwork.

Definition at line 120 of file ParticleNetwork.cpp.

121{
122 auto metadata = NodeNetwork::get_metadata();
123
124 metadata["particle_count"] = std::to_string(m_particles.size());
125 metadata["gravity"] = std::format("({:.2f}, {:.2f}, {:.2f})",
127 metadata["drag"] = std::to_string(m_drag);
128 metadata["timestep"] = std::to_string(m_timestep);
129 metadata["bounds_mode"] = [this]() {
130 switch (m_bounds_mode) {
131 case BoundsMode::NONE:
132 return "NONE";
134 return "BOUNCE";
135 case BoundsMode::WRAP:
136 return "WRAP";
138 return "CLAMP";
140 return "DESTROY";
141 default:
142 return "UNKNOWN";
143 }
144 }();
145
146 glm::vec3 avg_velocity(0.0F);
147 for (const auto& p : m_particles) {
148 avg_velocity += p.velocity;
149 }
150 avg_velocity /= static_cast<float>(m_particles.size());
151 metadata["avg_velocity"] = std::format("({:.2f}, {:.2f}, {:.2f})",
152 avg_velocity.x, avg_velocity.y, avg_velocity.z);
153
155 metadata["interaction_radius"] = std::to_string(m_interaction_radius);
156 metadata["neighbor_map_size"] = std::to_string(m_neighbor_map.size());
157 }
158
159 return metadata;
160}
@ SPATIAL
Dynamic proximity-based (nodes within radius interact)
virtual std::unordered_map< std::string, std::string > get_metadata() const
Get network metadata for debugging/visualization.
std::unordered_map< size_t, std::vector< size_t > > m_neighbor_map
@ DESTROY
Remove particle at boundary (respawn optional)

References BOUNCE, CLAMP, DESTROY, MayaFlux::Nodes::Network::NodeNetwork::get_metadata(), m_bounds_mode, m_drag, m_gravity, m_interaction_radius, m_neighbor_map, m_particles, m_timestep, MayaFlux::Nodes::Network::NodeNetwork::m_topology, NONE, MayaFlux::Nodes::Network::NodeNetwork::SPATIAL, and WRAP.

+ Here is the call graph for this function: