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{
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]() {
132 return "NONE";
134 return "BOUNCE";
136 return "WRAP";
138 return "CLAMP";
140 return "DESTROY";
141 default:
142 return "UNKNOWN";
143 }
144 }();
145
146 glm::vec3 avg_velocity(0.0F);
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
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::vector< ParticleNode > m_particles
std::unordered_map< size_t, std::vector< size_t > > m_neighbor_map
float m_interaction_radius
@ BOUNCE
Reflect off boundaries.
@ NONE
No bounds checking.
@ DESTROY
Remove particle at boundary (respawn optional)
@ WRAP
Teleport to opposite side.
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.