Public Types | Public Member Functions | Protected Member Functions

MFnMotionPath Class Reference

Search for all occurrences

Detailed Description

Motion path animation function set.

This class is used for constructing and manipulating motion path animation.

Motion path animation requires a curve (or surface) and one or more other objects. During the animation, the objects will be moved along the curve.

Setting "follow" for the motion path aligns the object(s) local axis to the tangent of the motion path. Banking can also be applied to objects.

Motion path markers are points along the path where the orientation and position for the object(s) travelling along the path can be specified.

Examples:

motionPathCmd.cpp.

#include <MFnMotionPath.h>

Inheritance diagram for MFnMotionPath:
Inheritance graph
[legend]

List of all members.

Public Types

enum   Axis { kXaxis, kYaxis, kZaxis }
 

Available axes.

More...

Public Member Functions

virtual MFn::Type  type () const
  Function set type.
virtual  ~MFnMotionPath ()
  Destructor.
  MFnMotionPath ()
  Default constructor.
  MFnMotionPath (MObject &object, MStatus *ReturnStatus=NULL)
  Constructor.
MObject  create (const MDagPath &pathObject, const MDagPath &objectToAnimate, MTime &timeStart, MTime &timeEnd, MDGModifier *modifier=NULL, MStatus *ReturnStatus=NULL)
  Create a new motion path dependency node.
MStatus  setPathObject (const MDagPath &pathObject, MDGModifier *modifier=NULL)
  Set the curve or surface for this motion path.
MDagPath  pathObject (MStatus *ReturnStatus=NULL)
  Return a dag path to the motion path object.
MStatus  addAnimatedObject (const MDagPath &objectToAnimate, MDGModifier *modifier=NULL)
  Add an object to be animated along this motion path.
MStatus  getAnimatedObjects (MDagPathArray &array)
  Returns an array of dag paths to the animated objects for this motion path.
MStatus  setFollow (bool on, MDGModifier *modifier=NULL)
  Setting follow on will cause the animated object(s) local axis to be aligned with the tangent of the motion path.
bool  follow (MStatus *ReturnStatus=NULL) const
  Determines whether follow is set for this motion path node.
MStatus  setFollowAxis (Axis axis)
  Sets the axis of the animated object that will follow the motion path.
Axis  followAxis (MStatus *ReturnStatus=NULL)
  Return the follow axis for this motion path.
MStatus  setUpAxis (Axis axis)
  Set the up-axis for this motion path.
Axis  upAxis (MStatus *ReturnStatus=NULL)
  Return the up-axis for this motion path.
MStatus  setBank (bool bank)
bool  bank (MStatus *ReturnStatus=NULL) const
  Determines whether bank has been enabled for this motion path.
MStatus  setBankScale (double bankScale)
  Set the bank scale for this motion path.
double  bankScale (MStatus *ReturnStatus=NULL)
  Return the bank scale for this motion path.
MStatus  setBankThreshold (double bankThreshold)
  Set the bank threshold for this motion path.
double  bankThreshold (MStatus *ReturnStatus=NULL)
  Return the bank threshold for this motion path.
MStatus  setUseNormal (bool use)
  If true, enables alignment of the up axis of the animated object to the normal vector of the path geometry.
bool  useNormal (MStatus *ReturnStatus=NULL)
  Determines whether the up-axis of the animated object for this motion path is aligned with the normal vector of the path geometry.
MStatus  setInverseNormal (bool invert)
  If true, enable alignment of the up axis of the moving object(s) to the opposite direction of the normal vector of the path geometry.
bool  inverseNormal (MStatus *ReturnStatus=NULL)
  Determines whether the up-axis of the animated object for this motion path is aligned to the opposite direction of the normal vector of the path geometry.
MStatus  setUStart (double start)
  Sets the starting value of the u parameterization for the animation.
MStatus  setUEnd (double end)
  Sets the end value of the u parameterization for the animation.
double  uStart (MStatus *ReturnStatus=NULL)
  Returns the starting value of the u parameterization for the animation.
double  uEnd (MStatus *ReturnStatus=NULL)
  Returns the end value of the u parameterization for the animation.
MStatus  setUTimeStart (MTime &start)
  Sets the starting time of the animation for the u parameter.
MStatus  setUTimeEnd (MTime &end)
  Sets the end time of the animation for the u parameter.
MTime  uTimeStart (MStatus *ReturnStatus=NULL)
  Returns the start time of the animation for the u parameter.
MTime  uTimeEnd (MStatus *ReturnStatus=NULL)
  Returns the end time of the animation for the u parameter.
unsigned int  numPositionMarkers (MStatus *ReturnStatus=NULL)
  Returns the number of position markers on this motion path.
MObject  getPositionMarker (unsigned int, MStatus *ReturnStatus=NULL)
  Gets the position marker where markerNum is the order in which the marker was created.
unsigned int  numOrientationMarkers (MStatus *ReturnStatus=NULL)
  Returns the number of orientation markers on this motion path.
MObject  getOrientationMarker (unsigned int, MStatus *ReturnStatus=NULL)
  Gets the orientation marker where markerNum is the order in which the marker was created.
  MFnMotionPath (const MObject &object, MStatus *ReturnStatus=NULL)
  Constructor.

Protected Member Functions

virtual const char *  className () const
  Class name.

Member Enumeration Documentation

enum Axis

Constructor & Destructor Documentation

MFnMotionPath ( MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in] object The MObject to attach the function set to
[out] ReturnStatus the return status
Status Codes:
MFnMotionPath ( const MObject object,
MStatus ReturnStatus = NULL 
)

Constructor.

Class constructor that initializes the function set to the given MObject.

Parameters:
[in] object The MObject to attach the function set to
[out] ReturnStatus the return status
Status Codes:

Member Function Documentation

MFn::Type type ( ) const [virtual]

Function set type.

Return the class type : MFn::kMotionPath.

Reimplemented from MFnDependencyNode.

const char * className ( ) const [protected, virtual]

Class name.

Return the class name : "MFnMotionPath".

Reimplemented from MFnDependencyNode.

MObject create ( const MDagPath pathObject,
const MDagPath objectToAnimate,
MTime timeStart,
MTime timeEnd,
MDGModifier modifier = NULL,
MStatus ReturnStatus = NULL 
)

Create a new motion path dependency node.

When a motion path node is created, the following defaults are set:

  • Follow OFF
  • Bank OFF
  • BankScale 1.0
  • BankThreshold 0.5 * PI
Parameters:
[in] pathObject the curve, surface, or curve-on-surface to use as the object path
[in] objectToAnimate the object that will follow the motion path
[in] timeStart the time at which to start the animation
[in] timeEnd the time at which to end the animation
[in] modifier this object will hold the undo information
[out] ReturnStatus Status Code
Returns:
The new motion path node
Status Codes:
Examples:
motionPathCmd.cpp.
MStatus setPathObject ( const MDagPath pathObject,
MDGModifier modifier = NULL 
)

Set the curve or surface for this motion path.

All animated objects for this motion path will follow the new path that is specified.

Parameters:
[in] pathObject The curve (or surface) that will be the motion path
[in] modifier The object that will hold the undo information
Returns:
Status Code
Status Codes:
MDagPath pathObject ( MStatus ReturnStatus = NULL )

Return a dag path to the motion path object.

The motion path object is the curve/surface that animated objects of this node will move along.

Parameters:
[out] ReturnStatus Status Code
Returns:
The dag path of the motion path object
Status Codes:
MStatus addAnimatedObject ( const MDagPath objectToAnimate,
MDGModifier modifier = NULL 
)

Add an object to be animated along this motion path.

Parameters:
[in] objectToAnimate A DAG path to the animated object
[in] modifier The object that will hold the undo information
Returns:
Status Code
Status Codes:
MStatus getAnimatedObjects ( MDagPathArray array )

Returns an array of dag paths to the animated objects for this motion path.

Parameters:
[out] array Storage for the dag paths.
Returns:
Status Code
Status Codes:
MStatus setFollow ( bool  on,
MDGModifier modifier = NULL 
)

Setting follow on will cause the animated object(s) local axis to be aligned with the tangent of the motion path.

The default alignment axis is Y.

Parameters:
[in] on Specifies whether follow is activated for this motion path
[in] modifier The object that will hold the undo information
Returns:
Status Code
Status Codes:
bool follow ( MStatus ReturnStatus = NULL ) const

Determines whether follow is set for this motion path node.

Parameters:
[out] ReturnStatus Status Code
Returns:
  • true Follow is turned on
  • false Follow is turned off
Status Codes:
MStatus setFollowAxis ( MFnMotionPath::Axis  axis )

Sets the axis of the animated object that will follow the motion path.

Possible alignment parameters are kXaxis, kYaxiz, or kZaxis.

Parameters:
[in] axis Object axis to align with motion path tangent
Returns:
Status Code
Status Codes:
MFnMotionPath::Axis followAxis ( MStatus ReturnStatus = NULL )

Return the follow axis for this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
The follow axis.
Status Codes:
MStatus setUpAxis ( MFnMotionPath::Axis  axis )

Set the up-axis for this motion path.

Parameters:
[in] axis Axis to be set
Returns:
Status Code
Status Codes:
MFnMotionPath::Axis upAxis ( MStatus ReturnStatus = NULL )

Return the up-axis for this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
The up-axis for this motion path
Status Codes:
MStatus setBank ( bool  bank )
Parameters:
[in] bank Specifies whether bank is turned on
Returns:
Status Code
Status Codes:
bool bank ( MStatus ReturnStatus = NULL ) const

Determines whether bank has been enabled for this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
  • true Bank is enabled
  • false Bank is disabled
Status Codes:
MStatus setBankScale ( double  bankScale )

Set the bank scale for this motion path.

If the computed bank angles are not large enough, the user can specify the bankScale to amplify them. The default value is 1.

Positive bankScale produces inward bank angle, negative bankScale produces outward bank angle.

Parameters:
[in] bankScale The new bank scale value
Returns:
Status Code
Status Codes:
double bankScale ( MStatus ReturnStatus = NULL )

Return the bank scale for this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
The bank scale.
Status Codes:
MStatus setBankThreshold ( double  bankThreshold )

Set the bank threshold for this motion path.

The bank threshold is used to specify the maximum bank angle. The default value is 90 degrees.

Parameters:
[in] bankThreshold The new bank threshold value
Returns:
Status Code
Status Codes:
double bankThreshold ( MStatus ReturnStatus = NULL )

Return the bank threshold for this motion path.

The bank threshold is used to specify the maximum bank angle. The default value is 90 degrees.

Parameters:
[out] ReturnStatus Status Code
Returns:
The bank threshold.
Status Codes:
MStatus setUseNormal ( bool  use )

If true, enables alignment of the up axis of the animated object to the normal vector of the path geometry.

Parameters:
[in] use Specifies if normal is used
Returns:
Status Code
Status Codes:
bool useNormal ( MStatus ReturnStatus = NULL )

Determines whether the up-axis of the animated object for this motion path is aligned with the normal vector of the path geometry.

Parameters:
[out] ReturnStatus Status Code
Returns:
  • true Normal vector is used for object alignment.
  • false Normal vector is not used for object alignment.
Status Codes:
MStatus setInverseNormal ( bool  invert )

If true, enable alignment of the up axis of the moving object(s) to the opposite direction of the normal vector of the path geometry.

Parameters:
[in] invert Specifies if inverse normal is used
Returns:
Status Code
Status Codes:
bool inverseNormal ( MStatus ReturnStatus = NULL )

Determines whether the up-axis of the animated object for this motion path is aligned to the opposite direction of the normal vector of the path geometry.

Parameters:
[out] ReturnStatus Status Code
Returns:
  • true Inverse normal vector is used for object alignment.
  • false Inverse normal vector is not used for object alignment.
Status Codes:
MStatus setUStart ( double  start )

Sets the starting value of the u parameterization for the animation.

Parameters:
[in] start the new start value
Returns:
Status Code
Status Codes:
MStatus setUEnd ( double  end )

Sets the end value of the u parameterization for the animation.

Parameters:
[in] end the new end value
Returns:
Status Code
Status Codes:
double uStart ( MStatus ReturnStatus = NULL )

Returns the starting value of the u parameterization for the animation.

Parameters:
[out] ReturnStatus Status Code
Returns:
The starting value
Status Codes:
double uEnd ( MStatus ReturnStatus = NULL )

Returns the end value of the u parameterization for the animation.

Parameters:
[out] ReturnStatus Status Code
Returns:
The end value
Status Codes:
MStatus setUTimeStart ( MTime start )

Sets the starting time of the animation for the u parameter.

Parameters:
[in] start the new start time
Returns:
Status code
Status Codes:
MStatus setUTimeEnd ( MTime end )

Sets the end time of the animation for the u parameter.

Parameters:
[in] end the new end time
Returns:
Status code
Status Codes:
MTime uTimeStart ( MStatus ReturnStatus = NULL )

Returns the start time of the animation for the u parameter.

Parameters:
[out] ReturnStatus Status Code
Returns:
The starting time
Status Codes:
MTime uTimeEnd ( MStatus ReturnStatus = NULL )

Returns the end time of the animation for the u parameter.

Parameters:
[out] ReturnStatus Status Code
Returns:
The end time
Status Codes:
unsigned int numPositionMarkers ( MStatus ReturnStatus = NULL )

Returns the number of position markers on this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
The number of markers
Status Codes:
MObject getPositionMarker ( unsigned int  markerNum,
MStatus ReturnStatus = NULL 
)

Gets the position marker where markerNum is the order in which the marker was created.

Parameters:
[in] markerNum The number of the marker
[out] ReturnStatus Status Code
Returns:
The position marker
Status Codes:
unsigned int numOrientationMarkers ( MStatus ReturnStatus = NULL )

Returns the number of orientation markers on this motion path.

Parameters:
[out] ReturnStatus Status Code
Returns:
The number of markers
Status Codes:
MObject getOrientationMarker ( unsigned int  markerNum,
MStatus ReturnStatus = NULL 
)

Gets the orientation marker where markerNum is the order in which the marker was created.

Parameters:
[in] markerNum The number of the marker
[out] ReturnStatus Status Code
Returns:
The orientation marker
Status Codes:

MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath
MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath MFnMotionPath