Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends

FbxGeometry Class Reference

This reference page is linked to from the following overview topics: Geometry, Meshes, List of Python Fbx classes.


Search for all occurrences

Detailed Description

The base class of geometric objects that support control point deformations (e.g.

FbxMesh, FbxNurbs, and FbxPatch). The FbxGeometry provides support for the following kinds of deformations.

Most of the methods of FbxGeometry are wrappers to simplify the access/manipulation of the connections to the deformers. For example, calling the GetDeformerCount() method is the same thing as calling:

 geometry.GetSrcObjectCount(FbxDeformer::ClassId)
Examples:

ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, ImportScene/DisplayAnimation.cxx, ImportScene/DisplayLink.cxx, ImportScene/DisplayLink.h, ImportScene/DisplayMaterial.cxx, ImportScene/DisplayMaterial.h, ImportScene/DisplayShape.cxx, ImportScene/DisplayShape.h, ImportScene/DisplayTexture.cxx, and ImportScene/DisplayTexture.h.

Definition at line 57 of file fbxgeometry.h.

#include <fbxgeometry.h>

Inheritance diagram for FbxGeometry:
Inheritance graph
[legend]

List of all members.

Public Types

enum   ESurfaceMode {
  eRaw, eLowNoNormals, eLow, eHighNoNormals,
  eHigh
}
 

NURBS and Patches surface modes.

More...

Public Member Functions

virtual FbxNodeAttribute::EType  GetAttributeType () const
  Returns the node attribute type.
virtual FbxObject Copy (const FbxObject &pObject)
  Copy an object content into this object.
void  CleanShapeChannels (FbxAnimLayer *pAnimLayer)
  Rename the shapes from the old MotionBuilder 4.01 format to the new one.
void  CleanShapeChannel (FbxAnimLayer *pAnimLayer, int pShapeIndex)
  Rename the shapes from the old MotionBuilder 4.01 format to the new one.
void  CreateShapeChannelProperties (FbxString &pShapeName)
void  ConvertShapeNamesToV5Format (FbxString pTakeNodeName)
void  ConvertShapeNamesToV5Format (FbxString pTakeNodeName, int pShapeIndex)
void  RevertShapeNamesToV6Format (FbxString pTakeNodeName)
void  RevertShapeNamesToV6Format (FbxString pTakeNodeName, int pShapeIndex)
void  ClearTemporaryShapeNames ()
Deformer Management
int  AddDeformer (FbxDeformer *pDeformer)
  Adds a deformer to this geometry (as mentioned in the description of this class, adding a deformer is a synonym for "connect a deformer").
FbxDeformer RemoveDeformer (int pIndex)
  Remove a deformer.
int  GetDeformerCount () const
  Returns the number of deformers.
FbxDeformer GetDeformer (int pIndex) const
  Returns the deformer at the specified index.
int  GetDeformerCount (FbxDeformer::EDeformerType pType) const
  Returns the number of deformers of a specified type.
FbxDeformer GetDeformer (int pIndex, FbxDeformer::EDeformerType pType) const
  Returns the deformer of a specified type at the specified index.
Geometry Weighted Maps Management
FbxGeometryWeightedMap GetSourceGeometryWeightedMap ()
  Returns the source geometry weighted map that is connected to this geometry.
int  GetDestinationGeometryWeightedMapCount () const
  Returns the number of destination geometry weighted map(s) that are connected to this geometry.
FbxGeometryWeightedMap GetDestinationGeometryWeightedMap (int pIndex)
  Returns the destination geometry weighted map at a specified index.
Shape Management
bool  AddShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, FbxShape *pShape, double pPercent=100)
  Add a shape to the specified blend shape deformer and blend shape channel of this geometry.
void  ClearShape ()
  Removes all the shapes without destroying them.
int  GetShapeCount () const
  Returns the number of shapes.
int  GetShapeCount (int pBlendShapeIndex, int pBlendShapeChannelIndex) const
  Returns the number of shapes.
FbxShape GetShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, int pShapeIndex)
  Returns the shape found at the specified index on a blend shape channel of a blend shape deformer.
FbxShape const *  GetShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, int pShapeIndex) const
  Returns the shape found at the specified index on a blend shape channel of a blend shape deformer.
FbxAnimCurve GetShapeChannel (int pBlendShapeIndex, int pBlendShapeChannelIndex, FbxAnimLayer *pLayer, bool pCreateAsNeeded=false)
  Get the shape animation curve.
Pivot Management

The geometry pivot is used to specify additional translation, rotation, and scaling information applied to all control points when the model is exported.

FbxAMatrix GetPivot (FbxAMatrix &pXMatrix) const
  Returns the pivot matrix.
void  SetPivot (FbxAMatrix &pXMatrix)
  Sets the pivot matrix.
void  ApplyPivot ()
  Applies the pivot matrix to all vertices/normals of the geometry.
Default Animation Values

These functions provides direct access to default animation values that are specific to a geometry.

These functions only work if the geometry has been associated with a node.

void  SetDefaultShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, double pPercent)
  Sets the default deformation for a specified shape.
void  SetDefaultShape (FbxBlendShapeChannel *pBlendShapeChannel, double pPercent)
  Sets the default deformation for a specified shape.
double  GetDefaultShape (int pBlendShapeIndex, int pBlendShapeChannelIndex) const
  Returns the default deformation value for the specified shape.
double  GetDefaultShape (FbxBlendShapeChannel *pBlendShapeChannel) const
  Returns the default deformation value for the specified shape.

Protected Member Functions

  FbxGeometry (FbxManager &pManager, char const *pName)
virtual void  Destruct (bool pRecursive, bool pDependents)
virtual void  SetDocument (FbxDocument *pDocument)
FbxString  CreateShapeChannelName (int pShapeIndex)
FbxString  CreateShapeChannelName (FbxString pShapeName)
void  CopyDeformers (FbxGeometry const *pGeometry)
void  CopyPivot (FbxGeometry const *pSource)

Protected Attributes

FbxArray< FbxString * >  mShapeNameArrayV6
FbxArray< FbxString * >  mShapeNameArrayV5
FbxArray< FbxString * >  mShapeChannelNameArrayV5
FbxAMatrix mPivot
FbxError  mError

Friends

class  FbxScene

Error Management

enum   EErrorCode {
  eIndexOutOfRange, eNullParameter, eShapeAlreadyAdded, eShapeInvalidName,
  eShapeNameClash, eShapeNoCurveFound, eUnknownError, eErrorCount
}
 

Error identifiers.

More...
FbxError GetError ()
  Retrieves the error object.
EErrorCode  GetLastErrorID () const
  Returns the last error code.
const char *  GetLastErrorString () const
  Returns the last error string.

Member Enumeration Documentation

NURBS and Patches surface modes.

This information is never directly used inside the FBX SDK. Applications can use these values if they wish to carry the "rendering" details of the NURBS and Patches. The FBX SDK guarantee that the value (member of the FbxNurbs, FbxNurbsSurface and FbxPatch classes) is stored to FBX files and retrieved from them.

Remarks:
The enum has been defined in this class to avoid symbols duplication.
Enumerator:
eRaw 
eLowNoNormals 

Raw.

eLow 

Low and no normals.

eHighNoNormals 

Low.

eHigh 

High and no normals.

High.

Definition at line 212 of file fbxgeometry.h.

enum EErrorCode

Error identifiers.

Enumerator:
eIndexOutOfRange 

The index used to access an item is out of range.

eNullParameter 

Requested pointer to shape object is NULL.

eShapeAlreadyAdded 

The specified shape has already been added to this object.

eShapeInvalidName 

The provided name argument is empty.

eShapeNameClash 

The provided name is already used by another shape.

eShapeNoCurveFound 

The shape's animation curve could not be found.

eUnknownError 

Generic error message.

eErrorCount 

Reimplemented in FbxNurbs, FbxNurbsCurve, and FbxNurbsSurface.

Definition at line 305 of file fbxgeometry.h.


Constructor & Destructor Documentation

FbxGeometry ( FbxManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

virtual FbxNodeAttribute::EType GetAttributeType ( ) const [virtual]

Returns the node attribute type.

This method is derived in the more high level classes (FbxMesh, FbxNurbs, etc...) and returns the actual type of the geometry object.

Returns:
eUnknown

Reimplemented from FbxLayerContainer.

Reimplemented in FbxLine, FbxMesh, FbxNurbs, FbxNurbsCurve, FbxNurbsSurface, FbxPatch, FbxSubDiv, FbxBoundary, and FbxTrimNurbsSurface.

int AddDeformer ( FbxDeformer pDeformer )

Adds a deformer to this geometry (as mentioned in the description of this class, adding a deformer is a synonym for "connect a deformer").

Parameters:
pDeformer Pointer to the deformer to be added.
Returns:
Index of the added deformer.
Examples:
ExportScene01/main.cxx, ExportScene02/main.cxx, ExportScene03/main.cxx, and SwitchBinding/main.cxx.
FbxDeformer* RemoveDeformer ( int  pIndex )

Remove a deformer.

Parameters:
pIndex Index of deformer to remove.
Returns:
Pointer to the removed deformer (or NULL if pIndex is out of range). If pIndex is out of range FbxGeometry::GetLastErrorID() returns eIndexOutOfRange.
Examples:
SwitchBinding/main.cxx.
int GetDeformerCount ( ) const

Returns the number of deformers.

Returns:
The number of deformers that are connected to this geometry.
Examples:
ImportScene/DisplayAnimation.cxx, ImportScene/DisplayLink.cxx, ImportScene/DisplayShape.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneContext.cxx.
FbxDeformer* GetDeformer ( int  pIndex ) const

Returns the deformer at the specified index.

Parameters:
pIndex The specified deformer index.
Returns:
Pointer to the deformer (or NULL if pIndex is out of range). If pIndex is out of range, FbxGeometry::GetLastErrorID() returns eIndexOutOfRange.
Examples:
ExportScene03/main.cxx, ImportScene/DisplayAnimation.cxx, ImportScene/DisplayLink.cxx, ImportScene/DisplayShape.cxx, SwitchBinding/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneContext.cxx.
int GetDeformerCount ( FbxDeformer::EDeformerType  pType ) const

Returns the number of deformers of a specified type.

Parameters:
pType The specified deformer type.
Returns:
The number of deformers of the specified type.
FbxDeformer* GetDeformer ( int  pIndex,
FbxDeformer::EDeformerType  pType 
) const

Returns the deformer of a specified type at the specified index.

Parameters:
pIndex The specified deformer index.
pType The specified deformer type.
Returns:
Pointer to the deformer (or NULL if pIndex is out of range). If pIndex is out of range, FbxGeometry::GetLastErrorID() returns eIndexOutOfRange.
FbxGeometryWeightedMap* GetSourceGeometryWeightedMap ( )

Returns the source geometry weighted map that is connected to this geometry.

Returns:
Pointer to the source geometry weighted map that is connected to this geometry if any.
int GetDestinationGeometryWeightedMapCount ( ) const

Returns the number of destination geometry weighted map(s) that are connected to this geometry.

Returns:
The number of destination geometry weighted map(s) that are connected to this geometry.
FbxGeometryWeightedMap* GetDestinationGeometryWeightedMap ( int  pIndex )

Returns the destination geometry weighted map at a specified index.

Parameters:
pIndex The specified index.
Returns:
Pointer to the destination geometry weighted map at the specified index (if any).
bool AddShape ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex,
FbxShape pShape,
double  pPercent = 100 
)

Add a shape to the specified blend shape deformer and blend shape channel of this geometry.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
pShape Pointer to the shape object to be added.
pPercent The full deform percentage of this shape.
Returns:
true if success, false otherwise.
void ClearShape ( )

Removes all the shapes without destroying them.

If shapes aren't explicitly destroyed before calling this function, they will be destroyed along with the SDK manager that created them.

int GetShapeCount ( ) const

Returns the number of shapes.

Returns:
The number of shapes that have been added to this geometry.
Examples:
ViewScene/DrawScene.cxx.
int GetShapeCount ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex 
) const

Returns the number of shapes.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
Returns:
The number of shapes that have been added to this blend shape channel of this blend shape deformer.
FbxShape* GetShape ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex,
int  pShapeIndex 
)

Returns the shape found at the specified index on a blend shape channel of a blend shape deformer.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
pShapeIndex The specified shape index.
Returns:
Pointer to the shape (or NULL if pIndex is out of range). If pIndex is out of range, FbxGeometry::GetLastErrorID() returns eIndexOutOfRange.
FbxShape const* GetShape ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex,
int  pShapeIndex 
) const

Returns the shape found at the specified index on a blend shape channel of a blend shape deformer.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
pShapeIndex The specified shape index.
Returns:
Pointer to the shape (or NULL if pIndex is out of range). If pIndex is out of range, FbxGeometry::GetLastErrorID() returns eIndexOutOfRange.
FbxAnimCurve* GetShapeChannel ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex,
FbxAnimLayer pLayer,
bool  pCreateAsNeeded = false 
)

Get the shape animation curve.

The shape channel is an animatable property with a value range from 0 to 100 (with 100 being full shape deformation). The default value is 0.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
pCreateAsNeeded If true, creates the animation curve if it is not already present.
pLayer The animation layer from which we want to get the requested animation curve.
Returns:
Animation curve (or NULL if an error occurred). If an error occurs, FbxGeometry::GetLastErrorID() returns one of the following:
  • eIndexOutOfRange: Shape index is out of range.
  • eShapeNoCurveFound: Shape curve could not be found.
Remarks:
If pLayer is left at NULL, the method will use the first layer of the Animation stack.
Examples:
ExportScene02/main.cxx, ExportScene03/main.cxx, ImportScene/DisplayAnimation.cxx, and ViewScene/DrawScene.cxx.
FbxAMatrix& GetPivot ( FbxAMatrix pXMatrix ) const

Returns the pivot matrix.

Parameters:
pXMatrix Placeholder for the returned matrix.
Returns:
Reference to the passed argument.
void SetPivot ( FbxAMatrix pXMatrix )

Sets the pivot matrix.

Parameters:
pXMatrix The transformation matrix that is assigned to the pivot matrix.
void ApplyPivot ( )

Applies the pivot matrix to all vertices/normals of the geometry.

void SetDefaultShape ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex,
double  pPercent 
)

Sets the default deformation for a specified shape.

The default shape property has a value range from 0 to 100 (with 100 being full shape deformation). The default value is 0.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
pPercent Deformation percentage (on a scale ranging from 0 to 100).
Remarks:
This function has no effect if pIndex is out of range.
void SetDefaultShape ( FbxBlendShapeChannel pBlendShapeChannel,
double  pPercent 
)

Sets the default deformation for a specified shape.

The default shape property has a value range from 0 to 100 (with 100 being full shape deformation). The default value is 0.

Parameters:
pBlendShape The blend shape deformer.
pBlendShapeChannel The blend shape channel.
pPercent Deformation percentage (on a scale ranging from 0 to 100).
Remarks:
This function has no effect if pShapeName is invalid.
double GetDefaultShape ( int  pBlendShapeIndex,
int  pBlendShapeChannelIndex 
) const

Returns the default deformation value for the specified shape.

The default shape property has a value range from 0 to 100 (with 100 being full shape deformation). The default value is 0.

Parameters:
pBlendShapeIndex The blend shape deformer index.
pBlendShapeChannelIndex The blend shape channel index.
Returns:
The deformation value for the specified shape, or 0 if pIndex is out of range.
double GetDefaultShape ( FbxBlendShapeChannel pBlendShapeChannel ) const

Returns the default deformation value for the specified shape.

The default shape property has a value range from 0 to 100 (with 100 being full shape deformation). The default value is 0.

Parameters:
pBlendShape The blend shape deformer.
pBlendShapeChannel The blend shape channel.
Returns:
The deformation value for the specified shape, or 0 if pShapeName is invalid.
FbxError& GetError ( )

Retrieves the error object.

Returns:
Reference to the error object.
EErrorCode GetLastErrorID ( ) const

Returns the last error code.

Returns:
The last error code.
const char* GetLastErrorString ( ) const

Returns the last error string.

Returns:
Text description of the last error.
virtual FbxObject& Copy ( const FbxObject pObject ) [virtual]

Copy an object content into this object.

Parameters:
pObject The source object to copy data from.
Returns:
Returns the destination object being modified by the source.
Remarks:
This function replace the assignment operator (operator=). It will copy all property values and the name. Connections are NOT copied.

Reimplemented from FbxGeometryBase.

Reimplemented in FbxLine, FbxMesh, FbxNurbs, FbxNurbsCurve, FbxNurbsSurface, FbxPatch, FbxBoundary, and FbxTrimNurbsSurface.

virtual void Destruct ( bool  pRecursive,
bool  pDependents 
) [protected, virtual]
virtual void SetDocument ( FbxDocument pDocument ) [protected, virtual]
void CleanShapeChannels ( FbxAnimLayer pAnimLayer )

Rename the shapes from the old MotionBuilder 4.01 format to the new one.

void CleanShapeChannel ( FbxAnimLayer pAnimLayer,
int  pShapeIndex 
)

Rename the shapes from the old MotionBuilder 4.01 format to the new one.

void CreateShapeChannelProperties ( FbxString pShapeName )
FbxString CreateShapeChannelName ( int  pShapeIndex ) [protected]
FbxString CreateShapeChannelName ( FbxString  pShapeName ) [protected]
void ConvertShapeNamesToV5Format ( FbxString  pTakeNodeName )
void ConvertShapeNamesToV5Format ( FbxString  pTakeNodeName,
int  pShapeIndex 
)
void RevertShapeNamesToV6Format ( FbxString  pTakeNodeName )
void RevertShapeNamesToV6Format ( FbxString  pTakeNodeName,
int  pShapeIndex 
)
void ClearTemporaryShapeNames ( )
void CopyDeformers ( FbxGeometry const *  pGeometry ) [protected]
void CopyPivot ( FbxGeometry const *  pSource ) [protected]

Friends And Related Function Documentation

friend class FbxScene [friend]

Reimplemented from FbxLayerContainer.

Definition at line 383 of file fbxgeometry.h.


Member Data Documentation

Definition at line 374 of file fbxgeometry.h.

Definition at line 375 of file fbxgeometry.h.

Definition at line 376 of file fbxgeometry.h.

FbxAMatrix* mPivot [protected]

Definition at line 378 of file fbxgeometry.h.

FbxError mError [mutable, protected]

Definition at line 381 of file fbxgeometry.h.


The documentation for this class was generated from the following file:

FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry
FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry FbxGeometry