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