FBObjectPose Class Reference

#include <fbobjectpose.h>
FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose FBObjectPose
Inheritance diagram for FBObjectPose:
Inheritance graph
[legend]

List of all members.


Detailed Description

FBObjectPose class.

This class exposes the object used to store the pose of objects.

Definition at line 192 of file fbobjectpose.h.


Public Member Functions

  FBObjectPose (char *pName, HIObject pObject=NULL)
  Public constructor.
void  ClearPose ()
  Clear all the data of the pose.
bool  IsPropertyPoseable (FBProperty &pProperty)
  Is the property poseable?
void  CopyObjectPose (const char *pObjectName, FBComponent &pObject)
  Copy the pose of all the properties of an object.
void  CopyPropertyPose (const char *pObjectName, FBProperty &pProperty)
  Copy the pose of a property of an object.
void  PasteObjectPose (const char *pObjectName, FBComponent &pObject)
  Paste the pose of all the properties of an object.
void  PastePropertyPose (const char *pObjectName, FBProperty &pProperty)
  Paste the pose of a property of an object.
void  SetPropertyValue (const char *pObjectName, const char *pPropertyName, double *pValue, int pSize)
  Set the value of a property in the pose.
void  GetPropertyValue (double *pValue, int pSize, const char *pObjectName, const char *pPropertyName)
  Get the value of a property stored in the pose.
bool  IsPropertyStored (const char *pObjectName, const char *pPropertyName)
  Is the property stored in the pose?
void  CopyTransform (const char *pObjectName, FBComponent &pObject, FBObjectPoseOptions &pObjectPoseOptions)
  Copy the transform of an object.
void  PasteTransform (const char *pObjectName, FBComponent &pObject, FBObjectPoseOptions &pObjectPoseOptions)
  Paste the transform of an object.
void  SetTransform (FBTVector &pT, FBMatrix &pRM, FBMatrix &pSM, const char *pObjectName, FBPoseTransformType pPoseTransformType)
  Set the transform of an object in the pose.
bool  GetTransform (FBTVector &pT, FBMatrix &pRM, FBMatrix &pSM, const char *pObjectName, FBPoseTransformType pPoseTransformType)
  Get the transform of an object in the pose.
bool  IsTransformStored (const char *pObjectName, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Is the transform of this object stored in the specified TransformType?
void  MultTransformAllObjects (FBMatrix &pGX, FBModelTransformationMatrix pTransformAttribute, FBPoseTransformType pPoseTransformType)
  Multiply the transform of all objects in the pose.
void  MultTransform (const char *pObjectName, FBMatrix &pGX, FBModelTransformationMatrix pTransformAttribute, FBPoseTransformType pPoseTransformType)
  Multiply the transform of an objects in the pose.
void  MirrorPoseAllObjects (FBObjectPoseMirrorOptions &pObjectPoseMirrorOptions)
  Mirror the transform of all objects in the pose.
void  MirrorPose (const char *pObjectName, FBObjectPoseMirrorOptions &pObjectPoseMirrorOptions)
  Mirror the transform of an object in the pose.
void  RemoveStanceOffsetAllObjects (FBObjectPose &pStancePose, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Remove the StanceOffset from all the objects in the pose.
void  RemoveStanceOffset (const char *pObjectName, FBObjectPose &pStancePose, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Remove the StanceOffset from an object in the pose.
void  AddStanceOffsetAllObjects (FBObjectPose &pStancePose, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Add the StanceOffset to all the objects in the pose.
void  AddStanceOffset (const char *pObjectName, FBObjectPose &pStancePose, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Add the StanceOffset to an object in the pose.
void  CopyFrom (FBObjectPose &pFromPose)
  Copy everything from a given object.
void  CopyPoseDataFrom (FBObjectPose &pFromPose)
  Copy all the pose data from a given pose.
void  CopyPoseAllObjectsTransformFrom (FBObjectPose &pFromPose, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Copy all the transforms from a given pose.
void  CopyPoseTransformFrom (FBObjectPose &pFromPose, const char *pObjectName, FBPoseTransformType pPoseTransformType=kFBPoseTransformInvalid)
  Copy the transforms of an object from a given pose.

Static Public Member Functions

static void  MirrorRetargetPoseAllObjects (FBObjectPose &pDstPose, FBObjectPose &pSrcPose, FBObjectPose &pDstStancePose, FBObjectPose &pSrcStancePose, FBVector4< double > &pMirrorPlaneEquation)
  Mirror the transform of all objects in the SrcPose and retarget the result on the DstPose.
static void  MirrorRetargetPose (FBObjectPose &pDstPose, FBObjectPose &pSrcPose, FBObjectPose &pDstStancePose, FBObjectPose &pSrcStancePose, FBVector4< double > &pMirrorPlaneEquation, const char *pDstObjectName, const char *pSrcObjectName)
  Mirror the transform of an object in the SrcPose and retarget the result on the DstPose.

Constructor & Destructor Documentation

FBObjectPose ( char *  pName,
HIObject  pObject = NULL  
)

Public constructor.

This constructor is used to create a new object.

Parameters:
pName  Object name. If pObject is not NULL, pName will be ignored.
pObject  For internal use only.

Member Function Documentation

void ClearPose (  ) 

Clear all the data of the pose.

bool IsPropertyPoseable ( FBProperty pProperty  ) 

Is the property poseable?

Returns:
True if the value of this property can be stored in the pose.

void CopyObjectPose ( const char *  pObjectName,
FBComponent pObject  
)

Copy the pose of all the properties of an object.

Remarks:
You can specify a pObjectName different from the name of pObject.
Parameters:
pObjectName  Name of the object to store in the pose.
pObject  Object from which we'll read all the property values to store in the pose.

void CopyPropertyPose ( const char *  pObjectName,
FBProperty pProperty  
)

Copy the pose of a property of an object.

Remarks:
You can specify a pObjectName different from the name of pObject.
Parameters:
pObjectName  Name of the object to store in the pose.
pProperty  Property from which we'll read the value to store in the pose.

void PasteObjectPose ( const char *  pObjectName,
FBComponent pObject  
)

Paste the pose of all the properties of an object.

Remarks:
You can specify a pObjectName different from the name of pObject.

Properties that were not stored in the pose will not be affected.

Parameters:
pObjectName  Name of the object stored in the pose.
pObject  Object which will receive the values stored in the pose.

void PastePropertyPose ( const char *  pObjectName,
FBProperty pProperty  
)

Paste the pose of a property of an object.

Remarks:
You can specify a pObjectName different from the name of pObject.

The property will not be affected if it was not stored in the pose.

Parameters:
pObjectName  Name of the object stored in the pose.
pProperty  Property which will receive the value stored in the pose.

void SetPropertyValue ( const char *  pObjectName,
const char *  pPropertyName,
double *  pValue,
int  pSize  
)

Set the value of a property in the pose.

Parameters:
pValue  Value to set.
pSize  Number of elements in pValue.
pObjectName  Name of the object to set the value.
pPropertyName  Name of the property to set the value.

void GetPropertyValue ( double *  pValue,
int  pSize,
const char *  pObjectName,
const char *  pPropertyName  
)

Get the value of a property stored in the pose.

Parameters:
pValue  Value to get.
pSize  Number of elements in pValue.
pObjectName  Name of the object to get the value.
pPropertyName  Name of the property to get the value.

bool IsPropertyStored ( const char *  pObjectName,
const char *  pPropertyName  
)

Is the property stored in the pose?

Parameters:
pObjectName  Name of the object.
pPropertyName  Name of the property.
Returns:
True if the property is stored in the pose.

void CopyTransform ( const char *  pObjectName,
FBComponent pObject,
FBObjectPoseOptions pObjectPoseOptions  
)

Copy the transform of an object.

Remarks:
This function will always copy all the TransformAttributes (T,R,S) in all TransformType (Local, Global, LocalRef).
Parameters:
pObjectName  Name of the object to store in the pose.
pObject  Object from which we'll evaluate the transform values to store in the pose.
pObjectPoseOptions  PoseOptions used to specify the transform of the reference object (Default: Identity).

void PasteTransform ( const char *  pObjectName,
FBComponent pObject,
FBObjectPoseOptions pObjectPoseOptions  
)

Paste the transform of an object.

Remarks:
Use the pObjectPoseOptions to specify which TransformType to use when pasting.
Parameters:
pObjectName  Name of the object stored in the pose.
pObject  Object which will receive the transform values stored in the pose.
pObjectPoseOptions  PoseOptions used to specify the transform of the reference object, the TransformType and TransformAttributes to paste.

void SetTransform ( FBTVector pT,
FBMatrix pRM,
FBMatrix pSM,
const char *  pObjectName,
FBPoseTransformType  pPoseTransformType  
)

Set the transform of an object in the pose.

Parameters:
pT  Translation to set.
pRM  Rotation to set.
pSM  Scaling to set.
pObjectName  Name of the object to set the transform.
pPoseTransformType  Transform type in which to set the transform (Local, Global or LocalRef).

bool GetTransform ( FBTVector pT,
FBMatrix pRM,
FBMatrix pSM,
const char *  pObjectName,
FBPoseTransformType  pPoseTransformType  
)

Get the transform of an object in the pose.

Parameters:
pT  Translation to get.
pRM  Rotation to get.
pSM  Scaling to get.
pObjectName  Name of the object to get the transform.
pPoseTransformType  Transform type in which to set the transform (Local, Global or LocalRef).
Returns:
True if the transform was found in the pose.

bool IsTransformStored ( const char *  pObjectName,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Is the transform of this object stored in the specified TransformType?

Remarks:
If pPoseTransformType is set to kFBPoseTransformInvalid, will check in all TransformTypes.
Parameters:
pObjectName  Name of the object.
pPoseTransformType  Transform type in which to check.
Returns:
True if the transform of this object is stored in the specified TransformType (Local, Global and LocalRef).

void MultTransformAllObjects ( FBMatrix pGX,
FBModelTransformationMatrix  pTransformAttribute,
FBPoseTransformType  pPoseTransformType  
)

Multiply the transform of all objects in the pose.

Parameters:
pGX  Transformation matrix to apply.
pTransformAttribute  Transform attribute to affect. Supported: T,R,S and Transformation.
pPoseTransformType  Transform type in which to mult the transform (Local, Global or LocalRef).

void MultTransform ( const char *  pObjectName,
FBMatrix pGX,
FBModelTransformationMatrix  pTransformAttribute,
FBPoseTransformType  pPoseTransformType  
)

Multiply the transform of an objects in the pose.

Parameters:
pObjectName  Name of the object.
pGX  Transformation matrix to apply.
pTransformAttribute  Transform attribute to affect. Supported: T,R,S and Transformation.
pPoseTransformType  Transform type in which to mult the transform (Local, Global or LocalRef).

void MirrorPoseAllObjects ( FBObjectPoseMirrorOptions pObjectPoseMirrorOptions  ) 

Mirror the transform of all objects in the pose.

Parameters:
pObjectPoseMirrorOptions  MirrorOptions used to specify the mirror plane.

void MirrorPose ( const char *  pObjectName,
FBObjectPoseMirrorOptions pObjectPoseMirrorOptions  
)

Mirror the transform of an object in the pose.

Parameters:
pObjectName  Name of the object to mirror.
pObjectPoseMirrorOptions  MirrorOptions used to specify the mirror plane.

void RemoveStanceOffsetAllObjects ( FBObjectPose pStancePose,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Remove the StanceOffset from all the objects in the pose.

Remarks:
Working with poses with their StanceOffset removed is usefull for retargetting.

If pPoseTransformType is set to kFBPoseTransformInvalid, offsets will be removed in all TransformTypes.

Parameters:
pStancePose  Pose representing the stance of all objects.
pPoseTransformType  Transform type in which to remove the offset (Local, Global or LocalRef).

void RemoveStanceOffset ( const char *  pObjectName,
FBObjectPose pStancePose,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Remove the StanceOffset from an object in the pose.

Remarks:
Working with poses with their StanceOffset removed is usefull for retargetting.

If pPoseTransformType is set to kFBPoseTransformInvalid, offsets will be removed in all TransformTypes.

Parameters:
pObjectName  Name of the object.
pStancePose  Pose representing the stance of all objects.
pPoseTransformType  Transform type in which to remove the offset (Local, Global or LocalRef).

void AddStanceOffsetAllObjects ( FBObjectPose pStancePose,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Add the StanceOffset to all the objects in the pose.

Remarks:
Working with poses with their StanceOffset removed is usefull for retargetting.

If pPoseTransformType is set to kFBPoseTransformInvalid, offsets will be added in all TransformTypes.

Parameters:
pStancePose  Pose representing the stance of all objects.
pPoseTransformType  Transform type in which to add the offset (Local, Global or LocalRef).

void AddStanceOffset ( const char *  pObjectName,
FBObjectPose pStancePose,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Add the StanceOffset to an object in the pose.

Remarks:
Working with poses with their StanceOffset removed is usefull for retargetting.

If pPoseTransformType is set to kFBPoseTransformInvalid, offsets will be added in all TransformTypes.

Parameters:
pObjectName  Name of the object.
pStancePose  Pose representing the stance of all objects.
pPoseTransformType  Transform type in which to add the offset (Local, Global or LocalRef).

static void MirrorRetargetPoseAllObjects ( FBObjectPose pDstPose,
FBObjectPose pSrcPose,
FBObjectPose pDstStancePose,
FBObjectPose pSrcStancePose,
FBVector4< double > &  pMirrorPlaneEquation  
) [static]

Mirror the transform of all objects in the SrcPose and retarget the result on the DstPose.

Remarks:
This function can be used to mirror the pose of a right-arm on a left-arm, or a tail on itself.

The mirror plane should intersect with the origin because we mirror the pose with stance offsets removed.

Parameters:
pDstPose  Destination pose to receive the result.
pSrcPose  Source pose to mirror.
pDstStancePose  Stance pose for the DstPose.
pSrcStancePose  Stance pose for the SrcPose.
pMirrorPlaneEquation  Mirror plane used to mirror the SrcPose once the stance offsets are removed.

static void MirrorRetargetPose ( FBObjectPose pDstPose,
FBObjectPose pSrcPose,
FBObjectPose pDstStancePose,
FBObjectPose pSrcStancePose,
FBVector4< double > &  pMirrorPlaneEquation,
const char *  pDstObjectName,
const char *  pSrcObjectName  
) [static]

Mirror the transform of an object in the SrcPose and retarget the result on the DstPose.

Remarks:
This function can be used to mirror the pose of a right-arm on a left-arm, or a tail on itself.

The mirror plane should intersect with the origin because we mirror the pose with stance offsets removed.

Parameters:
pDstPose  Destination pose to receive the result.
pSrcPose  Source pose to mirror.
pDstStancePose  Stance pose for the DstPose.
pSrcStancePose  Stance pose for the SrcPose.
pMirrorPlaneEquation  Mirror plane used to mirror the SrcPose once the stance offsets are removed.
pDstObjectName  Name of the object in the DstPose to receive the mirror of the SrcPose.
pSrcObjectName  Name of the object to mirror from the SrcPose.

void CopyFrom ( FBObjectPose pFromPose  ) 

Copy everything from a given object.

Remarks:
Will copy everything, including the object name, properties, data etc. Objects will be identical.
Parameters:
pFromPose  Pose from which to copy.

void CopyPoseDataFrom ( FBObjectPose pFromPose  ) 

Copy all the pose data from a given pose.

Remarks:
Will copy all the data of the pose including the transforms.
Parameters:
pFromPose  Pose from which to copy the data.

void CopyPoseAllObjectsTransformFrom ( FBObjectPose pFromPose,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Copy all the transforms from a given pose.

Remarks:
If pPoseTransformType is set to kFBPoseTransformInvalid, copy all TransformTypes.
Parameters:
pFromPose  Pose from which to copy the data.
pPoseTransformType  Transform type from which to copy the transform (Local, Global or LocalRef).

void CopyPoseTransformFrom ( FBObjectPose pFromPose,
const char *  pObjectName,
FBPoseTransformType  pPoseTransformType = kFBPoseTransformInvalid  
)

Copy the transforms of an object from a given pose.

Remarks:
If pPoseTransformType is set to kFBPoseTransformInvalid, copy all TransformTypes.
Parameters:
pFromPose  Pose from which to copy the data.
pObjectName  Name of object to copy the transform from.
pPoseTransformType  Transform type from which to copy the transform (Local, Global or LocalRef).

Please send us your comments about this page.