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

◆ complete()

void MayaFlux::Nodes::GpuSync::PathGeneratorNode::complete ( )

Finish incremental drawing stroke.

Clears the sliding window. Call this when pen lifts or stroke ends. Next draw_to() will start a fresh stroke.

Definition at line 508 of file PathGeneratorNode.cpp.

509{
510 if (m_draw_window.size() < 4) {
512 "Not enough points in draw window to generate curve segment ({} points)",
513 m_draw_window.size());
514 m_completed_draws.insert(
515 m_completed_draws.end(),
516 m_draw_vertices.begin(),
517 m_draw_vertices.end());
518 m_draw_vertices.clear();
519 m_draw_window.clear();
520 m_vertex_data_dirty = true;
521 return;
522 }
523
524 std::vector<LineVertex> smoothed;
525
526 size_t start_idx = 0;
527 while (start_idx + 3 < m_draw_window.size()) {
528 generate_curve_segment(m_draw_window, start_idx, smoothed);
529 start_idx++;
530 }
531
532 for (size_t i = start_idx + 1; i < m_draw_window.size(); ++i) {
533 append_line_segment(m_draw_window[i - 1], m_draw_window[i], smoothed);
534 }
535
536 m_completed_draws.insert(
537 m_completed_draws.end(),
538 smoothed.begin(),
539 smoothed.end());
540
541 m_draw_vertices.clear();
542 m_draw_window.clear();
543 m_vertex_data_dirty = true;
544}
#define MF_WARN(comp, ctx,...)
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
void append_line_segment(const LineVertex &v0, const LineVertex &v1, std::vector< LineVertex > &output)
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 append_line_segment(), generate_curve_segment(), m_completed_draws, m_draw_vertices, m_draw_window, MayaFlux::Nodes::GpuSync::GeometryWriterNode::m_vertex_data_dirty, MF_WARN, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.

+ Here is the call graph for this function: