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

FbxLayerElement Class Reference

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


Search for all occurrences

Detailed Description

Base class for elements of layers (FbxLayer).

A layer element type is identified by EType. A FbxLayerElement describes how the layer element is mapped to a geometry surface and how the mapping information is arranged in memory. A FbxLayerElement contains Normals, UVs or other kind of information.

See also:
FbxLayer
FbxLayerElement::EMappingMode
FbxLayerElement::EReferenceMode

Definition at line 38 of file fbxlayer.h.

#include <fbxlayer.h>

Inheritance diagram for FbxLayerElement:
Inheritance graph
[legend]

List of all members.

Public Types

enum  EType {
  eUnknown, eNormal, eBiNormal, eTangent,
  eMaterial, ePolygonGroup, eUV, eVertexColor,
  eSmoothing, eVertexCrease, eEdgeCrease, eHole,
  eUserData, eVisibility, eTextureDiffuse, eTextureDiffuseFactor,
  eTextureEmissive, eTextureEmissiveFactor, eTextureAmbient, eTextureAmbientFactor,
  eTextureSpecular, eTextureSpecularFactor, eTextureShininess, eTextureNormalMap,
  eTextureBump, eTextureTransparency, eTextureTransparencyFactor, eTextureReflection,
  eTextureReflectionFactor, eTextureDisplacement, eTextureDisplacementVector, eTypeCount
}
 

Layer Element type identifier.

More...
enum  EMappingMode {
  eNone, eByControlPoint, eByPolygonVertex, eByPolygon,
  eByEdge, eAllSame
}
 

Determines how the element is mapped to a surface.

More...
enum  EReferenceMode { eDirect, eIndex, eIndexToDirect }
 

Determines how the mapping information is stored in the array of coordinates.

More...

Public Member Functions

void SetMappingMode (EMappingMode pMappingMode)
 Sets the Mapping Mode.
void SetReferenceMode (EReferenceMode pReferenceMode)
 Sets the Reference Mode.
EMappingMode GetMappingMode () const
 Returns the Mapping Mode.
EReferenceMode GetReferenceMode () const
 Returns the Reference Mode.
void SetName (const char *pName)
 Sets the name of this object.
const char * GetName () const
 Returns the name of this object.
bool operator== (const FbxLayerElement &pOther) const
 Equivalence operator.
FbxLayerElementoperator= (FbxLayerElement const &pOther)
 Assignment operator.
void Destroy ()
 Removes this layer element from its owner and delete it.
virtual bool Clear ()
 Clears all the data from this layer element.
void SetType (const FbxDataType *pType)
const FbxLayerContainerGetOwner () const
virtual int MemorySize () const
virtual bool ContentWriteTo (FbxStream &pStream) const
virtual bool ContentReadFrom (const FbxStream &pStream)

Static Public Attributes

static const int sTypeTextureStartIndex = int(eTextureDiffuse)
 The start index of texture type layer elements.
static const int sTypeTextureEndIndex = int(eTypeCount) - 1
 The end index of texture type layer elements.
static const int sTypeTextureCount = sTypeTextureEndIndex - sTypeTextureStartIndex + 1
 The count of texture type layer elements.
static const int sTypeNonTextureStartIndex = int(eNormal)
 The start index of non-texture type layer elements.
static const int sTypeNonTextureEndIndex = int(eVisibility)
 The end index of non-texture type layer elements.
static const int sTypeNonTextureCount = sTypeNonTextureEndIndex - sTypeNonTextureStartIndex + 1
 The count of non-texture type layer elements.
static const char *const sTextureNames []
 Array of names of texture type layer elements.
static const char *const sTextureUVNames []
 Array of names of UV layer elements.
static const char *const sNonTextureNames []
 Array of names of non-texture type layer elements.
static const FbxDataType sTextureDataTypes []
 Array of texture types.
static const char *const sTextureChannelNames []
 Array of texture channels.

Protected Member Functions

 FbxLayerElement ()
virtual ~FbxLayerElement ()
void Destruct ()
virtual void SetOwner (FbxLayerContainer *pOwner)
 FBXSDK_FRIEND_NEW ()

Protected Attributes

EMappingMode mMappingMode
EReferenceMode mReferenceMode
FbxString mName
const FbxDataTypemType
FbxLayerContainermOwner

Friends

class FbxLayerContainer

Member Enumeration Documentation

enum EType

Layer Element type identifier.

Enumerator:
eUnknown 
eNormal 
eBiNormal 
eTangent 
eMaterial 
ePolygonGroup 
eUV 
eVertexColor 
eSmoothing 
eVertexCrease 
eEdgeCrease 
eHole 
eUserData 
eVisibility 
eTextureDiffuse 
eTextureDiffuseFactor 
eTextureEmissive 
eTextureEmissiveFactor 
eTextureAmbient 
eTextureAmbientFactor 
eTextureSpecular 
eTextureSpecularFactor 
eTextureShininess 
eTextureNormalMap 
eTextureBump 
eTextureTransparency 
eTextureTransparencyFactor 
eTextureReflection 
eTextureReflectionFactor 
eTextureDisplacement 
eTextureDisplacementVector 
eTypeCount 

Definition at line 75 of file fbxlayer.h.

Determines how the element is mapped to a surface.

  • eNone The mapping is undetermined.
  • eByControlPoint There will be one mapping coordinate for each surface control point/vertex.
  • eByPolygonVertex There will be one mapping coordinate for each vertex, for every polygon of which it is a part. This means that a vertex will have as many mapping coordinates as polygons of which it is a part.
  • eByPolygon There can be only one mapping coordinate for the whole polygon.
  • eByEdge There will be one mapping coordinate for each unique edge in the mesh. This is meant to be used with smoothing layer elements.
  • eAllSame There can be only one mapping coordinate for the whole surface.
Enumerator:
eNone 
eByControlPoint 
eByPolygonVertex 
eByPolygon 
eByEdge 
eAllSame 

Definition at line 140 of file fbxlayer.h.

Determines how the mapping information is stored in the array of coordinates.

  • eDirect This indicates that the mapping information for the n'th element is found in the n'th place of FbxLayerElementTemplate::mDirectArray.
  • eIndex, This symbol is kept for backward compatibility with FBX v5.0 files. In FBX v6.0 and higher, this symbol is replaced with eIndexToDirect.
  • eIndexToDirect This indicates that the FbxLayerElementTemplate::mIndexArray contains, for the n'th element, an index in the FbxLayerElementTemplate::mDirectArray array of mapping elements. eIndexToDirect is usually useful for storing eByPolygonVertex mapping mode elements coordinates. Since the same coordinates are usually repeated many times, this saves spaces by storing the coordinate only one time and then referring to them with an index. Materials and Textures are also referenced with this mode and the actual Material/Texture can be accessed via the FbxLayerElementTemplate::mDirectArray
Enumerator:
eDirect 
eIndex 
eIndexToDirect 

Definition at line 163 of file fbxlayer.h.


Constructor & Destructor Documentation

FbxLayerElement ( ) [inline, protected]

Definition at line 242 of file fbxlayer.h.

virtual ~FbxLayerElement ( ) [inline, protected, virtual]

Definition at line 250 of file fbxlayer.h.

    {
    }

Member Function Documentation

void SetMappingMode ( EMappingMode  pMappingMode) [inline]

Sets the Mapping Mode.

Parameters:
pMappingModeSpecifies the way that layer element is mapped to a surface.

Definition at line 174 of file fbxlayer.h.

{ mMappingMode = pMappingMode; }
void SetReferenceMode ( EReferenceMode  pReferenceMode) [inline]

Sets the Reference Mode.

Parameters:
pReferenceModeSpecifies the reference mode.

Reimplemented in FbxLayerElementSmoothing, FbxLayerElementCrease, and FbxLayerElementHole.

Definition at line 179 of file fbxlayer.h.

{ mReferenceMode = pReferenceMode; }
EMappingMode GetMappingMode ( ) const [inline]

Returns the Mapping Mode.

Returns:
The current Mapping Mode.

Definition at line 184 of file fbxlayer.h.

{ return mMappingMode; }
EReferenceMode GetReferenceMode ( ) const [inline]

Returns the Reference Mode.

Returns:
The current Reference Mode.

Definition at line 189 of file fbxlayer.h.

{ return mReferenceMode; }
void SetName ( const char *  pName) [inline]

Sets the name of this object.

Parameters:
pNameSpecifies the name of this LayerElement object.

Definition at line 194 of file fbxlayer.h.

{ mName = FbxString(pName); }
const char* GetName ( ) const [inline]

Returns the name of this object.

Returns:
The current name of this LayerElement object.

Definition at line 199 of file fbxlayer.h.

{ return ((FbxLayerElement*)this)->mName.Buffer(); }
bool operator== ( const FbxLayerElement pOther) const [inline]

Equivalence operator.

Parameters:
pOtherLayer element to be compared.
Returns:
True if equal, false otherwise.

Definition at line 205 of file fbxlayer.h.

    {
        return (mName == pOther.mName) && 
               (mMappingMode == pOther.mMappingMode) &&
               (mReferenceMode == pOther.mReferenceMode);
    }
FbxLayerElement& operator= ( FbxLayerElement const &  pOther) [inline]

Assignment operator.

Parameters:
pOtherLayer element assigned to this one.
Returns:
This layer element after assignment.

Definition at line 216 of file fbxlayer.h.

    {
        mMappingMode = pOther.mMappingMode;
        mReferenceMode = pOther.mReferenceMode;
        // name, type and owner should not be copied because they are
        // initialized when this object is created
        return *this;
    }
void Destroy ( )

Removes this layer element from its owner and delete it.

virtual bool Clear ( ) [inline, virtual]
void SetType ( const FbxDataType pType) [inline]

Definition at line 238 of file fbxlayer.h.

{ mType = pType; }
const FbxLayerContainer* GetOwner ( ) const [inline]

Definition at line 239 of file fbxlayer.h.

{ return mOwner; }
void Destruct ( ) [inline, protected]

Definition at line 261 of file fbxlayer.h.

{ FbxDelete(this); }
virtual void SetOwner ( FbxLayerContainer pOwner) [protected, virtual]
FBXSDK_FRIEND_NEW ( ) [protected]
virtual int MemorySize ( ) const [inline, virtual]
virtual bool ContentWriteTo ( FbxStream pStream) const [virtual]
virtual bool ContentReadFrom ( const FbxStream pStream) [virtual]

Friends And Related Function Documentation

friend class FbxLayerContainer [friend]

Reimplemented in FbxLayerElementMaterial.

Definition at line 271 of file fbxlayer.h.


Member Data Documentation

const int sTypeTextureStartIndex = int(eTextureDiffuse) [static]

The start index of texture type layer elements.

Definition at line 118 of file fbxlayer.h.

const int sTypeTextureEndIndex = int(eTypeCount) - 1 [static]

The end index of texture type layer elements.

Definition at line 119 of file fbxlayer.h.

The count of texture type layer elements.

Definition at line 120 of file fbxlayer.h.

const int sTypeNonTextureStartIndex = int(eNormal) [static]

The start index of non-texture type layer elements.

Definition at line 121 of file fbxlayer.h.

const int sTypeNonTextureEndIndex = int(eVisibility) [static]

The end index of non-texture type layer elements.

Definition at line 122 of file fbxlayer.h.

The count of non-texture type layer elements.

Definition at line 123 of file fbxlayer.h.

const char* const sTextureNames[] [static]

Array of names of texture type layer elements.

Definition at line 124 of file fbxlayer.h.

const char* const sTextureUVNames[] [static]

Array of names of UV layer elements.

Definition at line 125 of file fbxlayer.h.

const char* const sNonTextureNames[] [static]

Array of names of non-texture type layer elements.

Definition at line 126 of file fbxlayer.h.

const FbxDataType sTextureDataTypes[] [static]

Array of texture types.

Definition at line 127 of file fbxlayer.h.

const char* const sTextureChannelNames[] [static]

Array of texture channels.

Definition at line 128 of file fbxlayer.h.

Definition at line 254 of file fbxlayer.h.

Definition at line 255 of file fbxlayer.h.

FbxString mName [protected]

Definition at line 257 of file fbxlayer.h.

const FbxDataType* mType [protected]

Definition at line 258 of file fbxlayer.h.

FbxLayerContainer* mOwner [protected]

Definition at line 259 of file fbxlayer.h.


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

FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement
FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement FbxLayerElement