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

#include <TopologyOperator.hpp>

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

Public Member Functions

void add_topology (const std::vector< LineVertex > &vertices, Kinesis::ProximityMode mode)
 Add a single topology with full per-vertex control.
 
std::vector< LineVertexextract_vertices () const
 Extract current vertex data as LineVertex array.
 
size_t get_point_count () const override
 Get source point count (before topology expansion)
 
std::shared_ptr< GpuSync::TopologyGeneratorNodeget_topology (size_t i) const
 Access a specific topology node directly.
 
size_t get_topology_count () const
 Get number of topologies currently stored.
 
std::string_view get_type_name () const override
 Type name for introspection.
 
size_t get_vertex_count () const override
 Get number of vertices (may differ from point count for topology/path)
 
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.
 
const char * get_vertex_type_name () const override
 Get human-readable vertex type name (for validation/debugging)
 
void initialize (const std::vector< LineVertex > &vertices)
 Initialize a single topology with single set of vertices.
 
void initialize_topologies (const std::vector< std::vector< LineVertex > > &topologies, Kinesis::ProximityMode mode)
 Initialize multiple topologies with given positions and properties.
 
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.
 
void process (float dt) override
 Process for one batch cycle.
 
std::optional< double > query_state (std::string_view query) const override
 Query operator internal state.
 
void set_connection_radius (float radius)
 Set the connection radius for topology generation.
 
void set_global_line_color (const glm::vec3 &color)
 Set the line color for all topologies.
 
void set_global_line_thickness (float thickness)
 Set the number of neighbors (k) for K-Nearest topology mode.
 
void set_parameter (std::string_view param, double value) override
 Set operator parameter.
 
void set_samples_per_segment (size_t samples)
 Set number of samples per segment for interpolation for all topologies.
 
 TopologyOperator (Kinesis::ProximityMode mode=Kinesis::ProximityMode::K_NEAREST)
 
 ~TopologyOperator () override
 
- 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.
 
bool consumes_upstream () const
 Whether this operator requests upstream vertex state before process().
 
bool participates_in_rendering () const
 Whether this operator contributes a vertex slice to rendering.
 
virtual void seed_from_upstream (const GraphicsOperator *upstream)
 Receive upstream vertex state before process() is called.
 
void set_consumes_upstream (bool value)
 
void set_force_internal_dt (bool value)
 Override the dt passed by the caller with a fixed internal value.
 
void set_participates_in_rendering (bool value)
 
bool uses_force_internal_dt () const
 
- 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::atomic< uint32_t > m_access_token { 0 }
 
Kinesis::ProximityMode m_default_mode
 
float m_default_thickness { 2.0F }
 
std::atomic< bool > m_shutdown { false }
 
std::vector< std::shared_ptr< GpuSync::TopologyGeneratorNode > > m_topologies
 
std::vector< uint8_t > m_vertex_data_aggregate
 

Additional Inherited Members

- Protected Attributes inherited from MayaFlux::Nodes::Network::GraphicsOperator
bool m_consumes_upstream {}
 
bool m_force_internal_dt {}
 
bool m_participates_in_rendering { true }
 

Detailed Description

Definition at line 7 of file TopologyOperator.hpp.


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