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

◆ set_operator()

void MayaFlux::Nodes::Network::PointCloudNetwork::set_operator ( std::unique_ptr< NetworkOperator op)

Definition at line 81 of file PointCloudNetwork.cpp.

82{
83 if (!op) {
85 "Cannot set null operator");
86 return;
87 }
88
89 std::vector<LineVertex> vertices;
90
91 if (auto* old_path = dynamic_cast<PathOperator*>(m_operator.get())) {
92 vertices = old_path->extract_vertices();
93 } else if (auto* old_topo = dynamic_cast<TopologyOperator*>(m_operator.get())) {
94 vertices = old_topo->extract_vertices();
95 } else if (auto* old_field = dynamic_cast<FieldOperator*>(m_operator.get())) {
96 vertices = old_field->extract_line_vertices();
97 } else if (!m_operator) {
98 vertices = !m_cached_vertices.empty()
101 }
102
103 if (auto* new_path = dynamic_cast<PathOperator*>(op.get())) {
104 new_path->initialize(vertices);
105 } else if (auto* new_topo = dynamic_cast<TopologyOperator*>(op.get())) {
106 new_topo->initialize(vertices);
107 } else if (auto* new_field = dynamic_cast<FieldOperator*>(op.get())) {
108 new_field->initialize(vertices);
109 } else {
111 "PointCloudNetwork: unsupported operator type '{}'", op->get_type_name());
112 return;
113 }
114
115 m_operator = std::move(op);
116}
#define MF_ERROR(comp, ctx,...)
std::unique_ptr< NetworkOperator > m_operator
std::vector< LineVertex > generate_initial_positions()
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References generate_initial_positions(), m_cached_vertices, m_operator, MF_ERROR, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.

+ Here is the call graph for this function: