I3dExSkinable Struct Reference
[External Interfaces]

Inheritance diagram for I3dExSkinable:
IMCUnknown

List of all members.

Public Member Functions

virtual void MCCOMAPI AttachSkeleton (TMCPtrArray< I3DShJoint > &joints, I3DShInstance *instance, boolean computeWeights=true, boolean computeJointsTransforms=true, IMCUnknown *undoExtraData=NULL)=0
virtual void MCCOMAPI TransferSkeleton (const TMCPtrArray< I3DShJoint > &joints, I3DShInstance *instance)=0
virtual void MCCOMAPI DetachAll ()=0
virtual void MCCOMAPI DetachSkeleton (IMCUnknown **undoExtraData=NULL)=0
virtual boolean MCCOMAPI IsAttached ()=0
virtual boolean MCCOMAPI IsSkeletonAttached ()=0
virtual void MCCOMAPI GetJoints (TMCPtrArray< I3DShJoint > &joints)=0
virtual void MCCOMAPI GetJointsInverseReferenceTransforms (TMCArray< TTransform3D > &outTransforms)=0
virtual void MCCOMAPI SetJointsInverseReferenceTransforms (const TMCArray< TTransform3D > &inTransforms)=0
virtual void MCCOMAPI InvalidateSkining ()=0
virtual void MCCOMAPI GetInstance (I3DShInstance **instance)=0
virtual void MCCOMAPI GetInstanceGlobalReferenceTransform (TTransform3D &outTransform)=0
virtual void MCCOMAPI SetInstanceGlobalReferenceTransform (const TTransform3D &inTransform)=0
virtual void MCCOMAPI WeightsModified ()=0
virtual void MCCOMAPI SetSkinableDisplayMode (ESkinableDisplayMode mode)=0
virtual ESkinableDisplayMode
MCCOMAPI 
GetSkinableDisplayMode () const =0
virtual void MCCOMAPI ValidateJointBoundingBoxes ()=0
virtual void MCCOMAPI SetSkinnableSelectionMode (ESkinnableSelectionMode mode)=0
virtual
ESkinnableSelectionMode
MCCOMAPI 
GetSkinnableSelectionMode () const =0
virtual int32 MCCOMAPI AttachGlobalDeformer (I3DShInstance *instance, I3DShGlobalDeformerHelper *deformer, int32 insertIndex=-1, IMCUnknown *undoExtraData=NULL, boolean relink=false)=0
virtual int32 MCCOMAPI DetachGlobalDeformer (I3DShGlobalDeformerHelper *deformer, IMCUnknown **undoExtraData=NULL)=0
virtual void MCCOMAPI GetGlobalDeformers (TMCPtrArray< I3DShGlobalDeformerHelper > &deformers)=0
virtual boolean MCCOMAPI HasGlobalDeformers () const =0
virtual void MCCOMAPI DetachAllGlobalDeformers ()=0
virtual void MCCOMAPI InvalidateGlobalDeformer (I3DShGlobalDeformerHelper *deformer)=0
virtual void MCCOMAPI SetEditedJointIndex (const TJointIndex &index)=0
 For internal uses.
virtual TJointIndex MCCOMAPI GetEditedJointIndex () const =0
 For internal uses.
virtual void MCCOMAPI SetEditedChannelIndex (uint32 index)=0
 For internal uses.
virtual uint32 MCCOMAPI GetEditedChannelIndex ()=0
 For internal uses.
virtual int32 MCCOMAPI GetFatherJointIndex (int32 jointIndex)=0
 Returns the Father joint index of the joint index.

Detailed Description

I3DExSkinable is an interface for a primitive that accepts bones. To create a primitive to which bones can be applied, you just need to derive it from this interface and implement its methods.

At this point only the vertex primitives support this interface.

If you implement the I3DExSkinable interface, it is recommended that your class offers a way to access weights data. For example, you can use the I3DExVertex interface to access the weights on a vertex of a vertex primitive (using SetSkiningData, GetSkiningData).

The classes supporting I3dExSkinable should provide a low level api to access the skining data. For example, with I3DExVertexPrimitive you can get an I3DExVertex interface for each vertex and then manipulate the joints weights with SetSkiningData and GetSkiningData.


Member Function Documentation

virtual int32 MCCOMAPI I3dExSkinable::AttachGlobalDeformer ( I3DShInstance instance,
I3DShGlobalDeformerHelper deformer,
int32  insertIndex = -1,
IMCUnknown undoExtraData = NULL,
boolean  relink = false 
) [pure virtual]

Attaches the given deformer to the skinnable.

Parameters:
undoExtraData Can be used to undo a detach properly, give the object you get from the detach call to DetachGlobalDeformer.
relink Used if this attach is just a relink (ie. the deformer just has to be attached to the primitive but all internal parameters already contains this deformer).
virtual void MCCOMAPI I3dExSkinable::AttachSkeleton ( TMCPtrArray< I3DShJoint > &  joints,
I3DShInstance instance,
boolean  computeWeights = true,
boolean  computeJointsTransforms = true,
IMCUnknown undoExtraData = NULL 
) [pure virtual]

Attaches the given skeletton, this object and its single instance together for skinning Note: do NOT call it twice without first dettaching the Skeleton

Parameters:
joints The list of the joints forming the skeleton of the the primitive to. They MUST have a common root.
computeWeights If true, automatically computes the weights of the joints for each vertex. (pass false only when the weights are already there, eg when loading a file)
computeJointsTransforms,: If true, stores the inverse of the global transform of each joint if you pass false, you must call SetJointsInverseReferenceTransforms.
instance The single instance of the object
undoExtraData Can be used to undo a detach properly, give the object you get from the detach call
virtual void MCCOMAPI I3dExSkinable::DetachAll (  )  [pure virtual]

Turns back to a non skinned object.

virtual void MCCOMAPI I3dExSkinable::DetachAllGlobalDeformers (  )  [pure virtual]
virtual int32 MCCOMAPI I3dExSkinable::DetachGlobalDeformer ( I3DShGlobalDeformerHelper deformer,
IMCUnknown **  undoExtraData = NULL 
) [pure virtual]

Detaches the given deformer. undoExtraData can be used to undo a detach properly, give this object to AttachGlobalDeformer when re-attaching

virtual void MCCOMAPI I3dExSkinable::DetachSkeleton ( IMCUnknown **  undoExtraData = NULL  )  [pure virtual]

Detaches the skeleton but keeps the deformers. undoExtraData can be used to undo a detach properly, give this object to AttachSkeleton when re-attaching

virtual uint32 MCCOMAPI I3dExSkinable::GetEditedChannelIndex (  )  [pure virtual]

For internal uses.

virtual TJointIndex MCCOMAPI I3dExSkinable::GetEditedJointIndex (  )  const [pure virtual]

For internal uses.

virtual int32 MCCOMAPI I3dExSkinable::GetFatherJointIndex ( int32  jointIndex  )  [pure virtual]

Returns the Father joint index of the joint index.

virtual void MCCOMAPI I3dExSkinable::GetGlobalDeformers ( TMCPtrArray< I3DShGlobalDeformerHelper > &  deformers  )  [pure virtual]

Returns all the deformers.

virtual void MCCOMAPI I3dExSkinable::GetInstance ( I3DShInstance **  instance  )  [pure virtual]

Returns THE skinned instance.

Parameters:
instance A pointer to this instance that is returned.
virtual void MCCOMAPI I3dExSkinable::GetInstanceGlobalReferenceTransform ( TTransform3D outTransform  )  [pure virtual]

Returns the global transform of the instance (when the skining was created).

virtual void MCCOMAPI I3dExSkinable::GetJoints ( TMCPtrArray< I3DShJoint > &  joints  )  [pure virtual]

Returns the joints attached to the vertex object

Parameters:
joints Returns the list of the joints that are used for the skinning of this primitive.
virtual void MCCOMAPI I3dExSkinable::GetJointsInverseReferenceTransforms ( TMCArray< TTransform3D > &  outTransforms  )  [pure virtual]

Returns the inverse global transforms that the joints had when they were attached to the object The array has the same order and number of elements than GetJoints

Parameters:
outTransforms The array of the original inverse transform of the joints.
virtual ESkinableDisplayMode MCCOMAPI I3dExSkinable::GetSkinableDisplayMode (  )  const [pure virtual]

Sets the display mode for this skinable.

virtual ESkinnableSelectionMode MCCOMAPI I3dExSkinable::GetSkinnableSelectionMode (  )  const [pure virtual]

Gets the skinnable selection mode (see ESkinnableSelectionMode).

virtual boolean MCCOMAPI I3dExSkinable::HasGlobalDeformers (  )  const [pure virtual]

Returns true if the skinnable is deformed by global deformers

virtual void MCCOMAPI I3dExSkinable::InvalidateGlobalDeformer ( I3DShGlobalDeformerHelper deformer  )  [pure virtual]

Invalidtaes the given deformer (this function should be called if the deformer instance is modified, for instance a magnet deformer changes its zone).

virtual void MCCOMAPI I3dExSkinable::InvalidateSkining (  )  [pure virtual]

Called when the transform of a joint change so that the skinnable can invalidate its caches.

virtual boolean MCCOMAPI I3dExSkinable::IsAttached (  )  [pure virtual]

Returns true if the vertex primitive is skinned (skeleton or deformer).

virtual boolean MCCOMAPI I3dExSkinable::IsSkeletonAttached (  )  [pure virtual]

Returns true if the vertex primitive is skinned by a skeleton

virtual void MCCOMAPI I3dExSkinable::SetEditedChannelIndex ( uint32  index  )  [pure virtual]

For internal uses.

virtual void MCCOMAPI I3dExSkinable::SetEditedJointIndex ( const TJointIndex index  )  [pure virtual]

For internal uses.

virtual void MCCOMAPI I3dExSkinable::SetInstanceGlobalReferenceTransform ( const TTransform3D inTransform  )  [pure virtual]

Sets the global transform of the instance (when loading a file).

virtual void MCCOMAPI I3dExSkinable::SetJointsInverseReferenceTransforms ( const TMCArray< TTransform3D > &  inTransforms  )  [pure virtual]

Sets the inverse global transforms that the joints had when they were attached to the object The array must have the same order and number of elements than the one given to AttachSkeleton

Parameters:
inTransforms The array of the original inverse transform of the joints.
virtual void MCCOMAPI I3dExSkinable::SetSkinableDisplayMode ( ESkinableDisplayMode  mode  )  [pure virtual]

Sets the display mode for this skinable.

virtual void MCCOMAPI I3dExSkinable::SetSkinnableSelectionMode ( ESkinnableSelectionMode  mode  )  [pure virtual]

Sets the skinnable selection mode (see ESkinnableSelectionMode).

virtual void MCCOMAPI I3dExSkinable::TransferSkeleton ( const TMCPtrArray< I3DShJoint > &  joints,
I3DShInstance instance 
) [pure virtual]

Turns back to a non skinned object.

virtual void MCCOMAPI I3dExSkinable::ValidateJointBoundingBoxes (  )  [pure virtual]

Validates the bounding baxes at the noint level

See also:
I3DShJoint::
virtual void MCCOMAPI I3dExSkinable::WeightsModified (  )  [pure virtual]

Called when some weights have been modified.


The documentation for this struct was generated from the following file:
Generated on Mon Apr 26 22:47:38 2010 for Carrara SDK Doc by  doxygen 1.6.3