MAnimCurveChange Class Reference

#include <MAnimCurveChange.h>

Class Description

Anim Curve Change Cache.

Adding, removing and changing keyframes on an anim curve cannot be done simply by setting attribute values on the corresponding node. This makes it impossible to capture such changes in an MDGModifier for undo/redo purposes.

The MAnimCurveChange class provides persistent storage for information concerning changes to anim curve nodes, along with methods to undo and redo those changes. MFnAnimCurve methods which add, remove or change keyframes take an optional MAnimCurveChange instance in which to store information about the changes being made.

If the same MAnimCurveChange instance is used for multiple anim curve edit operations, then the cache maintains an undo/redo queue which allows all changes in the series to be undone or redone. If selective undo/redo is required, then a different MAnimCurveCache instance must be used for each edit.

Public Member Functions

 MAnimCurveChange (MStatus *ReturnStatus=NULL)
 Class Constructor. More...
 
 ~MAnimCurveChange ()
 Class Destructor. More...
 
MStatus undoIt ()
 Undoes all of the Anim Curve edits that have been given to this cache. More...
 
MStatus redoIt ()
 Redoes all of the Anim Curve edits that this cache previously undid. More...
 
bool isInteractive () const
 Return the performance hint flag value. More...
 
void setInteractive (bool value)
 The interactive flag is a performance hint. More...
 

Static Public Member Functions

static const char * className ()
 Returns the name of this class. More...
 

Constructor & Destructor Documentation

OPENMAYA_MAJOR_NAMESPACE_OPEN MAnimCurveChange ( MStatus ReturnStatus = NULL)

Class Constructor.

Creates a Anim Curve Change cache.

Parameters
[out]ReturnStatusStatus Code (see below)
Status Codes:
  • MS::kSuccess Success
  • MS::kInsufficientMemory Insufficient memory to create Anim Curve Change cache

Class Destructor.

No additional action.

Member Function Documentation

MStatus undoIt ( )

Undoes all of the Anim Curve edits that have been given to this cache.

Returns
Status Code (see below)
Status Codes:
  • MS::kSuccess Success
  • MS::kFailure Failure undoing edits - cache nonexistent or inaccessible
MStatus redoIt ( )

Redoes all of the Anim Curve edits that this cache previously undid.

It is only valid to invoke this method after an undo on this cache.

Returns
Status Code (see below)
Status Codes:
  • MS::kSuccess Success
  • MS::kFailure Failure redoing edits - cache nonexistent or inaccessible
bool isInteractive ( ) const

Return the performance hint flag value.

Returns
returns true if the interactive flag is set.
void setInteractive ( bool  value)

The interactive flag is a performance hint.

If the flag is set to true new edits will be merged with the key from previous edit. For example if you are dragging the key each drag will be merged so only the last edit of the drag is safed. If the curves have a lot of scattered edit this merge will not scale well, so it is best to to it to false in this case.

Parameters
[in]valuethe value to set the flag.
const char * className ( )
static

Returns the name of this class.

Returns
The name of this class.

The documentation for this class was generated from the following files:
  • MAnimCurveChange.h
  • MAnimCurveChange.cpp