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());
177 void set_topology(
Topology topology)
override;
184 const std::string& param_name,
185 const std::shared_ptr<Node>& source,
186 MappingMode mode = MappingMode::BROADCAST)
override;
188 void unmap_parameter(
const std::string& param_name)
override;
199 float m_timestep { 0.016F };
201 void ensure_initialized();
202 std::vector<PointVertex> generate_initial_vertices();
212 void update_mapped_parameters();
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
Kinesis::Stochastic::Stochastic m_random_gen
Kinesis::SamplerBounds get_bounds() const
NetworkOperator * get_operator() override
float get_timestep() const
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.
void set_timestep(float dt)
const NetworkOperator * get_operator() const override
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)
Spatial domain for vertex generation.