MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Nodes::Network::PathOperator Class Reference

#include <PathOperator.hpp>

+ Inheritance diagram for MayaFlux::Nodes::Network::PathOperator:
+ Collaboration diagram for MayaFlux::Nodes::Network::PathOperator:

Public Member Functions

 PathOperator (Kinesis::InterpolationMode mode=Kinesis::InterpolationMode::CATMULL_ROM, Eigen::Index samples_per_segment=32)
 
void initialize (const std::vector< LineVertex > &vertices)
 Initialize a single path with given control points and properties.
 
void initialize_paths (const std::vector< std::vector< LineVertex > > &paths, Kinesis::InterpolationMode mode)
 Initialize multiple paths with given control points and properties.
 
void add_path (const std::vector< LineVertex > &control_vertices, Kinesis::InterpolationMode mode)
 Add a new path with given control points and properties.
 
void process (float dt) override
 Process for one batch cycle.
 
std::span< const uint8_t > get_vertex_data () const override
 Get vertex data for GPU upload.
 
std::span< const uint8_t > get_vertex_data_for_collection (uint32_t idx) const override
 Get vertex data for specific collection (if multiple)
 
Kakshya::VertexLayout get_vertex_layout () const override
 Get vertex layout describing vertex structure.
 
size_t get_vertex_count () const override
 Get number of vertices (may differ from point count for topology/path)
 
bool is_vertex_data_dirty () const override
 Check if geometry changed this frame.
 
void mark_vertex_data_clean () override
 Clear dirty flag after GPU upload.
 
std::vector< LineVertexextract_vertices () const
 Extract current vertex data as LineVertex array.
 
void set_parameter (std::string_view param, double value) override
 Set operator parameter.
 
std::optional< double > query_state (std::string_view query) const override
 Query operator internal state.
 
std::string_view get_type_name () const override
 Type name for introspection.
 
size_t get_point_count () const override
 Get source point count (before topology expansion)
 
void set_samples_per_segment (Eigen::Index samples)
 Set the number of samples per segment for all paths.
 
void set_tension (double tension)
 Set the tension parameter for all paths (if supported by mode).
 
void set_global_thickness (float thickness)
 Set the global thickness for all paths.
 
void set_global_color (const glm::vec3 &color)
 Set the global color tint for all paths.
 
size_t get_path_count () const
 Get the number of paths currently managed by this operator.
 
const char * get_vertex_type_name () const override
 Get human-readable vertex type name (for validation/debugging)
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::GraphicsOperator
void apply_one_to_one (std::string_view param, const std::shared_ptr< NodeNetwork > &source) override
 Apply ONE_TO_ONE parameter mapping.
 
- Public Member Functions inherited from MayaFlux::Nodes::Network::NetworkOperator
virtual ~NetworkOperator ()=default
 

Protected Member Functions

void * get_data_at (size_t global_index) override
 Get mutable access to point at global index.
 

Private Attributes

std::vector< std::shared_ptr< GpuSync::PathGeneratorNode > > m_paths
 
std::vector< uint8_t > m_vertex_data_aggregate
 
Kinesis::InterpolationMode m_default_mode
 
Eigen::Index m_default_samples_per_segment
 
float m_default_thickness { 2.0F }
 

Detailed Description

Definition at line 7 of file PathOperator.hpp.


The documentation for this class was generated from the following files: