Public Member Functions | Friends

FbxLayer Class Reference

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


Search for all occurrences

Detailed Description

FbxLayer class provides a base for the layering mechanism.

A layer can contain one or more of the following layer elements:

A typical layer for a Mesh contains Normals, UVs and Materials. A typical layer for NURBS contains only Materials. In the case of the NURBS, the NURBS' parameterization is used for the UVs; no UVs should be specified.

In most cases, you only need a single layer to describe a geometry. Many applications only support what is defined on the first layer. Take this into account when you fill the layer. For example, it is legal to define the Layer 0 with the UVs and then define the model's Normals on layer 1. However if you construct a file this way, it may not be imported correctly in other applications. Store the Normals in Layer 0 to avoid problems.

Since FBX SDK 2011, Textures are connected to the properties of FbxSurfaceMaterial derived classes. FbxLayerElementTexture is no longer used. See the code example in FbxLayerElementTexture for how to connect a texture.

Since FBX SDK 2011, texture layering is achieved by FbxLayeredTexture. See the code example in FbxLayeredTexture for how to blend textures.

Normally, you can access layer from FbxLayerContainer like FbxGeometry. For example,

 FbxMesh* mesh;
 FbxLayer* layer0 = mesh->GetLayer(0);
 FbxLayerElementNormal* normals = layer0->GetNormals();
See also:
FbxLayerElement
FbxLayerElementNormal
FbxLayerElementBinormal
FbxLayerElementTangent
FbxLayerElementMaterial
FbxLayerElementPolygonGroup
FbxLayerElementUV
FbxLayerElementVertexColor
FbxLayerElementSmoothing
FbxLayerElementCrease
FbxLayerElementUserData
FbxLayerElementHole
FbxLayerElementVisibility
Examples:

Instances/main.cxx.

Definition at line 2436 of file fbxlayer.h.

#include <fbxlayer.h>

List of all members.

Public Member Functions

  FBXSDK_FRIEND_NEW ()
virtual int  MemoryUsage () const

Friends

class  FbxLayerContainer

Layer Element Management

FbxLayerElementNormal GetNormals ()
  Returns this layer's Normals description .
FbxLayerElementNormal const *  GetNormals () const
  Returns this layer's Normals description .
FbxLayerElementTangent GetTangents ()
  Returns this layer's Tangents description.
FbxLayerElementTangent const *  GetTangents () const
  Returns this layer's Tangents description.
FbxLayerElementBinormal GetBinormals ()
  Returns this layer's Binormals description.
FbxLayerElementBinormal const *  GetBinormals () const
  Returns this layer's Binormals description.
FbxLayerElementMaterial GetMaterials ()
  Returns this layer's Materials description.
FbxLayerElementMaterial const *  GetMaterials () const
  Returns this layer's Materials description.
FbxLayerElementPolygonGroup GetPolygonGroups ()
  Returns this layer's Polygon Groups description.
FbxLayerElementPolygonGroup const *  GetPolygonGroups () const
  Returns this layer's Polygon Groups description.
FbxLayerElementUV GetUVs (FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
  Returns this layer's UV description.
FbxLayerElementUV const *  GetUVs (FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse) const
  Returns this layer's UV description.
int  GetUVSetCount () const
  Returns the number of different UV sets in this layer.
FbxArray< FbxLayerElement::EType GetUVSetChannels () const
  Returns an array that describes which UV sets are in this layer.
FbxArray< FbxLayerElementUV
const * > 
GetUVSets () const
  Returns an array of UV sets in this layer.
FbxLayerElementVertexColor GetVertexColors ()
  Returns this layer's Vertex Colors description.
FbxLayerElementVertexColor const *  GetVertexColors () const
  Returns this layer's Vertex Colors description.
FbxLayerElementSmoothing GetSmoothing ()
  Returns this layer's Smoothing description.
FbxLayerElementSmoothing const *  GetSmoothing () const
  Returns this layer's Smoothing description.
FbxLayerElementCrease GetVertexCrease ()
  Returns this layer's vertex crease description.
FbxLayerElementCrease const *  GetVertexCrease () const
  Returns this layer's vertex crease description.
FbxLayerElementCrease GetEdgeCrease ()
  Returns this layer's edge crease description.
FbxLayerElementCrease const *  GetEdgeCrease () const
  Returns this layer's edge crease description.
FbxLayerElementHole GetHole ()
  Returns this layer's Hole description.
FbxLayerElementHole const *  GetHole () const
  Returns this layer's Hole description.
FbxLayerElementUserData GetUserData ()
  Returns this layer's User Data.
FbxLayerElementUserData const *  GetUserData () const
  Returns this layer's User Data.
FbxLayerElementVisibility GetVisibility ()
  Returns this layer's visibility.
FbxLayerElementVisibility const *  GetVisibility () const
  Returns this layer's visibility.
FbxLayerElementTexture GetTextures (FbxLayerElement::EType pType)
  Returns this layer's Textures description.
FbxLayerElementTexture const *  GetTextures (FbxLayerElement::EType pType) const
  Returns this layer's Textures description.
void  SetTextures (FbxLayerElement::EType pType, FbxLayerElementTexture *pTextures)
  Sets this layer's Textures description.
FbxLayerElement GetLayerElementOfType (FbxLayerElement::EType pType, bool pIsUV=false)
  Returns the specified type of layer element description for this layer.
FbxLayerElement const *  GetLayerElementOfType (FbxLayerElement::EType pType, bool pIsUV=false) const
  Returns the specified type of layer element description for this layer.
void  SetNormals (FbxLayerElementNormal *pNormals)
  Sets this layer's Normals description.
void  SetBinormals (FbxLayerElementBinormal *pBinormals)
  Sets this layer's Binormals description.
void  SetTangents (FbxLayerElementTangent *pTangents)
  Sets this layer's Tangents description.
void  SetMaterials (FbxLayerElementMaterial *pMaterials)
  Sets this layer's Materials description.
void  SetPolygonGroups (FbxLayerElementPolygonGroup *pPolygonGroups)
  Sets this layer's Polygon Groups description.
void  SetUVs (FbxLayerElementUV *pUVs, FbxLayerElement::EType pTypeIdentifier=FbxLayerElement::eTextureDiffuse)
  Sets this layer's UVs description.
void  SetVertexColors (FbxLayerElementVertexColor *pVertexColors)
  Sets this layer's Vertex Colors description.
void  SetSmoothing (FbxLayerElementSmoothing *pSmoothing)
  Sets this layer's Smoothing description.
void  SetVertexCrease (FbxLayerElementCrease *pCrease)
  Sets this layer's Vertex Crease description.
void  SetEdgeCrease (FbxLayerElementCrease *pCrease)
  Sets this layer's Edge Crease description.
void  SetHole (FbxLayerElementHole *pHole)
  Sets this layer's Hole description.
void  SetUserData (FbxLayerElementUserData *pUserData)
  Sets this layer's User Data.
void  SetVisibility (FbxLayerElementVisibility *pVisibility)
  Sets this layer's the visibility.
void  SetLayerElementOfType (FbxLayerElement *pLayerElement, FbxLayerElement::EType pType, bool pIsUV=false)
  Sets the specified type of layer element description for this layer.
FbxLayerElement CreateLayerElementOfType (FbxLayerElement::EType pType, bool pIsUV=false)
  Creates the specified type of layer element description for this layer.
void  Clone (FbxLayer const &pSrcLayer, FbxManager *pSdkManager)
  Clone function.
FbxLayer operator= (FbxLayer const &pSrcLayer)
  Assignment operator.

Serialization section

bool  ContentWriteTo (FbxStream &pStream) const
bool  ContentReadFrom (const FbxStream &pStream)

Member Function Documentation

FBXSDK_FRIEND_NEW ( )
FbxLayerElementNormal* GetNormals ( )

Returns this layer's Normals description .

Returns:
A pointer to the Normals layer element, or NULL if no Normals layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Normals defined.
FbxLayerElementNormal const* GetNormals ( ) const

Returns this layer's Normals description .

Returns:
A pointer to the Normals layer element, or NULL if no Normals layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Normals defined.
FbxLayerElementTangent* GetTangents ( )

Returns this layer's Tangents description.

Returns:
A pointer to the Tangents layer element, or NULL if no Tangents layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Tangents defined.
FbxLayerElementTangent const* GetTangents ( ) const

Returns this layer's Tangents description.

Returns:
A pointer to the Tangents layer element, or NULL if no Tangents layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Tangents defined.
FbxLayerElementBinormal* GetBinormals ( )

Returns this layer's Binormals description.

Returns:
A pointer to the Binormals layer element, or NULL if no Binormals layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Binormals defined.
FbxLayerElementBinormal const* GetBinormals ( ) const

Returns this layer's Binormals description.

Returns:
A pointer to the Binormals layer element, or NULL if no Binormals layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Binormals defined.
FbxLayerElementMaterial* GetMaterials ( )

Returns this layer's Materials description.

Returns:
A pointer to the Materials layer element, or NULL if no Materials layer element is defined in this layer.
FbxLayerElementMaterial const* GetMaterials ( ) const

Returns this layer's Materials description.

Returns:
A pointer to the Materials layer element, or NULL if no Materials layer element is defined in this layer.
FbxLayerElementPolygonGroup* GetPolygonGroups ( )

Returns this layer's Polygon Groups description.

Returns:
A pointer to the Polygon Groups layer element, or NULL if no Polygon Groups layer element is defined in this layer.
FbxLayerElementPolygonGroup const* GetPolygonGroups ( ) const

Returns this layer's Polygon Groups description.

Returns:
A pointer to the Polygon Groups layer element, or NULL if no Polygon Groups layer element is defined in this layer.
FbxLayerElementUV* GetUVs ( FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse )

Returns this layer's UV description.

Parameters:
pTypeIdentifier Layer element type identifier, should be a texture type identifier.
Returns:
A pointer to the UVs layer element, or NULL if no UV is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have UVs defined. The NURBS/Patch parameterization is used as UV parameters to map a texture.
FbxLayerElementUV const* GetUVs ( FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse ) const

Returns this layer's UV description.

Parameters:
pTypeIdentifier Layer element type identifier, should be a texture type identifier.
Returns:
A pointer to the UVs layer element, or NULL if no UV is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have UVs defined. The NURBS/Patch parameterization is used as UV parameters to map a texture.
int GetUVSetCount ( ) const

Returns the number of different UV sets in this layer.

FbxArray<FbxLayerElement::EType> GetUVSetChannels ( ) const

Returns an array that describes which UV sets are in this layer.

FbxArray<FbxLayerElementUV const*> GetUVSets ( ) const

Returns an array of UV sets in this layer.

FbxLayerElementVertexColor* GetVertexColors ( )

Returns this layer's Vertex Colors description.

Returns:
A pointer to the Vertex Colors layer element, or NULL if no Vertex Color layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Vertex Colors defined, since no vertex exists.
FbxLayerElementVertexColor const* GetVertexColors ( ) const

Returns this layer's Vertex Colors description.

Returns:
A pointer to the Vertex Colors layer element, or NULL if no Vertex Color layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Vertex Colors defined, since no vertex exists.
FbxLayerElementSmoothing* GetSmoothing ( )

Returns this layer's Smoothing description.

Returns:
A pointer to the Smoothing layer element, or NULL if no Smoothing layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Smoothing defined.
FbxLayerElementSmoothing const* GetSmoothing ( ) const

Returns this layer's Smoothing description.

Returns:
A pointer to the Smoothing layer element, or NULL if no Smoothing layer element is defined in this layer.
Remarks:
FbxNurbs or FbxPatch geometry should not have Smoothing defined.
FbxLayerElementCrease* GetVertexCrease ( )

Returns this layer's vertex crease description.

Returns:
A pointer to the Crease layer element, or NULL if no Crease layer element is defined in this layer.
Remarks:
Crease info should only be defined when the geometry is FbxSubDiv.
FbxLayerElementCrease const* GetVertexCrease ( ) const

Returns this layer's vertex crease description.

Returns:
A pointer to the Crease layer element, or NULL if no Crease layer element is defined in this layer.
Remarks:
Crease info should only be defined when the geometry is FbxSubDiv.
FbxLayerElementCrease* GetEdgeCrease ( )

Returns this layer's edge crease description.

Returns:
A pointer to the Crease layer element, or NULL if no Crease layer element is defined in this layer.
Remarks:
Crease info should only be defined when the geometry is FbxSubDiv.
FbxLayerElementCrease const* GetEdgeCrease ( ) const

Returns this layer's edge crease description.

Returns:
A pointer to the Crease layer element, or NULL if no Crease layer element is defined in this layer.
Remarks:
Crease info should only be defined when the geometry is FbxSubDiv.
FbxLayerElementHole* GetHole ( )

Returns this layer's Hole description.

Returns:
A pointer to the Hole layer element, or NULL if no Hole layer element is defined in this layer.
Remarks:
Hole info should only be defined when the geometry is FbxMesh.
FbxLayerElementHole const* GetHole ( ) const

Returns this layer's Hole description.

Returns:
A pointer to the Hole layer element, or NULL if no Hole layer element is defined in this layer.
Remarks:
Hole info should only be defined when the geometry is FbxMesh.
FbxLayerElementUserData* GetUserData ( )

Returns this layer's User Data.

Returns:
A pointer to the User Data layer element, or NULL if no User Data layer element is defined in this layer.
FbxLayerElementUserData const* GetUserData ( ) const

Returns this layer's User Data.

Returns:
A pointer to the User Data layer element, or NULL if no User Data layer element is defined in this layer.
FbxLayerElementVisibility* GetVisibility ( )

Returns this layer's visibility.

Returns:
A pointer to the visibility layer element, or NULL if no visibility layer element is defined in this layer.
FbxLayerElementVisibility const* GetVisibility ( ) const

Returns this layer's visibility.

Returns:
A pointer to the visibility layer element, or NULL if no visibility layer element is defined in this layer.

Returns this layer's Textures description.

Parameters:
pType Layer element type, should be a texture type identifier.
Returns:
A pointer to the Textures layer element, or NULL if no Textures layer element is defined in this layer.
FbxLayerElementTexture const* GetTextures ( FbxLayerElement::EType  pType ) const

Returns this layer's Textures description.

Parameters:
pType Layer element type, should be a texture type identifier.
Returns:
A pointer to the Textures layer element, or NULL if no Textures layer element is defined in this layer.
void SetTextures ( FbxLayerElement::EType  pType,
FbxLayerElementTexture pTextures 
)

Sets this layer's Textures description.

Parameters:
pType Texture type identifier.
pTextures A pointer to the Textures layer element, or NULL to remove the Textures definition.
FbxLayerElement* GetLayerElementOfType ( FbxLayerElement::EType  pType,
bool  pIsUV = false 
)

Returns the specified type of layer element description for this layer.

Parameters:
pType The required Layer element type.
pIsUV If true, requests the UV layer element that corresponds with the specified texture type.
Returns:
A pointer to the requested layer element, or NULL if the layer element is not defined in this layer.
FbxLayerElement const* GetLayerElementOfType ( FbxLayerElement::EType  pType,
bool  pIsUV = false 
) const

Returns the specified type of layer element description for this layer.

Parameters:
pType The required Layer element type.
pIsUV If true, requests the UV layer element that corresponds with the specified texture type.
Returns:
A pointer to the requested layer element, or NULL if the layer element is not defined in this layer.
void SetNormals ( FbxLayerElementNormal pNormals )

Sets this layer's Normals description.

Parameters:
pNormals A pointer to the Normals layer element, or NULL to remove the Normals definition.
Remarks:
FbxNurbs or FbxPatch geometry should not have Normals defined.
Examples:
Instances/main.cxx.
void SetBinormals ( FbxLayerElementBinormal pBinormals )

Sets this layer's Binormals description.

Parameters:
pBinormals A pointer to the Binormals layer element, or NULL to remove the Binormals definition.
Remarks:
FbxNurbs or FbxPatch geometry should not have Binormals defined.
void SetTangents ( FbxLayerElementTangent pTangents )

Sets this layer's Tangents description.

Parameters:
pTangents A pointer to the Tangents layer element, or NULL to remove the Tangents definition.
Remarks:
FbxNurbs or FbxPatch geometry should not have Tangents defined.
void SetMaterials ( FbxLayerElementMaterial pMaterials )

Sets this layer's Materials description.

Parameters:
pMaterials A pointer to the Materials layer element, or NULL to remove the Material definition.
Examples:
Instances/main.cxx.
void SetPolygonGroups ( FbxLayerElementPolygonGroup pPolygonGroups )

Sets this layer's Polygon Groups description.

Parameters:
pPolygonGroups A pointer to the Polygon Groups layer element, or NULL to remove the Polygon Group definition.
void SetUVs ( FbxLayerElementUV pUVs,
FbxLayerElement::EType  pTypeIdentifier = FbxLayerElement::eTextureDiffuse 
)

Sets this layer's UVs description.

Parameters:
pUVs A pointer to the UVs layer element, or NULL to remove the UV definition.
pTypeIdentifier Layer element type, should be texture type.
Remarks:
FbxNurbs or FbxPatch geometry should not have UVs defined. The NURBS/Patch parameterization is used as UV parameters to map a texture.
Examples:
Instances/main.cxx.
void SetVertexColors ( FbxLayerElementVertexColor pVertexColors )

Sets this layer's Vertex Colors description.

Parameters:
pVertexColors A pointer to the Vertex Colors layer element, or NULL to remove the Vertex Color definition.
Remarks:
FbxNurbs or FbxPatch geometry should not have Vertex Colors defined, since no vertex exists.
void SetSmoothing ( FbxLayerElementSmoothing pSmoothing )

Sets this layer's Smoothing description.

Parameters:
pSmoothing A pointer to the Smoothing layer element, or NULL to remove the Smoothing definition.
Remarks:
FbxNurbs or FbxPatch geometry should not have Smoothing defined.
void SetVertexCrease ( FbxLayerElementCrease pCrease )

Sets this layer's Vertex Crease description.

Parameters:
pCrease A pointer to the Vertex Crease layer element, or NULL to remove the Crease definition.
Remarks:
Crease should only be defined when the geometry is FbxSubDiv.
void SetEdgeCrease ( FbxLayerElementCrease pCrease )

Sets this layer's Edge Crease description.

Parameters:
pCrease A pointer to the Edge Crease layer element, or NULL to remove the Crease definition.
Remarks:
Crease should only be defined when the geometry is FbxSubDiv.
void SetHole ( FbxLayerElementHole pHole )

Sets this layer's Hole description.

Parameters:
pHole A pointer to the Hole layer element, or NULL to remove the Hole definition.
Remarks:
Hole should only be defined when the geometry is FbxMesh.
void SetUserData ( FbxLayerElementUserData pUserData )

Sets this layer's User Data.

Parameters:
pUserData A pointer to the User Data layer element, or NULL to remove the User Data.
void SetVisibility ( FbxLayerElementVisibility pVisibility )

Sets this layer's the visibility.

Parameters:
pVisibility A pointer to the visibility layer element, or NULL to remove the visibility.
void SetLayerElementOfType ( FbxLayerElement pLayerElement,
FbxLayerElement::EType  pType,
bool  pIsUV = false 
)

Sets the specified type of layer element description for this layer.

Parameters:
pLayerElement A pointer to the layer element, or NULL to remove the layer element.
pType The required Layer element type.
pIsUV If true, requests the UV layer element that corresponds with the specified texture type.
FbxLayerElement* CreateLayerElementOfType ( FbxLayerElement::EType  pType,
bool  pIsUV = false 
)

Creates the specified type of layer element description for this layer.

Parameters:
pType The required Layer element type.
pIsUV When true, requests the UV LayerElement that corresponds with the specified Layer Element type (only applies to TEXTURE type layer elements).
Returns:
A pointer to the newly created layer element, or NULL if the layer element has not been created for this layer.
void Clone ( FbxLayer const &  pSrcLayer,
FbxManager pSdkManager 
)

Clone function.

Parameters:
pSrcLayer The source layer to be cloned.
pSdkManager
FbxLayer& operator= ( FbxLayer const &  pSrcLayer ) [protected]

Assignment operator.

bool ContentWriteTo ( FbxStream pStream ) const
bool ContentReadFrom ( const FbxStream pStream )
virtual int MemoryUsage ( ) const [virtual]

Friends And Related Function Documentation

friend class FbxLayerContainer [friend]

Definition at line 2809 of file fbxlayer.h.


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

FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer
FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer FbxLayer