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

◆ PathGeneratorNode() [1/2]

MayaFlux::Nodes::GpuSync::PathGeneratorNode::PathGeneratorNode ( Kinesis::InterpolationMode  mode = Kinesis::InterpolationMode::QUADRATIC_BEZIER,
Eigen::Index  samples_per_segment = 32,
size_t  max_control_points = 64,
double  tension = 0.5 
)
explicit

Create path generator with interpolation mode.

Parameters
modeInterpolation method
samples_per_segmentVertices generated between control points
max_control_pointsMaximum control points in history
tensionTension parameter for applicable modes

Definition at line 55 of file PathGeneratorNode.cpp.

60 : GeometryWriterNode(static_cast<uint32_t>(samples_per_segment * 10))
61 , m_mode(mode)
62 , m_control_points(max_control_points)
63 , m_samples_per_segment(samples_per_segment)
64 , m_tension(tension)
65{
66 const auto& stride = sizeof(LineVertex);
67 set_vertex_stride(stride);
68
69 auto layout = Kakshya::VertexLayout::for_lines(stride);
70 layout.vertex_count = 0;
71 set_vertex_layout(layout);
72
73 m_vertices.reserve(samples_per_segment * max_control_points);
74
76 "Created PathGeneratorNode with mode {}, {} samples per segment, capacity {}",
77 static_cast<int>(mode), samples_per_segment, max_control_points);
78}
#define MF_DEBUG(comp, ctx,...)
GeometryWriterNode(uint32_t initial_capacity=1024)
Constructor.
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
void set_vertex_stride(size_t stride)
Set vertex stride (bytes per vertex)
Memory::HistoryBuffer< LineVertex > m_control_points
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
static VertexLayout for_lines(uint32_t stride=36)
Factory: Create layout for line primitives (position, color, thickness)

References MayaFlux::Kakshya::VertexLayout::for_lines(), m_vertices, MF_DEBUG, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_stride().

+ Here is the call graph for this function: