kfbxlayer.h File Reference

This reference page is linked to from the following overview topics: Materials, Textures.


#include <fbxfilesdk/fbxfilesdk_def.h>
#include <fbxfilesdk/components/kbaselib/klib/kstring.h>
#include <fbxfilesdk/components/kbaselib/klib/karrayul.h>
#include <fbxfilesdk/components/kbaselib/klib/kdebug.h>
#include <fbxfilesdk/kfbxmath/kfbxvector2.h>
#include <fbxfilesdk/kfbxmath/kfbxvector4.h>
#include <fbxfilesdk/kfbxplugins/kfbxcolor.h>
#include <fbxfilesdk/kfbxplugins/kfbxdatatypes.h>
#include <fbxfilesdk/kfbxplugins/kfbxstream.h>
#include <fbxfilesdk/kfbxplugins/kfbxsurfacematerial.h>
#include <fbxfilesdk/kfbxplugins/kfbxtexture.h>
#include <fbxfilesdk/fbxfilesdk_nsbegin.h>
#include <fbxfilesdk/fbxfilesdk_nsend.h>

Go to the source code of this file.

Classes

class   KFbxLayerElement
  Base class for elements of layers (KFbxLayer). More...
class   LockAccessStatus
class   KFbxLayerElementArray
  KFbxLayerElementArray is the base class for KFbxLayerElementArrayTemplate, it provides lock handling and data array manipulation of the data buffer for KFbxLayerElement. More...
struct   KFbxLayerElementArrayReadLock< T >
class   KFbxLayerElementArrayTemplate< T >
  KFbxLayerElementArrayTemplate provides data array manipulation of the data buffer for KFbxLayerElement. More...
class   KFbxLayerElementTemplate< Type >
  This class complements the KFbxLayerElement class. More...
class   KFbxLayerElementNormal
  Layer element for mapping Normals to a geometry. More...
class   KFbxLayerElementBinormal
  Layer element for mapping Binormals to a geometry. More...
class   KFbxLayerElementTangent
  Layer element for mapping Tangents to a geometry. More...
class   KFbxLayerElementMaterial
  Layer element for mapping materials (KFbxSurfaceMaterial) to a geometry. More...
class   KFbxLayerElementMaterial::LayerElementArrayProxy
class   KFbxLayerElementPolygonGroup
  Layer element for grouping related polygons together. More...
class   KFbxLayerElementUV
  Layer element for mapping UVs to a geometry. More...
class   KFbxLayerElementVertexColor
  Layer element for mapping Vertex Colors to a geometry. More...
class   KFbxLayerElementUserData
  Layer element for mapping custom user data to a geometry. More...
class   KFbxLayerElementSmoothing
  Layer element for indicating smoothness of components of a geometry. More...
class   KFbxLayerElementCrease
  Layer element for indicating crease of components of a geometry. More...
class   KFbxLayerElementHole
  Layer element for indicating hole of polygon of a geometry. More...
class   KFbxLayerElementVisibility
  Layer element for indicating if specified components are shown/hidden. More...
class   KFbxLayerElementTexture
  Layer element for mapping Textures to a geometry. More...
class   KFbxLayer
  KFbxLayer class provides a base for the layering mechanism. More...

Defines

#define  CREATE_DECLARE(classDesc)
#define  FOR_EACH_TEXTURE(lLayerIndex)   for((lLayerIndex) = 0; (lLayerIndex) < KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_COUNT; (lLayerIndex)++)
  Utility macro for iterating over texture layer elements.
#define  FOR_EACH_NON_TEXTURE(lLayerIndex)   for((lLayerIndex) = 0; (lLayerIndex) < KFbxLayerElement::LAYERELEMENT_TYPE_NON_TEXTURE_COUNT; (lLayerIndex)++)
  Utility macro for iterating over non-texture layer elements.
#define  TEXTURE_INDEX(ElementType)   (int(ElementType) - KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_START_INDEX)
  Utility macro for getting texture layer element index by type.
#define  TEXTURE_TYPE(TextureIndex)   (KFbxLayerElement::ELayerElementType((TextureIndex) + KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_START_INDEX))
  Utility macro for getting texture layer element type by index.
#define  NON_TEXTURE_INDEX(ElementType)   (int(ElementType) - KFbxLayerElement::LAYERELEMENT_TYPE_NON_TEXTURE_START_INDEX)
  Utility macro for getting non-texture layer element index by type.
#define  NON_TEXTURE_TYPE(Index)   (KFbxLayerElement::ELayerElementType((Index) + KFbxLayerElement::LAYERELEMENT_TYPE_NON_TEXTURE_START_INDEX))
  Utility macro for getting non-texture layer element type by index.

Typedefs

typedef class KFBX_DLL
KFbxLayerElementTemplate
< KFbxTexture * > 
KFbxLayerElementTextureBase
  This class is deprecated.
typedef KFbxLayerElement  KFbxGeometryElement
  Defines geometry element classes.
typedef KFbxLayerElementNormal  KFbxGeometryElementNormal
typedef KFbxLayerElementBinormal  KFbxGeometryElementBinormal
typedef KFbxLayerElementTangent  KFbxGeometryElementTangent
typedef KFbxLayerElementMaterial  KFbxGeometryElementMaterial
typedef
KFbxLayerElementPolygonGroup 
KFbxGeometryElementPolygonGroup
typedef KFbxLayerElementUV  KFbxGeometryElementUV
typedef KFbxLayerElementVertexColor  KFbxGeometryElementVertexColor
typedef KFbxLayerElementUserData  KFbxGeometryElementUserData
typedef KFbxLayerElementSmoothing  KFbxGeometryElementSmoothing
typedef KFbxLayerElementCrease  KFbxGeometryElementCrease
typedef KFbxLayerElementHole  KFbxGeometryElementHole
typedef KFbxLayerElementVisibility  KFbxGeometryElementVisibility

Functions

int  RemapIndexArrayTo (KFbxLayerElement *pLayerEl, KFbxLayerElement::EMappingMode pNewMapping, KFbxLayerElementArrayTemplate< int > *pIndexArray)
  Remap the index array to a new EMappingMode.
template<class T >
KFbxLayerElementArrayTemplate
< T > & 
KFbxGetDirectArray (KFbxLayerElementUserData *pLayerElement, int pIndex, bool *pStatus)
  Returns the direct array with the given attribute index.
template<class T >
KFbxLayerElementArrayTemplate
< T > const & 
KFbxGetDirectArray (KFbxLayerElementUserData const *pLayerElement, int pIndex, bool *pStatus)
  Returns the direct array with the given attribute index.
template<class T >
KFbxLayerElementArrayTemplate
< T > & 
KFbxGetDirectArray (KFbxLayerElementUserData *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.
template<class T >
KFbxLayerElementArrayTemplate
< T > const & 
KFbxGetDirectArray (KFbxLayerElementUserData 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.

Variables

const int  kNoMapping = -1
  Flag to indicate no direct array mapping for an index array element.

Detailed Description

Definition in file kfbxlayer.h.


Define Documentation

#define CREATE_DECLARE (   classDesc )
Value:
KFBXNEW_DECLARE_FRIEND        \
    static KFbx##classDesc* Create(KFbxLayerContainer* pOwner, char const *pName);

Definition at line 1330 of file kfbxlayer.h.

#define FOR_EACH_TEXTURE (   lLayerIndex )    for((lLayerIndex) = 0; (lLayerIndex) < KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_COUNT; (lLayerIndex)++)

Utility macro for iterating over texture layer elements.

Examples:
ImportScene/DisplayTexture.cxx.

Definition at line 2834 of file kfbxlayer.h.

#define FOR_EACH_NON_TEXTURE (   lLayerIndex )    for((lLayerIndex) = 0; (lLayerIndex) < KFbxLayerElement::LAYERELEMENT_TYPE_NON_TEXTURE_COUNT; (lLayerIndex)++)

Utility macro for iterating over non-texture layer elements.

Definition at line 2839 of file kfbxlayer.h.

#define TEXTURE_INDEX (   ElementType )    (int(ElementType) - KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_START_INDEX)

Utility macro for getting texture layer element index by type.

Definition at line 2844 of file kfbxlayer.h.

#define TEXTURE_TYPE (   TextureIndex )    (KFbxLayerElement::ELayerElementType((TextureIndex) + KFbxLayerElement::LAYERELEMENT_TYPE_TEXTURE_START_INDEX))

Utility macro for getting texture layer element type by index.

Definition at line 2849 of file kfbxlayer.h.

#define NON_TEXTURE_INDEX (   ElementType )    (int(ElementType) - KFbxLayerElement::LAYERELEMENT_TYPE_NON_TEXTURE_START_INDEX)

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

Definition at line 2854 of file kfbxlayer.h.

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

Definition at line 2859 of file kfbxlayer.h.


Typedef Documentation

This class is deprecated.

See also:
KFbxLayerElementTexture

Definition at line 2230 of file kfbxlayer.h.

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.
  KFbxGeometryElementUV* lUVs = lMesh->GetElementUV("map1");
  KFbxGeometryElementUV::DirectArrayType lDirectArray = lUVs->GetDirectArray();
  int lDirectUVCount = lDirectArray.GetCount();
  KFbxVector2 lFirstUV = lDirectArray[0];
See also:
KFbxGeometryBase

Definition at line 2874 of file kfbxlayer.h.


Function Documentation

int RemapIndexArrayTo ( KFbxLayerElement pLayerEl,
KFbxLayerElement::EMappingMode  pNewMapping,
KFbxLayerElementArrayTemplate< int > *  pIndexArray 
)

Remap the index array to a new EMappingMode.

Parameters:
pLayerEl The layer element to remap
pNewMapping The new mapping mode
pIndexArray The index array to modify
Returns:
return -1 if the layer element is KFbxLayerElement::eDIRECT 0 if layer element or index array is NULL and 1 if the remap is successful
KFbxLayerElementArrayTemplate< T > & KFbxGetDirectArray ( KFbxLayerElementUserData 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:
pLayerElement The layer element whose direct array to return.
pIndex The direct array index
pStatus Will 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 2014 of file kfbxlayer.h.

{
    return *(KFbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pIndex,pStatus);
}
KFbxLayerElementArrayTemplate< T > const & KFbxGetDirectArray ( KFbxLayerElementUserData 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:
pLayerElement The layer element whose direct array to return.
pIndex The direct array index
pStatus Will 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 2027 of file kfbxlayer.h.

{
    return *(KFbxLayerElementArrayTemplate<T> const*)pLayerElement->GetDirectArrayVoid(pIndex,pStatus);
}
KFbxLayerElementArrayTemplate< T > & KFbxGetDirectArray ( KFbxLayerElementUserData 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:
pLayerElement The layer element whose direct array to return.
pName The given attribute name.
pStatus Will 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 2041 of file kfbxlayer.h.

{
    return *(KFbxLayerElementArrayTemplate<T>*)pLayerElement->GetDirectArrayVoid(pName,pStatus);
}
KFbxLayerElementArrayTemplate< T > const & KFbxGetDirectArray ( KFbxLayerElementUserData 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:
pLayerElement The layer element whose direct array to return.
pName The given attribute name.
pStatus Will 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 2054 of file kfbxlayer.h.

{
    return *(KFbxLayerElementArrayTemplate<T> const*)pLayerElement->GetDirectArrayVoid(pName,pStatus);
}

Variable Documentation

const int kNoMapping = -1

Flag to indicate no direct array mapping for an index array element.

Definition at line 1541 of file kfbxlayer.h.