A ShapeClip is an instance of a shape key (source) at a particular position along a shape track in the animation mixer.
You can create shape clips using the SaveShapeKey command. To enumerate existing shape clips you must pass the full string path of the shape track's ClipList to the EnumElements command which returns a collection of ShapeClip objects.
You can create multiple clips of the same source (using the AddClip command), thereby returning to the same shape several times in the same animation, or rearrange the order of the shape clips on the tracks to change the shape animation completely.
ShapeClip allows you to access the shape animation stored in clusters by using Clip::GetMappedItems. Each MappedItem object returns the ShapeKey object (a specialized kind of ClusterProperty) from MappedItem::GetAnimationSource. ShapeKeys contain shape animation data and you can use SIObject::GetParent on the ShapeKey to get the shape-animated Cluster object.
When you save a shape key in local reference mode (siShapeLocalReferenceMode) only the deltas to the point's local referential are stored. If you need to get the absolute position for each point in the shape you will need the local referential for the point and the original position of the point before the shape key was applied.
In order to get the local referential (see Geometry0D.LocalReferenceFrame) and the original position for each point you will need to mute the shape combiner and all other operators above it using the DeactivateAbove command.
#include <xsi_shapeclip.h>
Public Member Functions | |
ShapeClip () | |
~ShapeClip () | |
ShapeClip (const CRef &in_ref) | |
ShapeClip (const ShapeClip &in_obj) | |
bool | IsA (siClassID in_ClassID) const |
siClassID | GetClassID () const |
ShapeClip & | operator= (const ShapeClip &in_obj) |
ShapeClip & | operator= (const CRef &in_ref) |
ShapeClip | ( | ) |
Default constructor.
~ShapeClip | ( | ) |
Default destructor.
bool IsA | ( | siClassID | in_ClassID | ) | const [virtual] |
Returns true if a given class type is compatible with this API class.
in_ClassID | class type. |
Reimplemented from ProjectItem.
siClassID GetClassID | ( | ) | const [virtual] |
Creates an object from another object. The newly created object is set to empty if the input object is not compatible.
in_obj | constant class object. |
Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.
in_ref | constant class object. |
Reimplemented from ProjectItem.