FBX C++ API Reference
fbxlayer.h File Reference

Classes

class  FbxLayerElement
 Base class for elements of layers (FbxLayer). More...
 
class  LockAccessStatus
 
class  FbxLayerElementArray
 FbxLayerElementArray is the base class for FbxLayerElementArrayTemplate, it provides lock handling and data array manipulation of the data buffer for FbxLayerElement. More...
 
struct  FbxLayerElementArrayReadLock< T >
 
class  FbxLayerElementArrayTemplate< T >
 FbxLayerElementArrayTemplate provides data array manipulation of the data buffer for FbxLayerElement. More...
 
class  FbxLayerElementTemplate< Type >
 This class complements the FbxLayerElement class. More...
 
class  FbxLayerElementNormal
 Layer element for mapping Normals to a geometry. More...
 
class  FbxLayerElementBinormal
 Layer element for mapping Binormals to a geometry. More...
 
class  FbxLayerElementTangent
 Layer element for mapping Tangents to a geometry. More...
 
class  FbxLayerElementMaterial
 Layer element for mapping materials (FbxSurfaceMaterial) to a geometry. More...
 
class  FbxLayerElementMaterial::LayerElementArrayProxy
 
class  FbxLayerElementPolygonGroup
 Layer element for grouping related polygons together. More...
 
class  FbxLayerElementUV
 Layer element for mapping UVs to a geometry. More...
 
class  FbxLayerElementVertexColor
 Layer element for mapping Vertex Colors to a geometry. More...
 
class  FbxLayerElementUserData
 Layer element for mapping custom user data to a geometry. More...
 
class  FbxLayerElementSmoothing
 Layer element for indicating smoothness of components of a geometry. More...
 
class  FbxLayerElementCrease
 Layer element for indicating crease of components of a geometry. More...
 
class  FbxLayerElementHole
 Layer element for indicating hole of polygon of a geometry. More...
 
class  FbxLayerElementVisibility
 Layer element for indicating if specified components are shown/hidden. More...
 
class  FbxLayerElementTexture
 Layer element for mapping Textures to a geometry. More...
 
class  FbxLayer
 FbxLayer class provides a base for the layering mechanism. More...
 

Macros

#define FBXSDK_LAYER_ELEMENT_CREATE_DECLARE(classDesc)
 
#define FBXSDK_FOR_EACH_TEXTURE(lLayerIndex)   for((lLayerIndex)=0;(lLayerIndex)<FbxLayerElement::sTypeTextureCount;(lLayerIndex)++)
 Utility macro for iterating over texture layer elements. More...
 
#define FBXSDK_FOR_EACH_NON_TEXTURE(lLayerIndex)   for((lLayerIndex)=0;(lLayerIndex)<FbxLayerElement::sTypeNonTextureCount;(lLayerIndex)++)
 Utility macro for iterating over non-texture layer elements. More...
 
#define FBXSDK_TEXTURE_INDEX(ElementType)   (int(ElementType)-FbxLayerElement::sTypeTextureStartIndex)
 Utility macro for getting texture layer element index by type. More...
 
#define FBXSDK_TEXTURE_TYPE(TextureIndex)   (FbxLayerElement::EType((TextureIndex)+FbxLayerElement::sTypeTextureStartIndex))
 Utility macro for getting texture layer element type by index. More...
 
#define FBXSDK_NON_TEXTURE_INDEX(ElementType)   (int(ElementType)-FbxLayerElement::sTypeNonTextureStartIndex)
 Utility macro for getting non-texture layer element index by type. More...
 
#define FBXSDK_NON_TEXTURE_TYPE(Index)   (FbxLayerElement::EType((Index)+FbxLayerElement::sTypeNonTextureStartIndex))
 Utility macro for getting non-texture layer element type by index. More...
 

Typedefs

typedef FbxHandle * FbxRefPtr
 
typedef FbxLayerElementArrayFbxLayerElementArrayPtr
 
typedef FbxSurfaceMaterialFbxSurfaceMaterialPtr
 
typedef FbxTextureFbxTexturePtr
 
typedef FbxLayerElement FbxGeometryElement
 Defines geometry element classes. More...
 
typedef FbxLayerElementNormal FbxGeometryElementNormal
 
typedef FbxLayerElementBinormal FbxGeometryElementBinormal
 
typedef FbxLayerElementTangent FbxGeometryElementTangent
 
typedef FbxLayerElementMaterial FbxGeometryElementMaterial
 
typedef FbxLayerElementPolygonGroup FbxGeometryElementPolygonGroup
 
typedef FbxLayerElementUV FbxGeometryElementUV
 
typedef FbxLayerElementVertexColor FbxGeometryElementVertexColor
 
typedef FbxLayerElementUserData FbxGeometryElementUserData
 
typedef FbxLayerElementSmoothing FbxGeometryElementSmoothing
 
typedef FbxLayerElementCrease FbxGeometryElementCrease
 
typedef FbxLayerElementHole FbxGeometryElementHole
 
typedef FbxLayerElementVisibility FbxGeometryElementVisibility
 

Functions

EFbxType FbxTypeOf (const FbxRefPtr &)
 
EFbxType FbxTypeOf (const FbxLayerElementArrayPtr &)
 
EFbxType FbxTypeOf (const FbxSurfaceMaterialPtr &)
 
EFbxType FbxTypeOf (const FbxTexturePtr &)
 
int RemapIndexArrayTo (FbxLayerElement *pLayerEl, FbxLayerElement::EMappingMode pNewMapping, FbxLayerElementArrayTemplate< int > *pIndexArray)
 Remap the index array to a new EMappingMode. More...
 
template<class T >
FbxLayerElementArrayTemplate< T > & FbxGetDirectArray (FbxLayerElementUserData *pLayerElement, int pIndex, bool *pStatus)
 Returns the direct array with the given attribute index. More...
 
template<class T >
FbxLayerElementArrayTemplate< T > const & FbxGetDirectArray (FbxLayerElementUserData const *pLayerElement, int pIndex, bool *pStatus)
 Returns the direct array with the given attribute index. More...
 
template<class T >
FbxLayerElementArrayTemplate< T > & FbxGetDirectArray (FbxLayerElementUserData *pLayerElement, const char *pName, bool *pStatus)
 Returns the direct array with the given attribute name.The template type must match the attribute type with pName. More...
 
template<class T >
FbxLayerElementArrayTemplate< T > const & FbxGetDirectArray (FbxLayerElementUserData const *pLayerElement, const char *pName, bool *pStatus)
 Returns the direct array with the given attribute name.The template type must match the attribute type with pName. More...
 

Macro Definition Documentation

◆ FBXSDK_LAYER_ELEMENT_CREATE_DECLARE

#define FBXSDK_LAYER_ELEMENT_CREATE_DECLARE (   classDesc)
Value:
static Fbx##classDesc* Create(FbxLayerContainer* pOwner, const char* pName);
#define FBXSDK_FRIEND_NEW()
Definition: fbxnew.h:397
Contains a collection of FbxLayer objects.

Definition at line 1294 of file fbxlayer.h.

◆ FBXSDK_FOR_EACH_TEXTURE

#define FBXSDK_FOR_EACH_TEXTURE (   lLayerIndex)    for((lLayerIndex)=0;(lLayerIndex)<FbxLayerElement::sTypeTextureCount;(lLayerIndex)++)

Utility macro for iterating over texture layer elements.

Examples:
ImportScene/DisplayTexture.cxx.

Definition at line 2751 of file fbxlayer.h.

◆ FBXSDK_FOR_EACH_NON_TEXTURE

#define FBXSDK_FOR_EACH_NON_TEXTURE (   lLayerIndex)    for((lLayerIndex)=0;(lLayerIndex)<FbxLayerElement::sTypeNonTextureCount;(lLayerIndex)++)

Utility macro for iterating over non-texture layer elements.

Definition at line 2756 of file fbxlayer.h.

◆ FBXSDK_TEXTURE_INDEX

#define FBXSDK_TEXTURE_INDEX (   ElementType)    (int(ElementType)-FbxLayerElement::sTypeTextureStartIndex)

Utility macro for getting texture layer element index by type.

Definition at line 2761 of file fbxlayer.h.

◆ FBXSDK_TEXTURE_TYPE

#define FBXSDK_TEXTURE_TYPE (   TextureIndex)    (FbxLayerElement::EType((TextureIndex)+FbxLayerElement::sTypeTextureStartIndex))

Utility macro for getting texture layer element type by index.

Definition at line 2766 of file fbxlayer.h.

◆ FBXSDK_NON_TEXTURE_INDEX

#define FBXSDK_NON_TEXTURE_INDEX (   ElementType)    (int(ElementType)-FbxLayerElement::sTypeNonTextureStartIndex)

Utility macro for getting non-texture layer element index by type.

Definition at line 2771 of file fbxlayer.h.

◆ FBXSDK_NON_TEXTURE_TYPE

#define FBXSDK_NON_TEXTURE_TYPE (   Index)    (FbxLayerElement::EType((Index)+FbxLayerElement::sTypeNonTextureStartIndex))

Utility macro for getting non-texture layer element type by index.

Definition at line 2776 of file fbxlayer.h.

Typedef Documentation

◆ FbxRefPtr

typedef FbxHandle* FbxRefPtr

Definition at line 317 of file fbxlayer.h.

◆ FbxLayerElementArrayPtr

Definition at line 318 of file fbxlayer.h.

◆ FbxSurfaceMaterialPtr

Definition at line 319 of file fbxlayer.h.

◆ FbxTexturePtr

Definition at line 320 of file fbxlayer.h.

◆ FbxGeometryElement

Defines geometry element classes.

A geometry element describes how the geometry element is mapped to a geometry surface and how the mapping information is arranged in memory.

Remarks
Geometry elements are independent of layer elements and hide the complexity of layers.
FbxGeometryElementUV* lUVs = lMesh->GetElementUV("map1");
FbxGeometryElementUV::DirectArrayType lDirectArray = lUVs->GetDirectArray();
int lDirectUVCount = lDirectArray.GetCount();
FbxVector2 lFirstUV = lDirectArray[0];
See also
FbxGeometryBase

Definition at line 2790 of file fbxlayer.h.

◆ FbxGeometryElementNormal

Definition at line 2791 of file fbxlayer.h.

◆ FbxGeometryElementBinormal

◆ FbxGeometryElementTangent

Definition at line 2793 of file fbxlayer.h.

◆ FbxGeometryElementMaterial

◆ FbxGeometryElementPolygonGroup

◆ FbxGeometryElementUV

Definition at line 2796 of file fbxlayer.h.

◆ FbxGeometryElementVertexColor

◆ FbxGeometryElementUserData

◆ FbxGeometryElementSmoothing

◆ FbxGeometryElementCrease

Definition at line 2800 of file fbxlayer.h.

◆ FbxGeometryElementHole

Definition at line 2801 of file fbxlayer.h.

◆ FbxGeometryElementVisibility

Function Documentation

◆ FbxTypeOf() [1/4]

EFbxType FbxTypeOf ( const FbxRefPtr )
inline

Definition at line 322 of file fbxlayer.h.

322 { return eFbxReference; }
Reference to object or property.

◆ FbxTypeOf() [2/4]

EFbxType FbxTypeOf ( const FbxLayerElementArrayPtr )
inline

Definition at line 323 of file fbxlayer.h.

323 { return eFbxReference; }
Reference to object or property.

◆ FbxTypeOf() [3/4]

EFbxType FbxTypeOf ( const FbxSurfaceMaterialPtr )
inline

Definition at line 324 of file fbxlayer.h.

324 { return eFbxReference; }
Reference to object or property.

◆ FbxTypeOf() [4/4]

EFbxType FbxTypeOf ( const FbxTexturePtr )
inline

Definition at line 325 of file fbxlayer.h.

325 { return eFbxReference; }
Reference to object or property.

◆ RemapIndexArrayTo()

int RemapIndexArrayTo ( FbxLayerElement pLayerEl,
FbxLayerElement::EMappingMode  pNewMapping,
FbxLayerElementArrayTemplate< int > *  pIndexArray 
)

Remap the index array to a new EMappingMode.

Parameters
pLayerElThe layer element to remap
pNewMappingThe new mapping mode
pIndexArrayThe index array to modify
Returns
return -1 if the layer element is FbxLayerElement::eDirect 0 if layer element or index array is NULL and 1 if the remap is successful

◆ FbxGetDirectArray() [1/4]

FbxLayerElementArrayTemplate< T > & FbxGetDirectArray ( FbxLayerElementUserData pLayerElement,
int  pIndex,
bool *  pStatus 
)
inline

Returns the direct array with the given attribute index.

The template type must match the attribute type at pIndex.

Parameters
pLayerElementThe layer element whose direct array to return.
pIndexThe direct array index
pStatusWill be set to false if accessing the direct array encounters an error.
Returns
If pStatus receives true, the direct array at the given index is returned. Otherwise the return value is undefined.

Definition at line 1971 of file fbxlayer.h.

1972 {
1973  return *(FbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pIndex,pStatus);
1974 }
FbxLayerElementArrayTemplate provides data array manipulation of the data buffer for FbxLayerElement...
Definition: fbxlayer.h:858
FbxLayerElementArrayTemplate< void * > * GetDirectArrayVoid(int pIndex, bool *pStatus=((void *) 0))
Returns the direct array with the specified attribute index.
Definition: fbxlayer.h:1546

◆ FbxGetDirectArray() [2/4]

FbxLayerElementArrayTemplate< T > const & FbxGetDirectArray ( FbxLayerElementUserData const *  pLayerElement,
int  pIndex,
bool *  pStatus 
)
inline

Returns the direct array with the given attribute index.

The template type must match the attribute type at pIndex.

Parameters
pLayerElementThe layer element whose direct array to return.
pIndexThe direct array index
pStatusWill be set to false if accessing the direct array encounters an error.
Returns
If pStatus receives true, the direct array at the given index is returned. Otherwise the return value is undefined.

Definition at line 1984 of file fbxlayer.h.

1985 {
1986  return *(const FbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pIndex,pStatus);
1987 }
FbxLayerElementArrayTemplate provides data array manipulation of the data buffer for FbxLayerElement...
Definition: fbxlayer.h:858

◆ FbxGetDirectArray() [3/4]

FbxLayerElementArrayTemplate< T > & FbxGetDirectArray ( FbxLayerElementUserData pLayerElement,
const char *  pName,
bool *  pStatus 
)
inline

Returns the direct array with the given attribute name.The template type must match the attribute type with pName.

Parameters
pLayerElementThe layer element whose direct array to return.
pNameThe given attribute name.
pStatusWill be set to false if accessing the direct array encounters an error.
Returns
If pStatus receives true, the direct array at the given index is returned. Otherwise the return value is undefined.

Definition at line 1998 of file fbxlayer.h.

1999 {
2000  return *(FbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pName,pStatus);
2001 }
FbxLayerElementArrayTemplate provides data array manipulation of the data buffer for FbxLayerElement...
Definition: fbxlayer.h:858
FbxLayerElementArrayTemplate< void * > * GetDirectArrayVoid(int pIndex, bool *pStatus=((void *) 0))
Returns the direct array with the specified attribute index.
Definition: fbxlayer.h:1546

◆ FbxGetDirectArray() [4/4]

FbxLayerElementArrayTemplate< T > const & FbxGetDirectArray ( FbxLayerElementUserData const *  pLayerElement,
const char *  pName,
bool *  pStatus 
)
inline

Returns the direct array with the given attribute name.The template type must match the attribute type with pName.

Parameters
pLayerElementThe layer element whose direct array to return.
pNameThe given attribute name.
pStatusWill be set to false if accessing the direct array encounters an error.
Returns
If pStatus receives true, the direct array at the given index is returned. Otherwise the return value is undefined.

Definition at line 2011 of file fbxlayer.h.

2012 {
2013  return *(const FbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pName,pStatus);
2014 }
FbxLayerElementArrayTemplate provides data array manipulation of the data buffer for FbxLayerElement...
Definition: fbxlayer.h:858

Go to the source code of this file.