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

◆ regenerate_segment_range()

void MayaFlux::Nodes::GpuSync::PathGeneratorNode::regenerate_segment_range ( size_t  start_ctrl_idx,
size_t  end_ctrl_idx 
)
private

Definition at line 433 of file PathGeneratorNode.cpp.

434{
435 auto view = m_control_points.linearized_view();
436 const size_t num_points = view.size();
437
438 if (start_ctrl_idx >= num_points || end_ctrl_idx >= num_points) {
440 "Invalid segment range [{}, {}] for {} control points",
441 start_ctrl_idx, end_ctrl_idx, num_points);
442 return;
443 }
444
445 std::vector<LineVertex> segment_verts;
446 for (size_t i = start_ctrl_idx; i <= end_ctrl_idx; ++i) {
447 segment_verts.push_back(view[i]);
448 }
449
450 size_t start_vertex_idx = start_ctrl_idx * m_samples_per_segment * 2;
451
452 std::vector<LineVertex> new_segment;
453
454 for (size_t i = 0; i + 3 < segment_verts.size(); ++i) {
455 generate_curve_segment(segment_verts, i, new_segment);
456 }
457
458 if (start_vertex_idx + new_segment.size() > m_vertices.size()) {
459 m_vertices.resize(start_vertex_idx + new_segment.size());
460 }
461
462 std::ranges::copy(new_segment, m_vertices.begin() + (long)start_vertex_idx);
463}
#define MF_ERROR(comp, ctx,...)
size_t start_vertex_idx
Memory::HistoryBuffer< LineVertex > m_control_points
void generate_curve_segment(const std::vector< LineVertex > &curve_verts, size_t start_idx, std::vector< LineVertex > &output)
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References generate_curve_segment(), m_control_points, m_samples_per_segment, m_vertices, MF_ERROR, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, and start_vertex_idx.

Referenced by regenerate_geometry().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: