Basic interface to derived class of actions for motion path actions.
#include <AlMotionAction.h> class AlMotionAction : public AlAction AlMotionAction(); virtual ~AlMotionAction(); virtual AlObject* copyWrapper() const; virtual AlObjectType type() const; statusCode create(AlCurveNode *); AlCurveNode* motionCurve() const;
An AlMotionAction is derived from an AlAction. This particular kind of action uses an AlCurve (a 3-D NURBS curve) to evaluate itself at different times. The AlMotionAction is defined over the range of 0 to 100 (the pre- and post-extrapolation types of the action apply to the evaluation of times before 0 and after 100). An AlMotionAction is evaluated by interpreting the "time" between 0 and 100 as a percentage arc length along the AlCurve used by this action. This results in an (x, y, z) point on the curve from which one of the components is extracted into a double value using an "extract" component.
When this action is used in a channel, the channel will also supply an "extract" component (kX_COMPONENT, kY_COMPONENT or kZ_COMPONENT) to determine which of the (x, y, z) values to use as the final evaluation of the action.
In order to create an AlMotionAction, you must have a valid AlCurveNode with an AlCurve below it. If you delete the AlMotionAction, the AlCurveNode will not be deleted. However, if you delete the AlCurveNode (or the AlCurve below the curve node), this will delete the AlMotionAction that uses that AlCurveNode.