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

◆ add_path()

void MayaFlux::Nodes::Network::PathOperator::add_path ( const std::vector< LineVertex > &  control_vertices,
Kinesis::InterpolationMode  mode,
uint32_t  default_samples_per_segment = 32,
size_t  max_control_points = 64,
double  tension = 0.5 
)

Add a new path with given control points and properties.

Parameters
control_pointsVector of control points for the path.
modeInterpolation mode for the path.
default_samples_per_segmentNumber of samples to generate per segment (between control points).
max_control_pointsMaximum number of control points to store in history for this path
tensionTension parameter for applicable interpolation modes (e.g. Catmull-Rom)

Definition at line 57 of file PathOperator.cpp.

60{
61 if (control_vertices.empty()) {
63 "Cannot add path with zero control vertices");
64 return;
65 }
66
67 auto path = std::make_shared<GpuSync::PathGeneratorNode>(
68 mode,
69 default_samples_per_segment,
70 max_control_points,
71 tension);
72
73 path->set_control_points(control_vertices);
74 path->set_path_thickness(m_default_thickness);
75 path->compute_frame();
76
77 uint32_t expected = 0;
78 while (!m_access_token.compare_exchange_weak(expected, 1,
79 std::memory_order_acquire, std::memory_order_relaxed)) {
80 if (m_shutdown.load(std::memory_order_relaxed))
81 return;
82 expected = 0;
83 }
84
85 m_paths.push_back(std::move(path));
86
87 m_access_token.store(0, std::memory_order_release);
88
90 "Added path #{} with {} control vertices, {} generated vertices",
91 m_paths.size(), control_vertices.size(),
92 m_paths.back()->get_generated_vertex_count());
93}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
std::vector< std::shared_ptr< GpuSync::PathGeneratorNode > > m_paths
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

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

Referenced by initialize(), and initialize_paths().

+ Here is the caller graph for this function: