FBX C++ API Reference
FbxMesh Class Reference

#include <fbxmesh.h>

Class Description

A mesh is a geometry made of polygons.

The class can define a geometry with as many n-sided polygons as needed. Users can freely mix triangles, quadrilaterals, and other polygons. Since the mesh-related terminology of the FBX SDK differs a little from the known standards, here are our definitions:

  • A control point is an XYZ coordinate, it is synonym of vertex.
  • A polygon vertex is an index to a control point (the same control point can be referenced by multiple polygon vertices).
  • A polygon is a group of polygon vertices. The minimum valid number of polygon vertices to define a polygon is 3.

Methods to initialize, set and access control points are provided in the FbxGeometryBase class.

Examples:
Common/GeometryUtility.cxx, ExportDocument/main.cxx, ExportScene03/main.cxx, ExportScene03/MyKFbxMesh.h, ImportScene/DisplayCache.cxx, ImportScene/DisplayMesh.cxx, Instances/main.cxx, Layers/main.cxx, Normals/main.cxx, ProceduralTexture/main.cxx, SwitchBinding/main.cxx, UserProperties/main.cxx, UVSample/main.cxx, ViewScene/DrawScene.cxx, ViewScene/SceneCache.cxx, ViewScene/SceneCache.h, and ViewScene/SceneContext.cxx.

Definition at line 32 of file fbxmesh.h.

+ Inheritance diagram for FbxMesh:

Classes

class  DuplicateVertex
 Internal structure used to keep the duplicate vertex information. More...
 
class  VertexNormalInfo
 Internal structure used to compute the normals on a mesh. More...
 

Public Types

typedef FbxGeometry ParentClass
 
- Public Types inherited from FbxGeometry
enum  ESurfaceMode {
  eRaw, eLowNoNormals, eLow, eHighNoNormals,
  eHigh
}
 NURBS and Patches surface modes. More...
 
typedef FbxGeometryBase ParentClass
 
- Public Types inherited from FbxGeometryBase
typedef FbxLayerContainer ParentClass
 
- Public Types inherited from FbxLayerContainer
typedef FbxNodeAttribute ParentClass
 
- Public Types inherited from FbxNodeAttribute
enum  EType {
  eUnknown, eNull, eMarker, eSkeleton,
  eMesh, eNurbs, ePatch, eCamera,
  eCameraStereo, eCameraSwitcher, eLight, eOpticalReference,
  eOpticalMarker, eNurbsCurve, eTrimNurbsSurface, eBoundary,
  eNurbsSurface, eShape, eLODGroup, eSubDiv,
  eCachedEffect, eLine
}
 Node attribute types. More...
 
typedef FbxObject ParentClass
 
- Public Types inherited from FbxObject
typedef FbxEmitter ParentClass
 
enum  EObjectFlag {
  eNone = 0, eInitialized = 1 << 0, eSystem = 1 << 1, eSavable = 1 << 2,
  eSelected = 1 << 3, eHidden = 1 << 4, eContentLoaded = 1 << 5, eDontLocalize = 1 << 6,
  eCopyCalledByClone = 1 << 16
}
 Flags available to control objects. More...
 
enum  ECloneType { eDeepClone, eReferenceClone }
 Types of clones that can be created for FbxObject. More...
 

Public Member Functions

virtual FbxClassId GetClassId () const
 
virtual FbxNodeAttribute::EType GetAttributeType () const
 Return the type of node attribute. More...
 
void ReservePolygonCount (int pCount)
 Reserve memory in the polygon array to hold the specified number of polygons. More...
 
void ReservePolygonVertexCount (int pCount)
 Reserve memory in the polygon vertex array to hold the specified number of polygon vertices. More...
 
bool GetTextureUV (FbxLayerElementArrayTemplate< FbxVector2 > **pLockableArray, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse) const
 
bool GetMaterialIndices (FbxLayerElementArrayTemplate< int > **pLockableArray) const
 
bool GetTextureIndices (FbxLayerElementArrayTemplate< int > **pLockableArray, FbxLayerElement::EType pTextureType) const
 
- Public Member Functions inherited from FbxGeometry
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"). More...
 
FbxDeformerRemoveDeformer (int pIndex, FbxStatus *pStatus=((void *) 0))
 Remove a deformer. More...
 
int GetDeformerCount () const
 Returns the number of deformers. More...
 
FbxDeformerGetDeformer (int pIndex, FbxStatus *pStatus=((void *) 0)) const
 Returns the deformer at the specified index. More...
 
int GetDeformerCount (FbxDeformer::EDeformerType pType) const
 Returns the number of deformers of a specified type. More...
 
FbxDeformerGetDeformer (int pIndex, FbxDeformer::EDeformerType pType, FbxStatus *pStatus=((void *) 0)) const
 Returns the deformer of a specified type at the specified index. More...
 
FbxGeometryWeightedMapGetSourceGeometryWeightedMap ()
 Returns the source geometry weighted map that is connected to this geometry. More...
 
int GetDestinationGeometryWeightedMapCount () const
 Returns the number of destination geometry weighted map(s) that are connected to this geometry. More...
 
FbxGeometryWeightedMapGetDestinationGeometryWeightedMap (int pIndex)
 Returns the destination geometry weighted map at a specified index. More...
 
bool AddShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, FbxShape *pShape, double pPercent=100, FbxStatus *pStatus=((void *) 0))
 Add a shape to the specified blend shape deformer and blend shape channel of this geometry. More...
 
void ClearShape ()
 Removes all the shapes without destroying them. More...
 
int GetShapeCount () const
 Returns the number of shapes. More...
 
int GetShapeCount (int pBlendShapeIndex, int pBlendShapeChannelIndex, FbxStatus *pStatus=((void *) 0)) const
 Returns the number of shapes. More...
 
FbxShapeGetShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, int pShapeIndex, FbxStatus *pStatus=((void *) 0))
 Returns the shape found at the specified index on a blend shape channel of a blend shape deformer. More...
 
const FbxShapeGetShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, int pShapeIndex, FbxStatus *pStatus=((void *) 0)) const
 Returns the shape found at the specified index on a blend shape channel of a blend shape deformer. More...
 
FbxAnimCurveGetShapeChannel (int pBlendShapeIndex, int pBlendShapeChannelIndex, FbxAnimLayer *pLayer, bool pCreateAsNeeded=false, FbxStatus *pStatus=((void *) 0))
 Get the shape animation curve. More...
 
FbxAMatrixGetPivot (FbxAMatrix &pXMatrix) const
 Returns the pivot matrix. More...
 
void SetPivot (FbxAMatrix &pXMatrix)
 Sets the pivot matrix. More...
 
void ApplyPivot ()
 Applies the pivot matrix to all vertices/normals of the geometry. More...
 
void SetDefaultShape (int pBlendShapeIndex, int pBlendShapeChannelIndex, double pPercent)
 Sets the default deformation for a specified shape. More...
 
void SetDefaultShape (FbxBlendShapeChannel *pBlendShapeChannel, double pPercent)
 Sets the default deformation for a specified channel. More...
 
double GetDefaultShape (int pBlendShapeIndex, int pBlendShapeChannelIndex) const
 Returns the default deformation value for the specified shape. More...
 
double GetDefaultShape (FbxBlendShapeChannel *pBlendShapeChannel) const
 Returns the default deformation value for the specified channel. More...
 
- Public Member Functions inherited from FbxGeometryBase
virtual int MemoryUsage () const
 Calculate the actual amount of memory used by this geometry object. More...
 
virtual void InitControlPoints (int pCount)
 Allocates memory space for the array of control points. More...
 
void InitNormals (int pCount=0)
 Allocates memory space for the array of normals. More...
 
void InitNormals (FbxGeometryBase *pSrc)
 Allocates memory space for the array of normals cloned from the pSrc. More...
 
void InitTangents (int pCount=0, const int pLayerIndex=0, const char *pName="")
 Allocates memory space for the array of tangents on specified layer. More...
 
void InitTangents (FbxGeometryBase *pSrc, const int pLayerIndex=0)
 Allocates memory space for the array of tangents cloned from the pSrc on the specified layer. More...
 
void InitBinormals (int pCount=0, const int pLayerIndex=0, const char *pName="")
 Allocates memory space for the array of binormals. More...
 
void InitBinormals (FbxGeometryBase *pSrc, const int pLayerIndex=0)
 Allocates memory space for the array of binormals cloned from the pSrc. More...
 
virtual void SetControlPointAt (const FbxVector4 &pCtrlPoint, const FbxVector4 &pNormal, int pIndex, bool pI2DSearch=false)
 Sets the control point and the normal values at the specified index. More...
 
virtual void SetControlPointAt (const FbxVector4 &pCtrlPoint, int pIndex)
 Sets the control point at a specified index. More...
 
virtual FbxVector4 GetControlPointAt (int pIndex) const
 Gets the control point at the specified index. More...
 
virtual void SetControlPointNormalAt (const FbxVector4 &pNormal, int pIndex, bool pI2DSearch=false)
 Sets the control point normal value at the specified index. More...
 
virtual int GetControlPointsCount () const
 Returns the number of control points. More...
 
virtual FbxVector4GetControlPoints (FbxStatus *pStatus=((void *) 0)) const
 Returns a pointer to the array of control points. More...
 
virtual void SetControlPointCount (int pCount)
 Allocates memory space for the array of control points. More...
 
void ComputeBBox ()
 Computes the control points Bounding box. More...
 
FbxGeometryElementNormalCreateElementNormal ()
 Creates a normal geometry element for this geometry. More...
 
bool RemoveElementNormal (FbxGeometryElementNormal *pElementNormal)
 Remove the normal geometry element from this geometry. More...
 
FbxGeometryElementNormalGetElementNormal (int pIndex=0)
 Returns this geometry's normal element. More...
 
const FbxGeometryElementNormalGetElementNormal (int pIndex=0) const
 Returns this geometry's normal element. More...
 
int GetElementNormalCount () const
 Get the number of this geometry's normal geometry element. More...
 
FbxGeometryElementBinormalCreateElementBinormal ()
 Creates a binormal geometry element for this geometry. More...
 
bool RemoveElementBinormal (FbxGeometryElementBinormal *pElementBinormal)
 Remove the binormal geometry element from this geometry. More...
 
FbxGeometryElementBinormalGetElementBinormal (int pIndex=0)
 Returns this geometry's binormal element. More...
 
const FbxGeometryElementBinormalGetElementBinormal (int pIndex=0) const
 Returns this geometry's binormal element. More...
 
int GetElementBinormalCount () const
 Get the number of this geometry's binormal geometry element. More...
 
FbxGeometryElementTangentCreateElementTangent ()
 Creates a tangent geometry element for this geometry. More...
 
bool RemoveElementTangent (FbxGeometryElementTangent *pElementTangent)
 Remove the tangent geometry element from this geometry. More...
 
FbxGeometryElementTangentGetElementTangent (int pIndex=0)
 Returns this geometry's tangent element. More...
 
const FbxGeometryElementTangentGetElementTangent (int pIndex=0) const
 Returns this geometry's tangent element. More...
 
int GetElementTangentCount () const
 Get the number of this geometry's tangent geometry element. More...
 
FbxGeometryElementMaterialCreateElementMaterial ()
 Creates a material geometry element for this geometry. More...
 
bool RemoveElementMaterial (FbxGeometryElementMaterial *pElementMaterial)
 Remove the material geometry element from this geometry. More...
 
FbxGeometryElementMaterialGetElementMaterial (int pIndex=0)
 Returns this geometry's material element. More...
 
const FbxGeometryElementMaterialGetElementMaterial (int pIndex=0) const
 Returns this geometry's material element. More...
 
int GetElementMaterialCount () const
 Get the number of this geometry's material geometry element. More...
 
FbxGeometryElementPolygonGroupCreateElementPolygonGroup ()
 Creates a polygon group geometry element for this geometry. More...
 
bool RemoveElementPolygonGroup (FbxGeometryElementPolygonGroup *pElementPolygonGroup)
 Remove the polygon group geometry element from this geometry. More...
 
FbxGeometryElementPolygonGroupGetElementPolygonGroup (int pIndex=0)
 Returns this geometry's polygon group element. More...
 
const FbxGeometryElementPolygonGroupGetElementPolygonGroup (int pIndex=0) const
 Returns this geometry's polygon group element. More...
 
int GetElementPolygonGroupCount () const
 Get the number of this geometry's polygon group geometry element. More...
 
FbxGeometryElementVertexColorCreateElementVertexColor ()
 Creates a vertex color geometry element for this geometry. More...
 
bool RemoveElementVertexColor (FbxGeometryElementVertexColor *pElementVertexColor)
 Remove the vertex color geometry element from this geometry. More...
 
FbxGeometryElementVertexColorGetElementVertexColor (int pIndex=0)
 Returns this geometry's vertex color element. More...
 
const FbxGeometryElementVertexColorGetElementVertexColor (int pIndex=0) const
 Returns this geometry's vertex color element. More...
 
int GetElementVertexColorCount () const
 Get the number of this geometry's vertex color geometry element. More...
 
FbxGeometryElementSmoothingCreateElementSmoothing ()
 Creates a smoothing geometry element for this geometry. More...
 
bool RemoveElementSmoothing (FbxGeometryElementSmoothing *pElementSmoothing)
 Remove the smoothing geometry element from this geometry. More...
 
FbxGeometryElementSmoothingGetElementSmoothing (int pIndex=0)
 Returns this geometry's smoothing element. More...
 
const FbxGeometryElementSmoothingGetElementSmoothing (int pIndex=0) const
 Returns this geometry's smoothing element. More...
 
int GetElementSmoothingCount () const
 Get the number of this geometry's smoothing geometry element. More...
 
FbxGeometryElementCreaseCreateElementVertexCrease ()
 Creates a vertex crease geometry element for this geometry. More...
 
bool RemoveElementVertexCrease (FbxGeometryElementCrease *pElementCrease)
 Remove the vertex crease geometry element from this geometry. More...
 
FbxGeometryElementCreaseGetElementVertexCrease (int pIndex=0)
 Returns this geometry's vertex crease element. More...
 
const FbxGeometryElementCreaseGetElementVertexCrease (int pIndex=0) const
 Returns this geometry's vertex crease element. More...
 
int GetElementVertexCreaseCount () const
 Get the number of this geometry's vertex crease geometry element. More...
 
FbxGeometryElementCreaseCreateElementEdgeCrease ()
 Creates an edge crease geometry element for this geometry. More...
 
bool RemoveElementEdgeCrease (FbxGeometryElementCrease *pElementCrease)
 Remove the edge crease geometry element from this geometry. More...
 
FbxGeometryElementCreaseGetElementEdgeCrease (int pIndex=0)
 Returns this geometry's edge crease element. More...
 
const FbxGeometryElementCreaseGetElementEdgeCrease (int pIndex=0) const
 Returns this geometry's edge crease element. More...
 
int GetElementEdgeCreaseCount () const
 Get the number of this geometry's edge crease geometry element. More...
 
FbxGeometryElementHoleCreateElementHole ()
 Creates a hole geometry element for this geometry. More...
 
bool RemoveElementHole (FbxGeometryElementHole *pElementHole)
 Remove the hole geometry element from this geometry. More...
 
FbxGeometryElementHoleGetElementHole (int pIndex=0)
 Returns this geometry's hole element. More...
 
const FbxGeometryElementHoleGetElementHole (int pIndex=0) const
 Returns this geometry's hole element. More...
 
int GetElementHoleCount () const
 Get the number of this geometry's hole geometry element. More...
 
FbxGeometryElementUserDataCreateElementUserData ()
 Creates a user data geometry element for this geometry. More...
 
bool RemoveElementUserData (FbxGeometryElementUserData *pElementUserData)
 Remove the user data geometry element from this geometry. More...
 
FbxGeometryElementUserDataGetElementUserData (int pIndex=0)
 Returns this geometry's user data element. More...
 
const FbxGeometryElementUserDataGetElementUserData (int pIndex=0) const
 Returns this geometry's user data element. More...
 
int GetElementUserDataCount () const
 Get the number of this geometry's user data geometry element. More...
 
FbxGeometryElementVisibilityCreateElementVisibility ()
 Creates a visibility geometry element for this geometry. More...
 
bool RemoveElementVisibility (FbxGeometryElementVisibility *pElementVisibility)
 Remove the visibility geometry element from this geometry. More...
 
FbxGeometryElementVisibilityGetElementVisibility (int pIndex=0)
 Returns this geometry's visibility element. More...
 
const FbxGeometryElementVisibilityGetElementVisibility (int pIndex=0) const
 Returns this geometry's visibility element. More...
 
int GetElementVisibilityCount () const
 Get the number of this geometry's visibility geometry element. More...
 
FbxGeometryElementUVCreateElementUV (const char *pUVSetName, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Creates a UV geometry element for this geometry. More...
 
bool RemoveElementUV (FbxGeometryElementUV *pElementUV)
 Remove the UV geometry element from this geometry. More...
 
FbxGeometryElementUVGetElementUV (int pIndex=0, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eUnknown)
 Returns this geometry's UV element. More...
 
const FbxGeometryElementUVGetElementUV (int pIndex=0, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eUnknown) const
 Returns this geometry's UV element. More...
 
int GetElementUVCount (FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eUnknown) const
 Get the number of this geometry's UV geometry element. More...
 
FbxGeometryElementUVGetElementUV (const char *pUVSetName)
 Returns this geometry's UV element. More...
 
const FbxGeometryElementUVGetElementUV (const char *pUVSetName) const
 Returns this geometry's UV element. More...
 
void GetUVSetNames (FbxStringList &pUVSetNameList) const
 Returns this geometry's all UV set names. More...
 
virtual bool ContentWriteTo (FbxStream &pStream) const
 Writes the content of the geometry object to the specified stream. More...
 
virtual bool ContentReadFrom (const FbxStream &pStream)
 Reads the content of the geometry object from the specified stream. More...
 
- Public Member Functions inherited from FbxLayerContainer
bool ConvertDirectToIndexToDirect (int pLayer)
 Converts the reference mode from eDirect to eIndexToDirect. More...
 
int CreateLayer ()
 Creates a new layer on top of existing layers. More...
 
void ClearLayers ()
 Deletes all layers. More...
 
int GetLayerCount () const
 Returns the number of layers. More...
 
int GetLayerCount (FbxLayerElement::EType pType, bool pUVCount=false) const
 Returns the number of layers that contain the specified layer element type. More...
 
FbxLayerGetLayer (int pIndex)
 Returns the layer at the specified index. More...
 
const FbxLayerGetLayer (int pIndex) const
 Returns the layer at the specified index. More...
 
FbxLayerGetLayer (int pIndex, FbxLayerElement::EType pType, bool pIsUV=false)
 Returns the n'th layer as specified by pIndex that contains the specified layer element type. More...
 
const FbxLayerGetLayer (int pIndex, FbxLayerElement::EType pType, bool pIsUV=false) const
 Returns the n'th layer as specified by pIndex that contains the specified layer element type. More...
 
int GetLayerIndex (int pIndex, FbxLayerElement::EType pType, bool pIsUV=false) const
 Returns the global index of the n'th layer as specified by pIndex that contains the specified layer element type. More...
 
int GetLayerTypedIndex (int pGlobalIndex, FbxLayerElement::EType pType, bool pIsUV=false) const
 Converts the layer's global index to a type-specific index. More...
 
- Public Member Functions inherited from FbxNodeAttribute
int GetNodeCount () const
 Return the node count using this attribute. More...
 
FbxNodeGetNode (int pIndex=0) const
 Return the node this attribute is set to. More...
 
- Public Member Functions inherited from FbxObject
virtual void Compact ()
 Compact the memory used by this object. More...
 
template<class T >
bool Is () const
 Templated test if this class is a hierarchical children of the specified class type. More...
 
FbxManagerGetFbxManager () const
 Retrieve the FbxManager this object belongs to. More...
 
FbxDocumentGetDocument () const
 Returns a const pointer to the document that contains this object. More...
 
FbxDocumentGetRootDocument () const
 Returns a const pointer to the root document that contains this object. More...
 
FbxSceneGetScene () const
 Returns a const pointer to the scene that contains this object. More...
 
void Destroy (bool pRecursive=false)
 Unregister and delete this object from memory. More...
 
void ResetProperties ()
 Reset all the properties of this object to their default values. More...
 
virtual bool GetSelected ()
 Returns if this object is currently in a selected state. More...
 
virtual void SetSelected (bool pSelected)
 Sets whether this object is currently selected. More...
 
void SetUserDataPtr (const FbxUInt64 &pUserID, void *pUserData)
 Sets the data pointer for an user data record whose ID is pUserID. More...
 
void * GetUserDataPtr (const FbxUInt64 &pUserID) const
 Returns the data pointer of an user data record whose ID is pUserID. More...
 
void SetUserDataPtr (void *pUserData)
 Sets the data pointer for the user data record whose ID is the object ID. More...
 
void * GetUserDataPtr () const
 Returns the data pointer of the user data record whose ID is the object ID. More...
 
bool ConnectSrcObject (FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
 Connects this object to a source object. More...
 
bool IsConnectedSrcObject (const FbxObject *pObject) const
 Judges whether this object connects with the source object. More...
 
bool DisconnectSrcObject (FbxObject *pObject)
 Disconnects this object from a source object. More...
 
bool DisconnectAllSrcObject ()
 Disconnects this object from all source objects. More...
 
bool DisconnectAllSrcObject (const FbxCriteria &pCriteria)
 Disconnects this object from all source objects that satisfy a given criteria. More...
 
int GetSrcObjectCount () const
 Returns the number of source objects with which this object connects. More...
 
int GetSrcObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of source objects that satisfy the given criteria with which this object connects. More...
 
FbxObjectGetSrcObject (int pIndex=0) const
 Returns the source object with which this object connects at the specified index. More...
 
FbxObjectGetSrcObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the source object that satisfies the criteria at the specified index with which this object connects. More...
 
FbxObjectFindSrcObject (const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name, starting at the specified index. More...
 
FbxObjectFindSrcObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name which satisfies the given criteria, starting at the specified index. More...
 
template<class T >
bool DisconnectAllSrcObject ()
 Disconnects this object from all source objects of the specified class type. More...
 
template<class T >
bool DisconnectAllSrcObject (const FbxCriteria &pCriteria)
 Disconnects this object from all source objects that are of the specified class type and that satisfy the given criteria. More...
 
template<class T >
int GetSrcObjectCount () const
 Returns the number of source objects of a specific class type with which this object connects. More...
 
template<class T >
int GetSrcObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of source objects with which this object connects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
T * GetSrcObject (int pIndex=0) const
 Returns the source object of the specified class type at the specified index. More...
 
template<class T >
T * GetSrcObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the source object that is the specified class type and that satisfies the given criteria at the specified index. More...
 
template<class T >
T * FindSrcObject (const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name that is the specified class type, starting at the specified index. More...
 
template<class T >
T * FindSrcObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name that is the specified class type and that satisfies the given criteria, starting at the specified index. More...
 
bool ConnectDstObject (FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
 Connects this object to one destination object. More...
 
bool IsConnectedDstObject (const FbxObject *pObject) const
 Judges whether this object connects with the destination object. More...
 
bool DisconnectDstObject (FbxObject *pObject)
 Disconnects this object from the destination object. More...
 
bool DisconnectAllDstObject ()
 Disconnects this object from all destination objects. More...
 
bool DisconnectAllDstObject (const FbxCriteria &pCriteria)
 Disconnects this object from all destination objects that satisfy given criteria. More...
 
int GetDstObjectCount () const
 Returns the number of destination objects with which this object connects. More...
 
int GetDstObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of destination objects with which this object connects that satisfy the given criteria. More...
 
FbxObjectGetDstObject (int pIndex=0) const
 Returns the destination object at the specified index with which this object connects. More...
 
FbxObjectGetDstObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the destination object with which this object connects that satisfies the given criteria at the specified index. More...
 
FbxObjectFindDstObject (const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name, starting at the specified index. More...
 
FbxObjectFindDstObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name which satisfies the given criteria, starting at the specified index. More...
 
template<class T >
bool DisconnectAllDstObject ()
 Disconnects this object from all destination objects of the specified class type. More...
 
template<class T >
bool DisconnectAllDstObject (const FbxCriteria &pCriteria)
 Disconnects this object from all destination objects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
int GetDstObjectCount () const
 Returns the number of destination objects of the specified class type with which this object connects. More...
 
template<class T >
int GetDstObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of destination objects with which this object connects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
T * GetDstObject (int pIndex=0) const
 Returns the destination object with which this object connects that is the specified class type at the specified index. More...
 
template<class T >
T * GetDstObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the destination object with which this object connects that is the specified class type and that satisfies the given criteria at the specified index. More...
 
template<class T >
T * FindDstObject (const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name which is of the specified class type, starting at the specified index. More...
 
template<class T >
T * FindDstObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name that is the specified class type and that satisfies the given criteria, starting at the specified index. More...
 
FbxProperty GetFirstProperty () const
 Returns the first property of this object. More...
 
FbxProperty GetNextProperty (const FbxProperty &pProperty) const
 Returns the next property of this object that follows the specified property. More...
 
FbxProperty FindProperty (const char *pName, bool pCaseSensitive=true) const
 Searches a property by name. More...
 
FbxProperty FindProperty (const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
 Searches a property by name and data type. More...
 
FbxProperty FindPropertyHierarchical (const char *pName, bool pCaseSensitive=true) const
 Searches a property by full name. More...
 
FbxProperty FindPropertyHierarchical (const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
 Searches a property by full name and data type. More...
 
FbxProperty GetClassRootProperty ()
 Returns the class root property. More...
 
bool ConnectSrcProperty (const FbxProperty &pProperty)
 Connects this object to a source property. More...
 
bool IsConnectedSrcProperty (const FbxProperty &pProperty)
 Determines whether this object connects with the specified source property. More...
 
bool DisconnectSrcProperty (const FbxProperty &pProperty)
 Disconnects this object from the specified source property. More...
 
int GetSrcPropertyCount () const
 Returns the number of source properties with which this object connects. More...
 
FbxProperty GetSrcProperty (int pIndex=0) const
 Returns the source property at the specified index with which this object connects. More...
 
FbxProperty FindSrcProperty (const char *pName, int pStartIndex=0) const
 Searches a source property with which this object connects that has a specific name, starting at the specified index. More...
 
bool ConnectDstProperty (const FbxProperty &pProperty)
 Connects this object to a destination property. More...
 
bool IsConnectedDstProperty (const FbxProperty &pProperty)
 Determines if this object connects with the specified destination property. More...
 
bool DisconnectDstProperty (const FbxProperty &pProperty)
 Disconnects this object from the specified destination property. More...
 
int GetDstPropertyCount () const
 Returns the number of destination properties with which this object connects. More...
 
FbxProperty GetDstProperty (int pIndex=0) const
 Returns the destination property at the specified index with which this object connects. More...
 
FbxProperty FindDstProperty (const char *pName, int pStartIndex=0) const
 Searches a destination property with which this object connects that has a specific name, starting at the specified index. More...
 
int ContentUnload ()
 Unloads this object's content using the offload peripheral that is currently set in the document then flushes it from memory. More...
 
int ContentLoad ()
 Loads this object's content using the offload peripheral that is currently set in the document. More...
 
bool ContentIsLoaded () const
 Judges if this object's content is loaded. More...
 
void ContentDecrementLockCount ()
 Decreases the content lock count of an object. More...
 
void ContentIncrementLockCount ()
 Increases the content lock count of an object. More...
 
bool ContentIsLocked () const
 Judges if this object's content is locked. More...
 
void EmitMessage (FbxMessage *pMessage) const
 Emits a message in all available message emitters in the document or SDK manager. More...
 
virtual const char * Localize (const char *pID, const char *pDefault=((void *) 0)) const
 Localization helper function, it calls the implementation of FBX SDK manager. More...
 
FbxLibraryGetParentLibrary () const
 Returns a handle on the parent library of this object. More...
 
bool AddImplementation (FbxImplementation *pImplementation)
 Adds an implementation. More...
 
bool RemoveImplementation (FbxImplementation *pImplementation)
 Removes an implementation. More...
 
bool HasDefaultImplementation (void) const
 Determines if this shading node has a default implementation. More...
 
FbxImplementationGetDefaultImplementation (void) const
 Returns the default implementation of this shading node. More...
 
bool SetDefaultImplementation (FbxImplementation *pImplementation)
 Sets the default implementation of this shading node. More...
 
int GetImplementationCount (const FbxImplementationFilter *pCriteria=((void *) 0)) const
 Returns the number of implementations that satisfy a given criteria. More...
 
FbxImplementationGetImplementation (int pIndex, const FbxImplementationFilter *pCriteria=((void *) 0)) const
 Returns the implementation at the specified index that satisfies the given criteria. More...
 
virtual FbxString GetUrl () const
 Returns the URL of this object. More...
 
virtual bool SetUrl (char *pUrl)
 Sets the URL of this object. More...
 
void SetRuntimeClassId (const FbxClassId &pClassId)
 Set the run-time ClassId for this class. More...
 
FbxClassId GetRuntimeClassId () const
 Retrieve the run-time ClassId for this object. More...
 
bool IsRuntime (const FbxClassId &pClassId) const
 Test if this class is a hierarchical children of the specified class type. More...
 
bool IsRuntimePlug () const
 Find out if the ClassId was registered during run-time rather than at compile time. More...
 
void SetObjectFlags (EObjectFlag pFlags, bool pValue)
 Set the state of object flags. More...
 
bool GetObjectFlags (EObjectFlag pFlags) const
 Get the state of object flags. More...
 
void SetAllObjectFlags (FbxUInt pFlags)
 Override all object flags at once. More...
 
FbxUInt GetAllObjectFlags () const
 Get all object flags at once. More...
 
virtual FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object. More...
 
virtual FbxObjectClone (FbxObject::ECloneType pCloneType=eDeepClone, FbxObject *pContainer=((void *) 0), void *pSet=((void *) 0)) const
 Creates a clone of this object. More...
 
bool IsAReferenceTo () const
 Checks if this object is a reference clone of another object. More...
 
FbxObjectGetReferenceTo () const
 If this object is a reference clone, returns the original object (from which the clone originates). More...
 
bool IsReferencedBy () const
 Checks if any objects are reference cloned from this object. More...
 
int GetReferencedByCount () const
 Returns the number of objects that are reference clones of this object. More...
 
FbxObjectGetReferencedBy (int pIndex) const
 Returns a reference clone of this object at the specified index. More...
 
void SetName (const char *pName)
 Sets the name of this object. More...
 
const char * GetName () const
 Returns the full name of this object. More...
 
FbxString GetNameWithoutNameSpacePrefix () const
 Returns the name of the object without the namespace qualifier. More...
 
FbxString GetNameWithNameSpacePrefix () const
 Returns the name of the object with the namespace qualifier. More...
 
void SetInitialName (const char *pName)
 Sets the initial name of the object. More...
 
const char * GetInitialName () const
 Returns the initial name of the object. More...
 
FbxString GetNameSpaceOnly ()
 Returns the namespace of the object. More...
 
void SetNameSpace (FbxString pNameSpace)
 Sets the namespace of the object. More...
 
FbxArray< FbxString * > GetNameSpaceArray (char identifier)
 Returns an array of all the namespaces for this object. More...
 
FbxString GetNameOnly () const
 Returns only the name (no namespace or prefix) of the object. More...
 
FbxString GetNameSpacePrefix () const
 Returns the namespace qualifier. More...
 
const FbxUInt64GetUniqueID () const
 Returns the unique ID of this object. More...
 
- Public Member Functions inherited from FbxEmitter
void AddListener (FbxEventHandler &pHandler)
 Add the specified event handler to current emitter list. More...
 
void RemoveListener (FbxEventHandler &pHandler)
 Remove the specified event handler from current emitter list. More...
 
template<typename EventType >
void Emit (const EventType &pEvent) const
 Emit an event with the specified the event type. More...
 

Static Public Member Functions

static FbxMeshCreate (FbxManager *pManager, const char *pName)
 
static FbxMeshCreate (FbxObject *pContainer, const char *pName)
 
- Static Public Member Functions inherited from FbxGeometry
static FbxGeometryCreate (FbxManager *pManager, const char *pName)
 
static FbxGeometryCreate (FbxObject *pContainer, const char *pName)
 
- Static Public Member Functions inherited from FbxGeometryBase
static FbxGeometryBaseCreate (FbxManager *pManager, const char *pName)
 
static FbxGeometryBaseCreate (FbxObject *pContainer, const char *pName)
 
- Static Public Member Functions inherited from FbxLayerContainer
static FbxLayerContainerCreate (FbxManager *pManager, const char *pName)
 
static FbxLayerContainerCreate (FbxObject *pContainer, const char *pName)
 
- Static Public Member Functions inherited from FbxNodeAttribute
static FbxNodeAttributeCreate (FbxManager *pManager, const char *pName)
 
static FbxNodeAttributeCreate (FbxObject *pContainer, const char *pName)
 
- Static Public Member Functions inherited from FbxObject
static FbxObjectCreate (FbxManager *pManager, const char *pName)
 
static FbxObjectCreate (FbxObject *pContainer, const char *pName)
 
static FbxString RemovePrefix (char *pName)
 Removes the prefix of pName. More...
 
static FbxString StripPrefix (FbxString &lName)
 Strips the prefix of pName. More...
 
static FbxString StripPrefix (const char *pName)
 Strips the prefix of pName. More...
 

Static Public Attributes

static FbxClassId ClassId
 
- Static Public Attributes inherited from FbxGeometry
static FbxClassId ClassId
 
- Static Public Attributes inherited from FbxGeometryBase
static FbxClassId ClassId
 
- Static Public Attributes inherited from FbxLayerContainer
static FbxClassId ClassId
 
- Static Public Attributes inherited from FbxNodeAttribute
static FbxClassId ClassId
 
static const char * sColor
 Property Names. More...
 
static const FbxDouble3 sDefaultColor
 Property Default Values. More...
 
- Static Public Attributes inherited from FbxObject
static FbxClassId ClassId
 

Protected Member Functions

virtual ~ FbxMesh ()
 
 FbxMesh (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxGeometry
virtual ~ FbxGeometry ()
 
 FbxGeometry (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxGeometryBase
virtual ~ FbxGeometryBase ()
 
 FbxGeometryBase (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxLayerContainer
virtual ~ FbxLayerContainer ()
 
 FbxLayerContainer (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxNodeAttribute
virtual ~ FbxNodeAttribute ()
 
 FbxNodeAttribute (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxObject
virtual ~ FbxObject ()
 
virtual void Construct (const FbxObject *pFrom)
 Optional constructor override, automatically called by default constructor. More...
 
virtual void ConstructProperties (bool pForceSet)
 Optional property constructor override, automatically called by default constructor. More...
 
virtual void Destruct (bool pRecursive)
 Optional destructor override, automatically called by default destructor. More...
 
virtual void ContentClear ()
 Clears this object's content from memory. More...
 
virtual FbxPeripheralGetPeripheral ()
 Retrieves the peripheral of that object. More...
 

Static Protected Member Functions

static FbxMeshAllocate (FbxManager *pManager, const char *pName, const FbxMesh *pFrom)
 
- Static Protected Member Functions inherited from FbxGeometry
static FbxGeometryAllocate (FbxManager *pManager, const char *pName, const FbxGeometry *pFrom)
 
- Static Protected Member Functions inherited from FbxGeometryBase
static FbxGeometryBaseAllocate (FbxManager *pManager, const char *pName, const FbxGeometryBase *pFrom)
 
- Static Protected Member Functions inherited from FbxLayerContainer
static FbxLayerContainerAllocate (FbxManager *pManager, const char *pName, const FbxLayerContainer *pFrom)
 
- Static Protected Member Functions inherited from FbxNodeAttribute
static FbxNodeAttributeAllocate (FbxManager *pManager, const char *pName, const FbxNodeAttribute *pFrom)
 
- Static Protected Member Functions inherited from FbxObject
static FbxObjectAllocate (FbxManager *pManager, const char *pName, const FbxObject *pFrom)
 

Friends

class fbxsdk ::FbxManager
 
template<typename T >
T * fbxsdk ::FbxNew ()
 
template<typename T , typename T1 >
T * fbxsdk ::FbxNew (T1 &p1)
 
template<typename T , typename T1 >
T * fbxsdk ::FbxNew (const T1 &p1)
 
template<typename T , typename T1 , typename T2 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2)
 
template<typename T , typename T1 , typename T2 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2)
 
template<typename T , typename T1 , typename T2 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2)
 
template<typename T , typename T1 , typename T2 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, const T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, const T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, const T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, const T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, const T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, const T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, const T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, const T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (T1 &p1, T2 &p2, T3 &p3, T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, const T3 &p3, T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3, const T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, T2 &p2, T3 &p3, T4 &p4, const T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3, const T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, T3 &p3, T4 &p4, const T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, T4 &p4, const T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7, const T8 &p8)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
T * fbxsdk ::FbxNew (const T1 &p1, const T2 &p2, const T3 &p3, const T4 &p4, const T5 &p5, const T6 &p6, const T7 &p7, const T8 &p8, const T9 &p9)
 
template<typename T >
void fbxsdk ::FbxDelete (T *p)
 
template<typename T >
void fbxsdk ::FbxDelete (const T *p)
 
template<typename T >
T * fbxsdk ::FbxNewArray (const int n)
 
template<typename T >
void fbxsdk ::FbxDeleteArray (T *p)
 

Polygon Management

void BeginPolygon (int pMaterial=-1, int pTexture=-1, int pGroup=-1, bool pLegacy=true)
 Begins the process of adding a polygon to the mesh. More...
 
void BeginPolygonExt (int pMaterial, int *pTextures)
 Begin writing a polygon. More...
 
void AddPolygon (int pIndex, int pTextureUVIndex=-1)
 Add a polygon vertex to the current polygon. More...
 
void EndPolygon ()
 End writing a polygon, it should be called after adding one polygon. More...
 
int GetPolygonCount () const
 Get the polygon count of this mesh. More...
 
int GetPolygonSize (int pPolygonIndex) const
 Get the number of polygon vertices in a polygon. More...
 
int GetPolygonGroup (int pPolygonIndex) const
 Get the current group ID of the specified polygon. More...
 
void SetPolygonGroup (int pPolygonIndex, int pGroup) const
 Assign the specified polygon a group ID. More...
 
int GetPolygonVertex (int pPolygonIndex, int pPositionInPolygon) const
 Get a polygon vertex (i.e: an index to a control point). More...
 
bool GetPolygonVertexNormal (int pPolyIndex, int pVertexIndex, FbxVector4 &pNormal) const
 Get the normal associated with the specified polygon vertex. More...
 
bool GetPolygonVertexNormals (FbxArray< FbxVector4 > &pNormals) const
 Get the normals associated with the mesh for every polygon vertex. More...
 
bool GetPolygonVertexUV (int pPolyIndex, int pVertexIndex, const char *pUVSetName, FbxVector2 &pUV, bool &pUnmapped) const
 Get the UV associated with the specified polygon vertex. More...
 
bool GetPolygonVertexUVs (const char *pUVSetName, FbxArray< FbxVector2 > &pUVs, FbxArray< int > *pUnmappedUVId=((void *) 0)) const
 Get the UVs associated with the mesh for every polygon vertex. More...
 
int * GetPolygonVertices () const
 Get the array of polygon vertices (i.e: indices to the control points). More...
 
int GetPolygonVertexCount () const
 Gets the number of polygon vertices in the mesh. More...
 
int GetPolygonVertexIndex (int pPolygonIndex) const
 Gets the start index into the array returned by GetPolygonVertices() for the given polygon. More...
 
int RemovePolygon (int pPolygonIndex)
 Remove the specified polygon from the mesh. More...
 
int RemoveDuplicatedEdges (FbxArray< int > &pEdgeIndexList)
 Remove the duplicated edges from the mesh. More...
 

Texture UV Utility Functions.

The methods found in this section are utility functions used to handle UV coordinates quickly.

Internally, they refer to FbxLayer and FbxLayerElementUV methods to do the job. Except for the GetAllChannelUV(int pLayer), all the methods are implicitly working on Layer 0. Use the FbxLayer methods to have access to the other layers.

void InitTextureUV (int pCount, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Init texture UV coordinates. More...
 
void AddTextureUV (FbxVector2 pUV, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Add texture UV coordinates. More...
 
int GetTextureUVCount (FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Get the number of texture UV coordinates. More...
 
int GetUVLayerCount () const
 Get the number of layer containing at least one channel UVMap. More...
 
FbxArray< FbxLayerElement::ETypeGetAllChannelUV (int pLayer)
 Fills an array describing, for the given layer, which texture channel have UVs associated to it. More...
 

Material, Texture and UV Indices Utility Functions.

The methods found in this section are utility functions used to handle Material, Texture and UV indices quickly.

Internally, they refer to FbxLayer and FbxLayerElementUV methods to do the job. These functions are only working on Layer 0. Use the FbxLayer methods directly to access other layers.

void InitMaterialIndices (FbxLayerElement::EMappingMode pMappingMode)
 Initialize material indices. More...
 
void InitTextureIndices (FbxLayerElement::EMappingMode pMappingMode, FbxLayerElement::EType pTextureType)
 Initialize texture indices. More...
 
void InitTextureUVIndices (FbxLayerElement::EMappingMode pMappingMode, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Initialize texture UV indices. More...
 
int GetTextureUVIndex (int pPolygonIndex, int pPositionInPolygon, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Get a texture UV index associated with a polygon vertex (i.e: an index to a control point). More...
 
void SetTextureUVIndex (int pPolygonIndex, int pPositionInPolygon, int pIndex, FbxLayerElement::EType pTypeIdentifier)
 Set a texture UV index associated with a polygon vertex (i.e: an index to a control point). More...
 

Utility functions

void Reset ()
 Reset the mesh to default values. More...
 
bool GenerateNormals (bool pOverwrite=false, bool pByCtrlPoint=false, bool pCW=false)
 Generate vertex normals on the mesh. More...
 
bool CheckIfVertexNormalsCCW ()
 Compares the normals calculated by doing cross-products between the polygon vertex and by the ones stored in the normal array. More...
 
bool CheckSamePointTwice () const
 Verify if the mesh has polygons that are defined on the same point more than once. More...
 
int RemoveBadPolygons ()
 Remove bad polygons from a mesh. More...
 

Point Splitting/Merging utility functions

bool SplitPoints (FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
 Split points. More...
 
bool BuildMergeList (FbxArray< int > &pMergeList, bool pExport=false)
 Insert the new indexes of the object that have to be merged. More...
 
void MergePointsForPolygonVerteNormals (FbxArray< int > &pMergeList)
 Merge the points specified in the list. More...
 

Edge management functions

void BuildMeshEdgeArray ()
 Automatically generate edge data for the mesh. More...
 
int GetMeshEdgeCount () const
 Query the number of edges defined on this mesh. More...
 
int GetMeshEdgeIndex (int pStartVertexIndex, int pEndVertexIndex, bool &pReversed, int pExistedEdgeCount=-1)
 Get the index for the edge between the given vertices. More...
 
void BeginGetMeshEdgeIndexForPolygon ()
 Use this method before calling GetMeshEdgeIndexForPolygon if making several calls to that method. More...
 
void EndGetMeshEdgeIndexForPolygon ()
 Use this method after calling GetMeshEdgeIndexForPolygon if making several calls to that method. More...
 
int GetMeshEdgeIndexForPolygon (int pPolygon, int pPositionInPolygon)
 Get the index for the specific edge of pPolygon. More...
 
void GetMeshEdgeVertices (int pEdgeIndex, int &pStartVertexIndex, int &pEndVertexIndex) const
 Get the vertices for the given edge. More...
 
void BeginGetMeshEdgeVertices ()
 Use this method before calling GetMeshEdgeVertices if making several calls to that method. More...
 
void EndGetMeshEdgeVertices ()
 Use this method after calling GetMeshEdgeVertices if making several calls to that method. More...
 
void SetMeshEdgeCount (int pEdgeCount)
 Presets the number edge data elements. More...
 
void SetMeshEdge (int pEdgeIndex, int pValue)
 Sets element in edge array to specific value. More...
 
int AddMeshEdgeIndex (int pStartVertexIndex, int pEndVertexIndex, bool pCheckForDuplicates)
 Add an edge with the given start/end points. More...
 
int SetMeshEdgeIndex (int pEdgeIndex, int pStartVertexIndex, int pEndVertexIndex, bool pCheckForDuplicates, int pExistedEdgeCount=-1)
 Set the index for the edge with the given start/end points. More...
 
void BeginAddMeshEdgeIndex ()
 Call this before calling AddMeshEdgeIndex or SetMeshEdgeIndex to increase performance. More...
 
void EndAddMeshEdgeIndex ()
 After calling AddMeshEdgeIndex or SetMeshEdgeIndex, EndAddMeshEdgeIndex should be called. More...
 
int AddMeshEdgeIndexForPolygon (int pPolygonIndex, int pPositionInPolygon)
 Adds an edge for the specified polygon, and edge number within the polygon. More...
 
bool SetMeshEdgeIndex (int pEdgeIndex, int pPolygonIndex, int pPositionInPolygon)
 Sets the specified edge to the specified polygon's edge. More...
 
bool IsTriangleMesh () const
 Determines if the mesh is composed entirely of triangles. More...
 

Crease utility functions

double GetEdgeCreaseInfo (int pEdgeIndex)
 Get crease weight by edge index. More...
 
bool GetEdgeCreaseInfoArray (FbxLayerElementArrayTemplate< double > **pCreaseArray)
 Get crease edge array. More...
 
double GetVertexCreaseInfo (int pVertexIndex)
 Get crease weight by vertex index. More...
 
bool GetVertexCreaseInfoArray (FbxLayerElementArrayTemplate< double > **pCreaseArray)
 Get vertex crease array. More...
 
bool SetEdgeCreaseInfo (int pEdgeIndex, double pWeight)
 Set crease weight by edge index. More...
 
bool SetEdgeCreaseInfoArray (FbxArray< double > *pWeightArray)
 Set crease weight data array. More...
 
bool SetVertexCreaseInfo (int pVertexIndex, double pWeight)
 Set crease weight by vertex index. More...
 
bool SetVertexCreaseInfoArray (FbxArray< double > *pWeightArray)
 Set crease weight data array. More...
 

Smooth mesh preview utility functions

enum  ESmoothness { eHull, eRough, eMedium, eFine }
 Display Smoothness. More...
 
enum  EBoundaryRule { eLegacy, eCreaseAll, eCreaseEdge }
 the boundary rule. More...
 
FbxMesh::ESmoothness GetMeshSmoothness () const
 Get display smoothness from mesh. More...
 
void SetMeshSmoothness (FbxMesh::ESmoothness pSmoothness)
 Set the mesh display smoothness mode. More...
 
int GetMeshPreviewDivisionLevels () const
 Get preview subdivision levels from mesh. More...
 
void SetMeshPreviewDivisionLevels (int pPreviewDivisionLevels)
 Set mesh preview subdivision levels. More...
 
int GetMeshRenderDivisionLevels () const
 Get render subdivision levels from mesh. More...
 
void SetMeshRenderDivisionLevels (int pRenderDivisionLevels)
 Set mesh render subdivision levels. More...
 
bool GetDisplaySubdivisions () const
 Query whether to display subdivisions isolines on mesh. More...
 
void SetDisplaySubdivisions (bool pDisplySubdivisions)
 Set the DisplySubdivisions state. More...
 
EBoundaryRule GetBoundaryRule () const
 Get BoundaryRule from mesh. More...
 
void SetBoundaryRule (EBoundaryRule pBoundaryRule)
 Set BoundaryRule for this mesh. More...
 
bool GetPreserveBorders () const
 Query whether to preserve borders when preview smooth mesh is enabled. More...
 
void SetPreserveBorders (bool pPreserveBorders)
 Set the state of the PreserveBorders flag. More...
 
bool GetPreserveHardEdges () const
 Query whether to preserve hard edges when preview smooth mesh. More...
 
void SetPreserveHardEdges (bool pPreserveHardEdges)
 Set the state of the PreserveHardEdges flag. More...
 
bool GetPropagateEdgeHardness () const
 Query whether to PropagateEdgeHardness when preview smooth mesh. More...
 
void SetPropagateEdgeHardness (bool pPropagateEdgeHardness)
 Set state of the PropagateEdgeHardness flag. More...
 

Geometry hole management utility functions

bool GetPolyHoleInfo (int pFaceIndex)
 Get hole flag by face index (an index to a polygon). More...
 
bool GetPolyHoleInfoArray (FbxLayerElementArrayTemplate< bool > **pHoleArray)
 Get hole flags Array. More...
 
bool SetPolyHoleInfo (int pFaceIndex, bool pIsHole)
 Sets the flag indicating whether the face represents a hole or not. More...
 
bool SetPolyHoleInfoArray (FbxArray< bool > *pHoleArray)
 Set hole flags array. More...
 

Tangents data management utility functions

bool GenerateTangentsData (const char *pUVSetName=((void *) 0), bool pOverwrite=false, bool pIgnoreTangentFlip=false)
 Generate tangents data for UVSet with specific name. More...
 
bool GenerateTangentsData (int pUVSetLayerIndex, bool pOverwrite=false, bool pIgnoreTangentFlip=false)
 Generate tangents data for UVSet in specific layer. More...
 
bool GenerateTangentsDataForAllUVSets (bool pOverwrite=false, bool pIgnoreTangentFlip=false)
 Generate tangents data for all UVSets in all layers. More...
 

Additional Inherited Members

- Public Attributes inherited from FbxGeometryBase
FbxPropertyT< FbxBoolPrimaryVisibility
 Control the geometry render state. Geometry can still cast shadows even if this is turned off. More...
 
FbxPropertyT< FbxBoolCastShadow
 If true, the geometry will produce shadows. More...
 
FbxPropertyT< FbxBoolReceiveShadow
 If true, the geometry will receive shadows. More...
 
FbxPropertyT< FbxDouble3BBoxMin
 The minimum value of the control points bounding box. More...
 
FbxPropertyT< FbxDouble3BBoxMax
 The maximum value of the control points bounding box. More...
 
- Public Attributes inherited from FbxNodeAttribute
FbxPropertyT< FbxDouble3Color
 This property handles the color. More...
 
- Public Attributes inherited from FbxObject
FbxProperty RootProperty
 The root property that holds all children property for this object. More...
 

Member Typedef Documentation

◆ ParentClass

Definition at line 34 of file fbxmesh.h.

Member Enumeration Documentation

◆ ESmoothness

Display Smoothness.

It represents smooth mesh preview mode. This concept is not used in the FBX SDK but simply carried over so applications can access it and perform the appropriate tasks.

Enumerator
eHull 

Default value, not active "smooth mesh preview".

eRough 

Not active "smooth mesh preview".

eMedium 

Both display cage and smooth mesh.

eFine 

Display smooth mesh.

Definition at line 561 of file fbxmesh.h.

562  {
563  eHull,
564  eRough,
565  eMedium,
566  eFine
567  };
Both display cage and smooth mesh.
Definition: fbxmesh.h:565
Display smooth mesh.
Definition: fbxmesh.h:566
Not active "smooth mesh preview".
Definition: fbxmesh.h:564
Default value, not active "smooth mesh preview".
Definition: fbxmesh.h:563

◆ EBoundaryRule

the boundary rule.

Enumerator
eLegacy 

Default value.

eCreaseAll 

Used for hard corner.

eCreaseEdge 

Used for round corner.

Definition at line 570 of file fbxmesh.h.

571  {
572  eLegacy,
573  eCreaseAll,
574  eCreaseEdge
575  };
Used for round corner.
Definition: fbxmesh.h:574
Default value.
Definition: fbxmesh.h:572
Used for hard corner.
Definition: fbxmesh.h:573

Constructor & Destructor Documentation

◆ ~ FbxMesh()

virtual ~ FbxMesh ( )
inlineprotectedvirtual

Definition at line 34 of file fbxmesh.h.

36 :

◆ FbxMesh()

FbxMesh ( FbxManager pManager,
const char *  pName 
)
inlineprotected

Definition at line 34 of file fbxmesh.h.

36 :

Member Function Documentation

◆ GetClassId()

virtual FbxClassId GetClassId ( ) const
inlinevirtual

Reimplemented from FbxGeometry.

Definition at line 34 of file fbxmesh.h.

36 :

◆ Create() [1/2]

◆ Create() [2/2]

static FbxMesh* Create ( FbxObject pContainer,
const char *  pName 
)
static

◆ Allocate()

static FbxMesh* Allocate ( FbxManager pManager,
const char *  pName,
const FbxMesh pFrom 
)
staticprotected

◆ GetAttributeType()

virtual FbxNodeAttribute::EType GetAttributeType ( ) const
virtual

Return the type of node attribute.

Returns
Return the type of this node attribute which is EType::eMesh.

Reimplemented from FbxGeometry.

◆ BeginPolygon()

void BeginPolygon ( int  pMaterial = -1,
int  pTexture = -1,
int  pGroup = -1,
bool  pLegacy = true 
)

Begins the process of adding a polygon to the mesh.

Add vertexes to the polygon using AddPolygon. When the polygon is complete call EndPolygon to complete the creation of the polygon.

Parameters
pMaterialIndex of material to assign to this polygon if material mapping type is eByPolygon. Otherwise it must be -1.
pTextureIndex of texture to assign to this polygon if texture mapping type is eByPolygon. Otherwise it must be -1.
pGroupGroup index assigned to polygon.
pLegacyWhen set to true, automatically create a LayerElement of type Texture; This was the default behavior of earlier versions of the FBX SDK. Since version 2010, the textures are connected to the material object.
Remarks
This function must be called before AddPolygon().
If used, the pTexture index will reference textures assigned to the DIFFUSE channel (FbxLayerElement::eTextureDiffuse).
Examples:
Common/GeometryUtility.cxx, ExportDocument/main.cxx, ExportScene03/main.cxx, Instances/main.cxx, Layers/main.cxx, ProceduralTexture/main.cxx, and UserProperties/main.cxx.

◆ BeginPolygonExt()

void BeginPolygonExt ( int  pMaterial,
int *  pTextures 
)

Begin writing a polygon.

Add vertexes to the polygon using AddPolygon. When the polygon is complete call EndPolygon to complete the creation of the polygon.

Parameters
pMaterialIndex of material to assign to this polygon if material mapping type is eByPolygon. Otherwise it must be -1.
pTexturesArray of index of texture (by texture type) to assign to this polygon if texture mapping type is eByPolygon. Otherwise it must be an array of -1. This array is expected to be of size: FbxLayerElement::sTypeTextureCount. If one texture type is not used, the corresponding entry must be left at -1.

◆ AddPolygon()

void AddPolygon ( int  pIndex,
int  pTextureUVIndex = -1 
)

Add a polygon vertex to the current polygon.

Parameters
pIndexIndex in the table of the control points.
pTextureUVIndexIndex of texture UV coordinates to assign to this polygon if texture UV mapping type is eByPolygonVertex. Otherwise it must be -1.
Remarks
After adding all the polygons of the mesh, call function "BuildMeshEdgeArray" to generate edge data for the mesh.
Examples:
Common/GeometryUtility.cxx, ExportDocument/main.cxx, ExportScene03/main.cxx, Instances/main.cxx, Layers/main.cxx, ProceduralTexture/main.cxx, and UserProperties/main.cxx.

◆ EndPolygon()

void EndPolygon ( )

◆ GetPolygonCount()

int GetPolygonCount ( ) const
inline

Get the polygon count of this mesh.

Returns
Return the number of polygons in the mesh.
Examples:
ExportDocument/main.cxx, ImportScene/DisplayCache.cxx, ImportScene/DisplayMesh.cxx, Normals/main.cxx, UVSample/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneCache.cxx.

Definition at line 73 of file fbxmesh.h.

73 { return mPolygons.GetCount(); }

◆ GetPolygonSize()

int GetPolygonSize ( int  pPolygonIndex) const
inline

Get the number of polygon vertices in a polygon.

Parameters
pPolygonIndexIndex of the polygon.
Returns
The number of polygon vertices in the indexed polygon. If the polygon index is out of bounds, return -1.
Examples:
ImportScene/DisplayCache.cxx, ImportScene/DisplayMesh.cxx, Normals/main.cxx, UVSample/main.cxx, and ViewScene/DrawScene.cxx.

Definition at line 78 of file fbxmesh.h.

79  {
80  return ( pPolygonIndex >= 0 && pPolygonIndex < mPolygons.GetCount() ) ? mPolygons[pPolygonIndex].mSize : -1;
81  }

◆ GetPolygonGroup()

int GetPolygonGroup ( int  pPolygonIndex) const

Get the current group ID of the specified polygon.

A polygon group can be useful to identify a number of polygons that share the same properties. The FBX SDK does not use this information internally but guarantee its persistence in the FBX files and in memory.

Parameters
pPolygonIndexIndex of the polygon.
Returns
Group index assigned to the polygon. If the polygon index is out of bounds, return -1.

◆ SetPolygonGroup()

void SetPolygonGroup ( int  pPolygonIndex,
int  pGroup 
) const
inline

Assign the specified polygon a group ID.

A polygon can only be assigned to one group at the time.

Parameters
pPolygonIndexIndex of the polygon.
pGroupGroup index assigned to the polygon.
Returns
Group index assigned to the polygon. If the polygon index is out of bounds, do nothing.

Definition at line 95 of file fbxmesh.h.

96  {
97  if( pPolygonIndex >= 0 && pPolygonIndex<mPolygons.GetCount() ) mPolygons[pPolygonIndex].mGroup = pGroup;
98  }

◆ GetPolygonVertex()

int GetPolygonVertex ( int  pPolygonIndex,
int  pPositionInPolygon 
) const
inline

Get a polygon vertex (i.e: an index to a control point).

Parameters
pPolygonIndexIndex of queried polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonCount().
pPositionInPolygonPosition of polygon vertex in indexed polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonSize(pPolygonIndex).
Returns
Return the polygon vertex indexed or -1 if the requested vertex does not exists or the indices arguments have an invalid range.
Examples:
ImportScene/DisplayMesh.cxx, UVSample/main.cxx, ViewScene/DrawScene.cxx, and ViewScene/SceneCache.cxx.

Definition at line 104 of file fbxmesh.h.

105  {
106  return ( pPolygonIndex >= 0 && pPolygonIndex < mPolygons.GetCount() && pPositionInPolygon >= 0 && pPositionInPolygon < mPolygons[pPolygonIndex].mSize ) ?
107  mPolygonVertices[mPolygons[pPolygonIndex].mIndex + pPositionInPolygon] : -1;
108  }

◆ GetPolygonVertexNormal()

bool GetPolygonVertexNormal ( int  pPolyIndex,
int  pVertexIndex,
FbxVector4 pNormal 
) const

Get the normal associated with the specified polygon vertex.

Parameters
pPolyIndexIndex of the polygon.
pVertexIndexIndex of the vertex in the polygon.
pNormalThe returned normal.
Returns
True on success, false on failure.
Remarks
pNormal remain unchanged if the requested vertex does not exists.
Examples:
ViewScene/SceneCache.cxx.

◆ GetPolygonVertexNormals()

bool GetPolygonVertexNormals ( FbxArray< FbxVector4 > &  pNormals) const

Get the normals associated with the mesh for every polygon vertex.

Parameters
pNormalsThe returned normals.
Returns
True on success, false on failure.

◆ GetPolygonVertexUV()

bool GetPolygonVertexUV ( int  pPolyIndex,
int  pVertexIndex,
const char *  pUVSetName,
FbxVector2 pUV,
bool &  pUnmapped 
) const

Get the UV associated with the specified polygon vertex.

Parameters
pPolyIndexIndex of the polygon.
pVertexIndexIndex of the vertex in the polygon.
pUVSetNameThe name of the UV set that contains the UV.
pUVThe returned UV.
pUnmappedState flag that indicates if the polygon vertex does not have an associated UV.
Returns
True on success, false on failure.
Remarks
pUV remain unchanged if the requested vertex does not exists.
This function return true if the specified polygon vertex does not have an associated UV. In this case, pUnampped is set to true and the content of pUV is undefined.
Examples:
ViewScene/SceneCache.cxx.

◆ GetPolygonVertexUVs()

bool GetPolygonVertexUVs ( const char *  pUVSetName,
FbxArray< FbxVector2 > &  pUVs,
FbxArray< int > *  pUnmappedUVId = ((void *) 0) 
) const

Get the UVs associated with the mesh for every polygon vertex.

Parameters
pUVSetNameThe name of the UV set that contains the UVs.
pUVsThe returned UVs.
pUnmappedUVIdIf specified, this array will be filled with the indices of the UVs that are not associated to a polygon vertex and thus, have an undefined value. If the array as a size of 0, then all the polygon vertices have an associated UV coordinate and the pUVs array can be used as is. Otherwise, the calling application may be required to process the invalid UV coordinates to avoid inconsistent results. It is strongly suggested to use the FbxLayerElementUV's Direct and Indexed arrays directly (specially if the calling application supports indirection of the UVs).
Remarks
unmapped UV coordinates are set to (0,0)
Returns
True on success, false on failure.

◆ GetPolygonVertices()

int* GetPolygonVertices ( ) const

Get the array of polygon vertices (i.e: indices to the control points).

This array is a concatenation of the list of polygon vertices of all the polygons. Example: a mesh made of 2 triangles with vertices [1,2,3] and vertices [2,3,4] results in [1,2,3,2,3,4]. The first polygon starts at position 0 and the second at position 3.

Returns
The array of polygon vertices.

◆ GetPolygonVertexCount()

int GetPolygonVertexCount ( ) const
inline

Gets the number of polygon vertices in the mesh.

Returns
The overall size of the array of polygon vertices in the mesh.
Remarks
This value can be smaller than the value returned by GetControlPointsCount() (meaning that not all of the control points stored in the object are used to define the mesh). However, typically it will be much bigger since any given control point can be used to define a vertex on multiple polygons.

Definition at line 159 of file fbxmesh.h.

159 { return mPolygonVertices.Size(); }

◆ GetPolygonVertexIndex()

int GetPolygonVertexIndex ( int  pPolygonIndex) const

Gets the start index into the array returned by GetPolygonVertices() for the given polygon.

This method can be used for a faster access to the polygon vertices indices. If, for example, we want to access the indices for polygon 3, the following code would do the trick

int lStartIndex = mesh.GetPolygonVertexIndex(3);
if( lStartIndex == -1 ) return;
int* lVertices = mesh.GetPolygonVertices()[lStartIndex];
int lCount = mesh.GetPolygonSize(3);
for( int i = 0; i < lCount; ++i )
{
int vertexID = lVertices[i];
...
}
Parameters
pPolygonIndexThe polygon of interest.
Returns
The index into the GetPolygonVertices() array.
Remarks
If the polygon index is out of bounds, return -1.

◆ RemovePolygon()

int RemovePolygon ( int  pPolygonIndex)

Remove the specified polygon from the mesh.

This method will automatically update the layers accordingly.

Parameters
pPolygonIndexIndex of the polygon.
Returns
Polygon index.
Remarks
If the polygon index is out of bounds, return -1.

◆ RemoveDuplicatedEdges()

int RemoveDuplicatedEdges ( FbxArray< int > &  pEdgeIndexList)

Remove the duplicated edges from the mesh.

This method will remove duplicated edges. It will not change any vertex and not change the mesh topology.

Parameters
pEdgeIndexListIndex list of edges.
Returns
the count of removed edges.
Remarks
the edge index list must be ordered. The last one is the max. If the edge index is out of bounds, return -1.

◆ InitTextureUV()

void InitTextureUV ( int  pCount,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
)

Init texture UV coordinates.

Parameters
pCountNumber of texture UV elements.
pTypeIdentifierSpecifies which texture channel this UV refers to.
Remarks
pCount must equal the number of control points of the Mesh if the UV mapping mode is FbxLayerElement::eByControlPoint.

◆ AddTextureUV()

void AddTextureUV ( FbxVector2  pUV,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
)

Add texture UV coordinates.

Appends a new element at the end of the array of texture UV coordinates.

Parameters
pUVTexture UV coordinates, ranging between 0 and 1.
pTypeIdentifierSpecifies which texture channel this UV refers to.
Remarks
The final number of texture UV elements must equal the number of control points if the UV mapping mode is FbxLayerElement::eByControlPoint.

◆ GetTextureUVCount()

int GetTextureUVCount ( FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse)

Get the number of texture UV coordinates.

Parameters
pTypeIdentifierThe texture channel the UV refers to.

◆ GetUVLayerCount()

int GetUVLayerCount ( ) const

Get the number of layer containing at least one channel UVMap.

return 0 if no UV maps have been defined.

◆ GetAllChannelUV()

FbxArray<FbxLayerElement::EType> GetAllChannelUV ( int  pLayer)

Fills an array describing, for the given layer, which texture channel have UVs associated to it.

Parameters
pLayerIndex of the layer.
Returns
Array with the channel descriptor.
Remarks
Only the channels that have UVs associated are reported in the array. For example, let's assume that we have defined UVs for the Diffuse, Ambient and Bump channels on layer 0. The resulting array will have the following three entries:
  • FbxLayerElement::eDIFFUSE_TEXTURE
  • FbxLayerElement::eAMBIENT_TEXTURE
  • FbxLayerElement::eBUMP_TEXTURE

◆ InitMaterialIndices()

void InitMaterialIndices ( FbxLayerElement::EMappingMode  pMappingMode)

Initialize material indices.

Parameters
pMappingModeThe mapping mode. This method must be called after FbxGeometryBase::InitControlPoints(). The material indices refer to the position of a material in the FbxLayerElementMaterial's direct array. See FbxLayerElementMaterial for more details. Supported mapping types are eByControlPoint, eByPolygon and eALL_SAME.
  • If mapping mode is eByControlPoint, there will be as many indices in the material index array as there are control points.
  • If mapping mode is eByPolygon, there will be as many indices in the material index array as there are polygons in the mesh.
  • If mapping mode is eALL_SAME, there will be only one index in the material index array.
Remarks
This function will set the Reference mode of the FbxLayerElementMaterial on layer 0 to eIndexToDirect.

◆ InitTextureIndices()

void InitTextureIndices ( FbxLayerElement::EMappingMode  pMappingMode,
FbxLayerElement::EType  pTextureType 
)

Initialize texture indices.

Parameters
pMappingModeThe mapping mode. The texture indices refer to the texture connection to the material. In older versions of the FBX SDK, the indices were referring to the entries in the direct array of the FbxLayerElementTexture. See FbxLayerElementTexture for more details. Supported mapping modes are eByPolygon and eALL_SAME.
  • If mapping mode is eByPolygon, there will be as many indices in the texture index array as there are polygons in the mesh.
  • If mapping mode is eALL_SAME, there will be only one index in the texture index array.
pTextureTypeThe texture channel identifier.
Remarks
This function will set the Reference mode of the FbxLayerElementTexture on layer 0 to eIndexToDirect.

◆ InitTextureUVIndices()

void InitTextureUVIndices ( FbxLayerElement::EMappingMode  pMappingMode,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
)

Initialize texture UV indices.

Parameters
pMappingModeThe mapping mode. The texture UV indices refer to the index of an element in the FbxLayerElementUV's direct array. See FbxLayerElementUV for more details. Supported mapping types are eByControlPoint , eByPolygonVertex and eALL_SAME.
  • If mapping mode is eByControlPoint, there will be as many indices in the UV index array as there are control points. This will also set the Reference mode of the FbxLayerElementUV on layer 0 to eDirect.
  • If mapping mode is eByPolygonVertex, there will be an index in the UV index array for each vertex, for each polygon it is part of. This will also set the Reference mode of the FbxLayerElementUV on layer 0 to eIndexToDirect.
  • If mapping mode is eALL_SAME, there will be no index in the UV index array. This will also set the Reference mode of the FbxLayerElementUV on layer 0 to eDirect.
pTypeIdentifierThe texture channel the UVIndices refers to.

◆ GetTextureUVIndex()

int GetTextureUVIndex ( int  pPolygonIndex,
int  pPositionInPolygon,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
)

Get a texture UV index associated with a polygon vertex (i.e: an index to a control point).

Parameters
pPolygonIndexIndex of polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonCount().
pPositionInPolygonPosition of polygon vertex in indexed polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonSize(pPolygonIndex).
pTypeIdentifierThe texture channel the UVIndex refers to.
Returns
Return a texture UV index.
Remarks
This function only works if the texture UV mapping mode is set to eByPolygonVertex, otherwise it returns -1.
Examples:
ImportScene/DisplayMesh.cxx.

◆ SetTextureUVIndex()

void SetTextureUVIndex ( int  pPolygonIndex,
int  pPositionInPolygon,
int  pIndex,
FbxLayerElement::EType  pTypeIdentifier 
)

Set a texture UV index associated with a polygon vertex (i.e: an index to a control point).

Parameters
pPolygonIndexIndex of polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonCount().
pPositionInPolygonPosition of polygon vertex in indexed polygon. The valid range for this parameter is 0 to FbxMesh::GetPolygonSize(pPolygonIndex).
pIndexThe index of the texture UV we want to assign to the polygon vertex.
pTypeIdentifierThe texture channel the UVIndex refers to.
Remarks
This function only works if the texture UV mapping type is set to eByPolygonVertex.

◆ Reset()

void Reset ( )

Reset the mesh to default values.

Frees and set to NULL all layers and clear the polygon and the control point array.

◆ GenerateNormals()

bool GenerateNormals ( bool  pOverwrite = false,
bool  pByCtrlPoint = false,
bool  pCW = false 
)

Generate vertex normals on the mesh.

The normal computation takes into consideration, as much as possible, the smoothing groups.

Parameters
pOverwriteIf true, re-generate normals data regardless of availability, otherwise left untouched if exist.
pByCtrlPointIf true, the recomputed normals will be defined by control points instead of by polygon vertex.
pCWTrue if the normals are calculated clockwise, false otherwise (counter-clockwise).
Returns
true if successfully generated normals data, or if already available and pOverwrite is false.

◆ CheckIfVertexNormalsCCW()

bool CheckIfVertexNormalsCCW ( )

Compares the normals calculated by doing cross-products between the polygon vertex and by the ones stored in the normal array.

Returns
false if ALL of them are Clockwise. Returns true otherwise.

◆ CheckSamePointTwice()

bool CheckSamePointTwice ( ) const

Verify if the mesh has polygons that are defined on the same point more than once.

Returns
true if the mesh has that kind of polygon, false otherwise.

◆ RemoveBadPolygons()

int RemoveBadPolygons ( )

Remove bad polygons from a mesh.

Degenerate polygons use a vertex more than once. Remove them from the mesh and from the layer element indices as needed.

Returns
Number of polygons removed from the mesh, -1 if an error occurred.

◆ SplitPoints()

bool SplitPoints ( FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse)

Split points.

Parameters
pTypeIdentifierSpecify which UVs are processed.
Returns
true if a split occurred, false otherwise.
Remarks
This method replaces the BuildSplitList and SplitPointsForHardEdge.

◆ BuildMergeList()

bool BuildMergeList ( FbxArray< int > &  pMergeList,
bool  pExport = false 
)

Insert the new indexes of the object that have to be merged.

Parameters
pMergeListThe list that will contain the indexes of the objects to merge.
pExportIf set to true, include the duplicate indexes in the merge list.

◆ MergePointsForPolygonVerteNormals()

void MergePointsForPolygonVerteNormals ( FbxArray< int > &  pMergeList)

Merge the points specified in the list.

Parameters
pMergeListList containing the information on the points that will be merged.

◆ BuildMeshEdgeArray()

void BuildMeshEdgeArray ( )

Automatically generate edge data for the mesh.

Clears all previously stored edge information

◆ GetMeshEdgeCount()

int GetMeshEdgeCount ( ) const

Query the number of edges defined on this mesh.

Returns
The number of edges defined for this mesh
Examples:
ImportScene/DisplayMesh.cxx, and Normals/main.cxx.

◆ GetMeshEdgeIndex()

int GetMeshEdgeIndex ( int  pStartVertexIndex,
int  pEndVertexIndex,
bool &  pReversed,
int  pExistedEdgeCount = -1 
)

Get the index for the edge between the given vertices.

Note that the result of this method is the same if pStartVertexIndex and pEndVertexIndex are swapped.

Parameters
pStartVertexIndexThe starting point of the edge.
pEndVertexIndexThe ending point of the edge.
pReversedflag will be set to true if the reverse edge is found, false otherwise.
pExistedEdgeCountlegal edge count in mEdgeArray
Returns
-1 if no edge exists for the given pair of vertices.

◆ BeginGetMeshEdgeIndexForPolygon()

void BeginGetMeshEdgeIndexForPolygon ( )

Use this method before calling GetMeshEdgeIndexForPolygon if making several calls to that method.

Once done calling GetMeshEdgeIndexForPolygon, call EndGetMeshEdgeIndex. This will optimize access time. Do not modify the mesh between calls to BeginGetMeshEdgeIndex and EndGetMeshEdgeIndex.

◆ EndGetMeshEdgeIndexForPolygon()

void EndGetMeshEdgeIndexForPolygon ( )

Use this method after calling GetMeshEdgeIndexForPolygon if making several calls to that method.

This will optimize access time. Do not modify the mesh between calls to BeginGetMeshEdgeIndex and EndGetMeshEdgeIndex.

◆ GetMeshEdgeIndexForPolygon()

int GetMeshEdgeIndexForPolygon ( int  pPolygon,
int  pPositionInPolygon 
)

Get the index for the specific edge of pPolygon.

Parameters
pPolygonThe polygon of interest.
pPositionInPolygonThe specific edge number in the polygon.
Returns
-1 if the specific edge does not exist.
Remarks
To optimize access time when making several calls to this method, enclose these calls between the BeginGetMeshEdgeIndexForPolygon() and EndGetMeshEdgeIndexForPolygon() calls.

◆ GetMeshEdgeVertices()

void GetMeshEdgeVertices ( int  pEdgeIndex,
int &  pStartVertexIndex,
int &  pEndVertexIndex 
) const

Get the vertices for the given edge.

Note that the values returned are indices into the control point array.

Parameters
pEdgeIndexThe edge to query.
pStartVertexIndexThe edge's starting point will be stored here.
pEndVertexIndexThe edge's starting point will be stored here.

◆ BeginGetMeshEdgeVertices()

void BeginGetMeshEdgeVertices ( )

Use this method before calling GetMeshEdgeVertices if making several calls to that method.

Once done calling GetMeshEdgeVertices, call EndGetMeshEdgeVertices. This will optimize access time. Do not modify the mesh between calls to BeginGetMeshEdgeVertices and EndGetMeshEdgeVertices.

◆ EndGetMeshEdgeVertices()

void EndGetMeshEdgeVertices ( )

Use this method after calling GetMeshEdgeVertices if making several calls to that method.

This will optimize access time. Do not modify the mesh between calls to BeginGetMeshEdgeVertices and EndGetMeshEdgeVertices.

◆ SetMeshEdgeCount()

void SetMeshEdgeCount ( int  pEdgeCount)

Presets the number edge data elements.

Parameters
pEdgeCountThe number of edges to allocate.

◆ SetMeshEdge()

void SetMeshEdge ( int  pEdgeIndex,
int  pValue 
)
inline

Sets element in edge array to specific value.

Parameters
pEdgeIndexThe edge index
pValueThe edge data

Definition at line 446 of file fbxmesh.h.

446 { if( pEdgeIndex >= 0 && pEdgeIndex < mEdgeArray.GetCount() ) mEdgeArray[pEdgeIndex] = pValue; }

◆ AddMeshEdgeIndex()

int AddMeshEdgeIndex ( int  pStartVertexIndex,
int  pEndVertexIndex,
bool  pCheckForDuplicates 
)

Add an edge with the given start/end points.

Note that the inserted edge may start at the given end point, and end at the given start point.

Parameters
pStartVertexIndexThe starting point of the edge.
pEndVertexIndexThe ending point of the edge.
pCheckForDuplicatesSet to true to check if the mesh already contains an edge with these two points. Can be set to false to speed up this method, when the incoming edges are known to be consistent.
Returns
Edge index of the new edge, or -1 on failure (edge/reverse edge already exists, no face using these 2 points consecutively )

◆ SetMeshEdgeIndex() [1/2]

int SetMeshEdgeIndex ( int  pEdgeIndex,
int  pStartVertexIndex,
int  pEndVertexIndex,
bool  pCheckForDuplicates,
int  pExistedEdgeCount = -1 
)

Set the index for the edge with the given start/end points.

Note that the edge may start at the given end point, and end at the given start point.

Parameters
pEdgeIndexThe edge index of the edge.
pStartVertexIndexThe starting point of the edge.
pEndVertexIndexThe ending point of the edge.
pCheckForDuplicatesSet to true to check if the mesh already contains an edge with these two points. Can be set to false to speed up this method, when the incoming edges are known to be consistent.
pExistedEdgeCountthe valid edge count that we have created in edge array. This parameter only works when pCheckForDuplicates is true. The default value is -1 which meaning current edge array has been fully filled with valid edges, i.e., we will search the full edge array for the duplicated edge.
Returns
Edge index of the edge, or -1 on failure (no face using these 2 points consecutively ), or -2 if edge/reverse edge already exists

◆ BeginAddMeshEdgeIndex()

void BeginAddMeshEdgeIndex ( )

Call this before calling AddMeshEdgeIndex or SetMeshEdgeIndex to increase performance.

Once finished adding/setting edges EndAddMeshEdgeIndex should be called.

◆ EndAddMeshEdgeIndex()

void EndAddMeshEdgeIndex ( )

After calling AddMeshEdgeIndex or SetMeshEdgeIndex, EndAddMeshEdgeIndex should be called.

◆ AddMeshEdgeIndexForPolygon()

int AddMeshEdgeIndexForPolygon ( int  pPolygonIndex,
int  pPositionInPolygon 
)

Adds an edge for the specified polygon, and edge number within the polygon.

See SetMeshEdgeIndex for notes the the parameters.

Parameters
pPolygonIndexThe polygon of interest.
pPositionInPolygonThe edge within the polygon
Returns
edge index or -1 if failed.

◆ SetMeshEdgeIndex() [2/2]

bool SetMeshEdgeIndex ( int  pEdgeIndex,
int  pPolygonIndex,
int  pPositionInPolygon 
)

Sets the specified edge to the specified polygon's edge.

Note that the position in the polygon ranges from 0 to GetPolygonSize(pPolygonindex) - 1 and represents the edge from GetPolygonVertex(pPolygonIndex, pPositionInPolygon) to GetPolygonVertex( pPolygonIndex, pPositionInPolygon + 1 ) or from pPositionInPolygon to 0 if pPositionInPolygon == GetPolygonSize(pPolygonindex) - 1

Parameters
pEdgeIndexThe edge.
pPolygonIndexThe polygon.
pPositionInPolygonThe specific edge number in the polygon.
Returns
true on success, false on failure. ( edge for the poly and position already exists )

◆ IsTriangleMesh()

bool IsTriangleMesh ( ) const

Determines if the mesh is composed entirely of triangles.

Returns
true if all polygons are triangles, false otherwise

◆ ReservePolygonCount()

void ReservePolygonCount ( int  pCount)
inline

Reserve memory in the polygon array to hold the specified number of polygons.

Parameters
pCountThe number of polygons this mesh will hold

Definition at line 501 of file fbxmesh.h.

501 { mPolygons.Reserve(pCount); }

◆ ReservePolygonVertexCount()

void ReservePolygonVertexCount ( int  pCount)
inline

Reserve memory in the polygon vertex array to hold the specified number of polygon vertices.

Parameters
pCountThe number of polygon vertices

Definition at line 505 of file fbxmesh.h.

505 { mPolygonVertices.Reserve(pCount); }

◆ GetTextureUV()

bool GetTextureUV ( FbxLayerElementArrayTemplate< FbxVector2 > **  pLockableArray,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
) const

◆ GetMaterialIndices()

bool GetMaterialIndices ( FbxLayerElementArrayTemplate< int > **  pLockableArray) const

◆ GetTextureIndices()

bool GetTextureIndices ( FbxLayerElementArrayTemplate< int > **  pLockableArray,
FbxLayerElement::EType  pTextureType 
) const

◆ GetEdgeCreaseInfo()

double GetEdgeCreaseInfo ( int  pEdgeIndex)

Get crease weight by edge index.

Parameters
pEdgeIndexEdge index.
Returns
Crease weight value in the range [0.0 - 1.0].

◆ GetEdgeCreaseInfoArray()

bool GetEdgeCreaseInfoArray ( FbxLayerElementArrayTemplate< double > **  pCreaseArray)

Get crease edge array.

Parameters
pCreaseArrayEdge crease data array.
Returns
true if the pCreaseArray is filled successfully.

◆ GetVertexCreaseInfo()

double GetVertexCreaseInfo ( int  pVertexIndex)

Get crease weight by vertex index.

Parameters
pVertexIndexVertex index.
Returns
Crease weight value in the range [0.0 - 1.0].

◆ GetVertexCreaseInfoArray()

bool GetVertexCreaseInfoArray ( FbxLayerElementArrayTemplate< double > **  pCreaseArray)

Get vertex crease array.

Parameters
pCreaseArrayEdge vertex data array.
Returns
true if the pCreaseArray is filled successfully.

◆ SetEdgeCreaseInfo()

bool SetEdgeCreaseInfo ( int  pEdgeIndex,
double  pWeight 
)

Set crease weight by edge index.

Parameters
pEdgeIndexEdge index.
pWeightCrease weight value in the range [0.0 - 1.0].
Returns
true if successfully set the crease weight.

◆ SetEdgeCreaseInfoArray()

bool SetEdgeCreaseInfoArray ( FbxArray< double > *  pWeightArray)

Set crease weight data array.

Parameters
pWeightArrayEdge crease data.
Returns
true if successfully set the crease weight.

◆ SetVertexCreaseInfo()

bool SetVertexCreaseInfo ( int  pVertexIndex,
double  pWeight 
)

Set crease weight by vertex index.

Parameters
pVertexIndexVertex index.
pWeightCrease weight value in the range [0.0 - 1.0].
Returns
true if successfully set the crease weight.

◆ SetVertexCreaseInfoArray()

bool SetVertexCreaseInfoArray ( FbxArray< double > *  pWeightArray)

Set crease weight data array.

Parameters
pWeightArrayVertex crease data.
Returns
true if successfully set the crease weight.

◆ GetMeshSmoothness()

FbxMesh::ESmoothness GetMeshSmoothness ( ) const

Get display smoothness from mesh.

Returns
Mesh smoothness.
Remarks
It represents smooth mesh preview mode.

◆ SetMeshSmoothness()

void SetMeshSmoothness ( FbxMesh::ESmoothness  pSmoothness)

Set the mesh display smoothness mode.

Parameters
pSmoothnessNew smoothness factor.
Remarks
It represents smooth mesh preview mode.

◆ GetMeshPreviewDivisionLevels()

int GetMeshPreviewDivisionLevels ( ) const

Get preview subdivision levels from mesh.

Returns
Mesh preview subdivision levels.

◆ SetMeshPreviewDivisionLevels()

void SetMeshPreviewDivisionLevels ( int  pPreviewDivisionLevels)

Set mesh preview subdivision levels.

Parameters
pPreviewDivisionLevelsNumber of subdivisions levels.

◆ GetMeshRenderDivisionLevels()

int GetMeshRenderDivisionLevels ( ) const

Get render subdivision levels from mesh.

Returns
Mesh render subdivision levels
Remarks
Sometimes, render division level can be the same as preview level.

◆ SetMeshRenderDivisionLevels()

void SetMeshRenderDivisionLevels ( int  pRenderDivisionLevels)

Set mesh render subdivision levels.

Parameters
pRenderDivisionLevelsNumber of subdivision levels.

◆ GetDisplaySubdivisions()

bool GetDisplaySubdivisions ( ) const

Query whether to display subdivisions isolines on mesh.

Returns
The current state of the internal flag.

◆ SetDisplaySubdivisions()

void SetDisplaySubdivisions ( bool  pDisplySubdivisions)

Set the DisplySubdivisions state.

Parameters
pDisplySubdivisionsNew value for this flag.

◆ GetBoundaryRule()

EBoundaryRule GetBoundaryRule ( ) const

Get BoundaryRule from mesh.

Returns
Current value of the internal state.

◆ SetBoundaryRule()

void SetBoundaryRule ( EBoundaryRule  pBoundaryRule)

Set BoundaryRule for this mesh.

Parameters
pBoundaryRuleNew value for the internal state of this mesh.
Remarks
BoundaryRule will affect the corners of smooth mesh.

◆ GetPreserveBorders()

bool GetPreserveBorders ( ) const

Query whether to preserve borders when preview smooth mesh is enabled.

Returns
The current state of the flag.

◆ SetPreserveBorders()

void SetPreserveBorders ( bool  pPreserveBorders)

Set the state of the PreserveBorders flag.

Parameters
pPreserveBordersNew value for this flag.
Remarks
This flag value will affect smooth mesh preview results.

◆ GetPreserveHardEdges()

bool GetPreserveHardEdges ( ) const

Query whether to preserve hard edges when preview smooth mesh.

Returns
The current state of the flag.

◆ SetPreserveHardEdges()

void SetPreserveHardEdges ( bool  pPreserveHardEdges)

Set the state of the PreserveHardEdges flag.

Parameters
pPreserveHardEdgesNew value for this flag.
Remarks
This flag value will affect smooth mesh preview results.

◆ GetPropagateEdgeHardness()

bool GetPropagateEdgeHardness ( ) const

Query whether to PropagateEdgeHardness when preview smooth mesh.

Returns
The current state of the flag.

◆ SetPropagateEdgeHardness()

void SetPropagateEdgeHardness ( bool  pPropagateEdgeHardness)

Set state of the PropagateEdgeHardness flag.

Parameters
pPropagateEdgeHardnessNew value for this flag.
Remarks
This flag will affect smooth mesh preview results.

◆ GetPolyHoleInfo()

bool GetPolyHoleInfo ( int  pFaceIndex)

Get hole flag by face index (an index to a polygon).

Parameters
pFaceIndexIndex of the queried polygon.
Returns
The hole flag for the given face.

◆ GetPolyHoleInfoArray()

bool GetPolyHoleInfoArray ( FbxLayerElementArrayTemplate< bool > **  pHoleArray)

Get hole flags Array.

Parameters
pHoleArrayHole flags array.
Returns
true if the pHoleArray is filled successfully.

◆ SetPolyHoleInfo()

bool SetPolyHoleInfo ( int  pFaceIndex,
bool  pIsHole 
)

Sets the flag indicating whether the face represents a hole or not.

Parameters
pFaceIndexIndex of the processed polygon.
pIsHoleIf true, this face represent a hole.
Returns
true if successfully set the hole info.

◆ SetPolyHoleInfoArray()

bool SetPolyHoleInfoArray ( FbxArray< bool > *  pHoleArray)

Set hole flags array.

Parameters
pHoleArrayHole flag array.
Returns
true if successfully set the hole flags.

◆ GenerateTangentsData() [1/2]

bool GenerateTangentsData ( const char *  pUVSetName = ((void *) 0),
bool  pOverwrite = false,
bool  pIgnoreTangentFlip = false 
)

Generate tangents data for UVSet with specific name.

Note that the UV winding order is stored in the W component of the tangent. W = 1.0 (right-handed) W = -1.0 (left-handed) In the case of a left-handed tangent, this function automatically flips the resulting binormal to correct for mirrored geometry.

Parameters
pUVSetNameThe UVSet name to generate tangents data with. The UVSet on the first layer is the the default UVSet to generate.
pOverwriteIf true, re-generate tangents data regardless of availability, otherwise left untouched if exist.
pIgnoreTangentFlipIf true, don't test for the tangent flip when deciding which smoothing group to assign.
Returns
true if successfully generated tangents data, or if already available and pOverwrite is false.

◆ GenerateTangentsData() [2/2]

bool GenerateTangentsData ( int  pUVSetLayerIndex,
bool  pOverwrite = false,
bool  pIgnoreTangentFlip = false 
)

Generate tangents data for UVSet in specific layer.

Note that the UV winding order is stored in the W component of the tangent. W = 1.0 (right-handed) W = -1.0 (left-handed) In the case of a left-handed tangent, this function automatically flips the resulting binormal to correct for mirrored geometry.

Parameters
pUVSetLayerIndexThe layer to generate tangents data with.
pOverwriteIf true, re-generate tangents data regardless of availability, otherwise left untouched if exist.
pIgnoreTangentFlipIf true, don't test for the tangent flip when deciding which smoothing group to assign.
Returns
true if successfully generated tangents data, or if already available and pOverwrite is false.

◆ GenerateTangentsDataForAllUVSets()

bool GenerateTangentsDataForAllUVSets ( bool  pOverwrite = false,
bool  pIgnoreTangentFlip = false 
)

Generate tangents data for all UVSets in all layers.

Note that the UV winding order is stored in the W component of the tangent: W = 1.0 (right-handed) W = -1.0 (left-handed) In the case of a left-handed tangent, this function automatically flips the resulting binormal to correct for mirrored geometry.

Parameters
pOverwriteIf true, re-generate tangents data regardless of availability, otherwise left untouched if exist.
pIgnoreTangentFlipIf true, don't test for the tangent flip when deciding which smoothing group to assign.
Returns
true if successfully generated tangents data, or if already available and pOverwrite is false.

Friends And Related Function Documentation

◆ fbxsdk ::FbxManager

friend class fbxsdk ::FbxManager
friend

Definition at line 34 of file fbxmesh.h.

◆ fbxsdk ::FbxNew [1/47]

T* fbxsdk ::FbxNew ( )
friend

◆ fbxsdk ::FbxNew [2/47]

T* fbxsdk ::FbxNew ( T1 &  p1)
friend

◆ fbxsdk ::FbxNew [3/47]

T* fbxsdk ::FbxNew ( const T1 &  p1)
friend

◆ fbxsdk ::FbxNew [4/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2 
)
friend

◆ fbxsdk ::FbxNew [5/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2 
)
friend

◆ fbxsdk ::FbxNew [6/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2 
)
friend

◆ fbxsdk ::FbxNew [7/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2 
)
friend

◆ fbxsdk ::FbxNew [8/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [9/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [10/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [11/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [12/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [13/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [14/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [15/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3 
)
friend

◆ fbxsdk ::FbxNew [16/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [17/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [18/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [19/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [20/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [21/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [22/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [23/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [24/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [25/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [26/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [27/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [28/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [29/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [30/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [31/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4 
)
friend

◆ fbxsdk ::FbxNew [32/47]

T* fbxsdk ::FbxNew ( T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [33/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [34/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [35/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
const T3 &  p3,
T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [36/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
const T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [37/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
T2 &  p2,
T3 &  p3,
T4 &  p4,
const T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [38/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [39/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
const T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [40/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
T3 &  p3,
T4 &  p4,
const T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [41/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [42/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
T4 &  p4,
const T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [43/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5 
)
friend

◆ fbxsdk ::FbxNew [44/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6 
)
friend

◆ fbxsdk ::FbxNew [45/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7 
)
friend

◆ fbxsdk ::FbxNew [46/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7,
const T8 &  p8 
)
friend

◆ fbxsdk ::FbxNew [47/47]

T* fbxsdk ::FbxNew ( const T1 &  p1,
const T2 &  p2,
const T3 &  p3,
const T4 &  p4,
const T5 &  p5,
const T6 &  p6,
const T7 &  p7,
const T8 &  p8,
const T9 &  p9 
)
friend

◆ fbxsdk ::FbxDelete [1/2]

void fbxsdk ::FbxDelete ( T *  p)
friend

◆ fbxsdk ::FbxDelete [2/2]

void fbxsdk ::FbxDelete ( const T *  p)
friend

◆ fbxsdk ::FbxNewArray

T* fbxsdk ::FbxNewArray ( const int  n)
friend

◆ fbxsdk ::FbxDeleteArray

void fbxsdk ::FbxDeleteArray ( T *  p)
friend

Member Data Documentation

◆ ClassId

FbxClassId ClassId
static

Definition at line 34 of file fbxmesh.h.


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