9#ifndef AVARA3D_EXTENSION_WANDERER_H
10#define AVARA3D_EXTENSION_WANDERER_H
54 explicit Wanderer(
const std::shared_ptr<Node>& node);
90 void initializePath();
98 std::weak_ptr<Node> _node;
101 std::mt19937 _random;
Moves a Node along a smooth deterministic path within a configurable box.
const Config & config() const
Returns the current configuration.
void recenter()
Makes the Node's current position the new center and restarts the deterministic path.
Wanderer(const std::shared_ptr< Node > &node, const Config &config)
Creates a Wanderer centered on node's current position using config.
void update(double deltaTime)
Advances the wander path by deltaTime seconds; non-positive values do nothing.
void reset()
Returns the Node to the current center and restarts the same deterministic path.
const math::vec3 & center() const
Returns the center of the wander volume in the Node's parent coordinate space.
void config(const Config &config)
Replaces the configuration and restarts the deterministic path from the current center.
Wanderer(const std::shared_ptr< Node > &node)
Creates a Wanderer centered on node's current position using the default Config.
Configures the wander volume, pace, and deterministic random sequence.
double segmentDuration
Seconds between successive spline control points; must be greater than zero.
std::uint32_t seed
Random seed; the same seed produces the same path.
math::vec3 halfExtents
Half-size of the wander box; components must be non-negative. Zero locks an axis.