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

◆ initialize()

void MayaFlux::Nodes::Network::ParticleNetwork::initialize ( )
overridevirtual

Called once before first process_batch()

Use for expensive one-time initialization:

  • Building neighbor maps
  • Allocating buffers
  • Computing lookup tables

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

Definition at line 52 of file ParticleNetwork.cpp.

53{
55
58 } else if (m_topology == Topology::GRID_2D) {
59 auto grid_size = static_cast<size_t>(std::sqrt(m_particles.size()));
60 m_neighbor_map = build_grid_2d_neighbors(grid_size, grid_size);
61 } else if (m_topology == Topology::RING) {
63 } else if (m_topology == Topology::CHAIN) {
65 }
66
68 "Initialized ParticleNetwork: {} particles, topology={}",
69 m_particles.size(), static_cast<int>(m_topology));
70}
#define MF_DEBUG(comp, ctx,...)
static std::unordered_map< size_t, std::vector< size_t > > build_chain_neighbors(size_t count)
Build neighbor map for CHAIN topology.
static std::unordered_map< size_t, std::vector< size_t > > build_ring_neighbors(size_t count)
Build neighbor map for RING topology.
@ CHAIN
Linear sequence: node[i] → node[i+1].
@ GRID_2D
2D lattice with 4-connectivity
@ SPATIAL
Dynamic proximity-based (nodes within radius interact)
@ RING
Circular: last node connects to first.
static std::unordered_map< size_t, std::vector< size_t > > build_grid_2d_neighbors(size_t width, size_t height)
Build neighbor map for GRID_2D topology.
void rebuild_spatial_neighbors()
Rebuild neighbor map for SPATIAL topology.
std::unordered_map< size_t, std::vector< size_t > > m_neighbor_map
void initialize_particle_positions(InitializationMode mode)
Initialize particles based on mode.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References MayaFlux::Nodes::Network::NodeNetwork::build_chain_neighbors(), MayaFlux::Nodes::Network::NodeNetwork::build_grid_2d_neighbors(), MayaFlux::Nodes::Network::NodeNetwork::build_ring_neighbors(), MayaFlux::Nodes::Network::NodeNetwork::CHAIN, MayaFlux::Nodes::Network::NodeNetwork::GRID_2D, initialize_particle_positions(), m_init_mode, m_neighbor_map, m_particles, MayaFlux::Nodes::Network::NodeNetwork::m_topology, MF_DEBUG, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, rebuild_spatial_neighbors(), MayaFlux::Nodes::Network::NodeNetwork::RING, and MayaFlux::Nodes::Network::NodeNetwork::SPATIAL.

+ Here is the call graph for this function: