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

◆ add_topology()

void MayaFlux::Nodes::Network::TopologyOperator::add_topology ( const std::vector< LineVertex > &  vertices,
Kinesis::ProximityMode  mode 
)

Add a single topology with full per-vertex control.

Parameters
verticesVector of LineVertex defining the topology's points and attributes.
modeProximity mode for this topology.

Definition at line 54 of file TopologyOperator.cpp.

57{
58 if (vertices.empty()) {
60 "Cannot add topology with zero vertices");
61 return;
62 }
63
64 auto topology = std::make_shared<GpuSync::TopologyGeneratorNode>(mode, 1024);
65
66 topology->set_points(vertices);
67 topology->compute_frame();
68
69 uint32_t expected = 0;
70 while (!m_access_token.compare_exchange_weak(expected, 1,
71 std::memory_order_acquire, std::memory_order_relaxed)) {
72 if (m_shutdown.load(std::memory_order_relaxed))
73 return;
74 expected = 0;
75 }
76
77 m_topologies.push_back(std::move(topology));
78
79 m_access_token.store(0, std::memory_order_release);
80
82 "Added topology #{} with {} points, {} connections",
83 m_topologies.size(), vertices.size(),
84 m_topologies.back()->get_connection_count());
85}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
std::vector< std::shared_ptr< GpuSync::TopologyGeneratorNode > > m_topologies
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References m_access_token, m_shutdown, m_topologies, MF_DEBUG, MF_WARN, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.

Referenced by initialize(), and initialize_topologies().

+ Here is the caller graph for this function: