69 const glm::vec3& bounds_min = glm::vec3(-10.0F),
70 const glm::vec3& bounds_max = glm::vec3(10.0F),
78 void reset()
override;
79 void process_batch(
unsigned int num_samples)
override;
90 const glm::vec3& bounds_min,
91 const glm::vec3& bounds_max,
101 [[nodiscard]]
size_t get_node_count()
const override;
119 [[nodiscard]] std::optional<double> get_node_output(
size_t index)
const override;
121 [[nodiscard]] std::unordered_map<std::string, std::string> get_metadata()
const override;
130 void set_operator(std::unique_ptr<NetworkOperator> op);
135 template <
typename OpType,
typename... Args>
138 auto op = std::make_unique<OpType>(std::forward<Args>(args)...);
139 auto*
ptr = op.get();
140 set_operator(std::move(op));
147 template <
typename OpType>
150 return dynamic_cast<OpType*
>(m_operator.get());
153 template <
typename OpType>
156 return dynamic_cast<const OpType*
>(m_operator.get());
193 const std::string& param_name,
194 const std::shared_ptr<Node>& source,
197 void unmap_parameter(
const std::string& param_name)
override;
209 void ensure_initialized();
210 std::vector<PointVertex> generate_initial_vertices();
221 [[nodiscard]]
static bool is_compatible(
const NetworkOperator& op)
noexcept;
223 bool m_default_operator {
true };
232 void update_mapped_parameters();
PrimitiveTopology topology
Unified generative infrastructure for stochastic and procedural algorithms.
Domain-agnostic interpretive lens for network processing.
Abstract base class for structured collections of nodes with defined relationships.
size_t get_point_count() const
Get point count (alias for get_node_count)
const OpType * as_operator() const
bool has_operator() const override
Kinesis::SpatialDistribution m_init_mode
bool default_operator_enabled() const
Kinesis::Stochastic::Stochastic m_random_gen
Kinesis::SamplerBounds get_bounds() const
NetworkOperator * get_operator() override
Kinesis::SamplerBounds m_bounds
OpType * create_operator(Args &&... args)
Create and set operator in one call.
OpType * as_operator()
Get current operator with type-safe cast.
const NetworkOperator * get_operator() const override
void enable_default_operator(bool enabled)
Whether initialize() fabricates a PhysicsOperator when no primary has been set.
std::unique_ptr< NetworkOperator > m_operator
void set_bounds(const glm::vec3 &min, const glm::vec3 &max)
Motion-focused point network with swappable operators.
SpatialDistribution
Spatial distribution mode for point cloud and particle generation.
Topology
Defines the structural relationships between nodes in the network.
MappingMode
Defines how nodes map to external entities (e.g., audio channels, graphics objects)
Vertex type for point primitives (POINT_LIST topology)
Spatial domain for vertex generation.