NDEVR
API Documentation
MovementPath

Logic for moving an object across a path of both position, and optionally, orientation. More...

Collaboration diagram for MovementPath:
[legend]

Public Member Functions

 MovementPath (const Buffer< Time > &time)
 Constructs a MovementPath with the given time keyframes.
void setAngleChannel (uint01 dim, const Buffer< Angle< fltp08 > > &path)
 Sets the rotation interpolation path for a single axis using azimuth-aware monotone cubic interpolation.
void setPositionChannel (uint01 dim, const Buffer< fltp04 > &path)
 Sets the position interpolation path for a single spatial dimension using monotone cubic interpolation.
void updateObject (const DesignObjectLookup *)
 Updates the referenced design object's transform based on the current path state.

Public Attributes

Path location_path [3]
 Interpolation paths for X, Y, Z position channels, indexed by dimension.
Buffer< Timem_time
 The ordered sequence of time keyframes corresponding to path control points.
UUID object
 The unique identifier of the design object to move along the path.
Path rotation_path [3]
 Interpolation paths for rotation channels (one per axis), indexed by dimension.

Detailed Description

Logic for moving an object across a path of both position, and optionally, orientation.


Definition at line 41 of file MovementPath.h.

Constructor & Destructor Documentation

◆ MovementPath()

MovementPath::MovementPath ( const Buffer< Time > & time)
inline

Constructs a MovementPath with the given time keyframes.


Parameters
[in]timeThe ordered buffer of time values that serve as keyframes for the path.

Definition at line 53 of file MovementPath.h.

References m_time.

Member Function Documentation

◆ setAngleChannel()

void MovementPath::setAngleChannel ( uint01 dim,
const Buffer< Angle< fltp08 > > & path )
inline

Sets the rotation interpolation path for a single axis using azimuth-aware monotone cubic interpolation.


Parameters
[in]dimThe rotation axis index (0, 1, or 2).
[in]pathThe buffer of angle values at each keyframe for the given axis.

Definition at line 72 of file MovementPath.h.

References Path::createMonotoneCubicPathAzimuth(), m_time, and rotation_path.

◆ setPositionChannel()

void MovementPath::setPositionChannel ( uint01 dim,
const Buffer< fltp04 > & path )
inline

Sets the position interpolation path for a single spatial dimension using monotone cubic interpolation.


Parameters
[in]dimThe spatial dimension index (0 = X, 1 = Y, 2 = Z).
[in]pathThe buffer of position values at each keyframe for the given dimension.

Definition at line 62 of file MovementPath.h.

References Path::createMonotoneCubicPathSorted(), location_path, and m_time.

◆ updateObject()

void MovementPath::updateObject ( const DesignObjectLookup * )
inline

Updates the referenced design object's transform based on the current path state.


Parameters
[in]lookupThe design object lookup used to resolve and update the object.
Note
This method is currently unimplemented (empty body).

Definition at line 82 of file MovementPath.h.


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