Open Reality Reference Guide
FBModelVertexData Class Reference
Inheritance diagram for FBModelVertexData:

Public Member Functions

bool IsDeformable ()
 Return true if the model is deformable. More...
 
bool IsDrawable ()
 Queries if this model should be drawn, e.g., in custom render callback. More...
 
int GetVertexCount ()
 Return the number of vertices. More...
 
Sub Patch Management. Each sub patch contains same type of primitives mapped with same material.
int GetSubPatchCount ()
 Return the number of sub patches. More...
 
int GetSubPatchMaterialId (int pSubPatchIndex)
 Return the mapped material ID for the specified sub patch. More...
 
FBMaterialGetSubPatchMaterial (int pSubPatchIndex)
 Return the mapped material for the specified sub patch. More...
 
FBGeometryPrimitiveType GetSubPatchPrimitiveType (int pSubPatchIndex, bool *pIsOptimized=NULL)
 Return the primitive type for the specified sub patch. More...
 
int GetSubPatchIndexOffset (int pSubPatchIndex)
 Return the start offset of the indexes for the specified sub patch (see GetIndexArray()). More...
 
int GetSubPatchIndexSize (int pSubPatchIndex)
 Return the size of the indexes for the specified sub patch (see GetIndexArray()). More...
 
void DrawSubPatch (int pSubPatchIndex, bool pWireFrame=false)
 Draw the specified sub patch. More...
 
Sub Regions Management. Each sub region is composed by one or several patches which

are composed with same material.

int GetSubRegionCount ()
 Return the number of sub regions (mapping with different materials). More...
 
FBMaterialGetSubRegionMaterial (int pSubRegionIndex)
 Return the specified sub region's material. More...
 
void DrawSubRegion (int pSubRegionIndex, bool pWireFrame=false)
 Draw the specified sub region. More...
 
void PushZDepthClipOverride ()
 Disables Z-Depth clip plane if this model is selected using Z-Depth HideFront selection tool. More...
 
void PopZDepthClipOverride ()
 Re-enables Z-Depth clip plane if it had been disabled via PushZDepthClipOverride(). More...
 
Vertex Array Management
void EnableOGLVertexData (bool pAfterDeform=true)
 Enable (Setup) OpenGL Vertex Array (Pos & Normal). More...
 
void DisableOGLVertexData ()
 Disable OpenGL Vertex Array (Pos & Normal). More...
 
void VertexArrayMappingRequest ()
 Request deformed vertex array mapping on CPU. More...
 
void VertexArrayMappingRelease ()
 Release deformed vertex array mapping on CPU. More...
 
const int * GetVertexArrayDuplicationMap (unsigned int &pDuplicatedVertexCount)
 The FBModel::TessellatedMesh could contain per-face mapping UVSet/Normal or other layer elements. More...
 
int GetIndexArraySize ()
 Return the index array size (see GetIndexArray()). More...
 
int * GetIndexArray ()
 Return the index array. More...
 
unsigned int GetIndexArrayVBOId ()
 Return the index array VBO Id. More...
 
FBGeometryArrayElementType GetVertexArrayType (FBGeometryArrayID pArrayId, bool pAfterDeform=true)
 Return the vertex array format for the specified array Id. More...
 
void * GetVertexArray (FBGeometryArrayID pArrayId, bool pAfterDeform=true)
 Return the vertex array for the specified vertex array Id. More...
 
unsigned int GetVertexArrayVBOId (FBGeometryArrayID pArrayId, bool pAfterDeform=true)
 Return the Vertex Buffer Object (VBO) Id for the specified vertex array Id. More...
 
void * GetVertexArrayVBOOffset (FBGeometryArrayID pArrayId, bool pAfterDeform=true)
 Return the Vertex Buffer Object (VBO) offset for the specified vertex array Id. More...
 
UVset Array Management
void EnableOGLUVSet (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Enable (Setup) OpenGL UV set array. More...
 
void DisableOGLUVSet ()
 Disable OpenGL UV set array. More...
 
FBGeometryArrayElementType GetUVSetArrayFormat (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Return the UV Set array format. More...
 
int GetUVSetUVCount (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Return the number of UVs in the UV Set for the specified texture mapping mode. More...
 
void * GetUVSetArray (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Return the UV Set array for the specified texture mapping mode. More...
 
unsigned int GetUVSetVBOId (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Return the UV Set Buffer Object (VBO) Id for the specified texture mapping mode. More...
 
void * GetUVSetVBOOffset (FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
 Return the UV Set Buffer Object (VBO) offset for the specified texture mapping mode. More...
 
- Public Member Functions inherited from FBComponent
 FBComponent (HIObject pObject)
 Constructor. More...
 
virtual ~FBComponent ()
 Destructor. More...
 
virtual bool FBCreate ()
 Open Reality Creation function. More...
 
virtual void FBDestroy ()
 Open Reality destruction function. More...
 
virtual void FBDelete () override
 Open Reality deletion function. More...
 
virtual bool SetHIObject (HIObject pObject, bool pSDKComponent) override
 Assign component to an internal pointer. More...
 
virtual int PropertyAdd (FBProperty *pProperty)
 Add a property to the component's property manager. More...
 
bool PropertyAddReferenceProperty (FBProperty *pReferenceProperty)
 Add a reference property to the component's property manager. More...
 
void PropertyRemove (FBProperty *pProperty)
 Remove a Property from the component's Property manager. More...
 
void PropertyGetModifiedList (FBArrayTemplate< FBProperty * > &pPropList, FBPlugModificationFlag pModificationFlags)
 Get list of properties which have been modified since last loading. More...
 
FBPropertyPropertyCreate (const char *pName, FBPropertyType pType, const char *pDataType, bool pAnimatable, bool pIsUser=false, FBProperty *pReferenceSource=NULL)
 Create user or dynamic property. More...
 
FBObjectFlag GetObjectFlags ()
 Get all Object Flags (concatenated). More...
 
void SetObjectFlags (FBObjectFlag pFlags)
 SetObjectFlags. More...
 
bool HasObjectFlags (FBObjectFlag pFlags)
 Check whether a specific object flag is enabled. More...
 
void EnableObjectFlags (FBObjectFlag pFlags)
 Enable a specific Object Flags. More...
 
void DisableObjectFlags (FBObjectFlag pFlags)
 Disable a specific Object Flags. More...
 
void SetObjectStatus (FBObjectStatus pStatus, bool pValue)
 Enable/Disable a specific Object Status. More...
 
bool GetObjectStatus (FBObjectStatus pStatus)
 Check to see if an object status is enabled. More...
 
bool ProcessNamespaceHierarchy (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessNamespaceHierarchy. More...
 
bool ProcessObjectNamespace (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessObjectNamespace. More...
 
virtual const char * ClassName () override
 Get the class name. More...
 
virtual bool UseCustomPropertyViewSet () const
 Use the custom property viewSet or not. More...
 
const char * GetFullName (void)
 Get the full name. More...
 
void SetOwnerNamespace (FBNamespace *pOwnerNSObj)
 Set the owner Namespace object. More...
 
FBNamespaceGetOwnerNamespace (void)
 Get the owner Namespace object. More...
 
FBFileReferenceGetOwnerFileReference (void)
 Get the owner FileReference object. More...
 
void HardSelect ()
 HardSelect. More...
 
virtual bool Is (int pTypeId) override
 Returns true if object is of type TypeId. More...
 
virtual int GetTypeId () override
 GetTypeId( int pTypeId ) More...
 
- Public Member Functions inherited from FBWrapperHolder
FBScriptWrapperGetWrapper ()
 Return the wrapper interface of this FBObject. More...
 
void AddWrapper (FBScriptWrapper *)
 
void RemoveWrapper (FBScriptWrapper *)
 

Protected Member Functions

 FBModelVertexData (FBModel *pModel)
 
- Protected Member Functions inherited from FBPlug
bool IsSDKComponent ()
 Return whether or not item is an SDK component. More...
 
bool ConnectSrc (FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDst (FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool ConnectSrcAt (int pDst_SrcIndex, FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDstAt (int pSrc_DstIndex, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool DisconnectDst (FBPlug *pDst)
 Remove a destination connection. More...
 
bool DisconnectSrc (FBPlug *pSrc)
 Remove a source connection. More...
 
void DisconnectAllSrc ()
 Remove all source connections. More...
 
void DisconnectAllDst ()
 Remove all destination connections. More...
 
bool DisconnectDstAt (int pIndex)
 Remove a destination connection at a specified index. More...
 
bool DisconnectSrcAt (int pIndex)
 Remove a source connection at a specified index. More...
 
bool ReplaceDstAt (int pIndex, FBPlug *pDst)
 Replace a destination connection at a specified index. More...
 
bool ReplaceSrcAt (int pIndex, FBPlug *pSrc)
 Replace a source connection at a specified index. More...
 
bool SwapSrc (int pIndexA, int pIndexB)
 Swap source connection at index A with source connection at index B. More...
 
bool MoveSrcAt (int pIndex, int pAtIndex)
 Move source connection at pIndex to pAtIndex. More...
 
bool MoveSrcAt (FBPlug *pSrc, FBPlug *pAtSrc)
 Move source connection pSrc to the position of pAtSrc. More...
 
int GetSrcCount ()
 Get source connection count. More...
 
FBPlugGetSrc (int pIndex)
 Get a source connection's plug at specified index. More...
 
FBConnectionType GetSrcType (int pIndex)
 Get a source connection's type at specified index. More...
 
int GetDstCount ()
 Get destination connection count. More...
 
FBPlugGetDst (int pIndex)
 Get a destination connection's plug at specified index. More...
 
FBConnectionType GetDstType (int pIndex)
 Get a destination connection's type at specified index. More...
 
bool BeginChange ()
 Begins a change on multiple plugs. More...
 
void EndChange ()
 Ends a change on multiple plugs. More...
 
void SetSelfModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's self modification flag. More...
 
bool GetSelfModified (FBPlugModificationFlag pFlag)
 Tell if the plug's self has changed. More...
 
void SetContentModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's owned property/object's modification flag. More...
 
bool GetContentModified (FBPlugModificationFlag pFlag)
 Tell if the plug's content has changed. More...
 
int GetPlugConnectionModifiedList (FBPlugList &pPlugList, FBPlugModificationFlag pConnectionModificatonFlag, bool pAddRemove)
 Get plug's modified src/dst property/object connection added/removed List. More...
 
bool RevertModification (FBPlugModificationFlag pFlag=kFBAllModifiedMask)
 Revert the plug's modification to original status. More...
 
void SetStatusFlag (FBPlugStatusFlag pStatus, bool pValue)
 Set the plug's status flag. More...
 
bool GetStatusFlag (FBPlugStatusFlag pStatus) const
 Tell if the plug's status has changed. More...
 
FBPlugGetOwner ()
 Get the owner of this plug. More...
 
FBPlugGetOwned (int pIndex)
 Get the owned plug at specified index. More...
 
int GetOwnedCount ()
 Get the owned plug count. More...
 
virtual bool PlugDataNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugDataNotify when overloaded is equivalent of FBSystem.OnConnectionDataNotify but in the context of the derived object only. More...
 
virtual bool PlugStateNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugStateNotify when overloaded is equivalent of FBSystem.OnConnectionStateNotify but in the context of the derived object only. More...
 
virtual bool PlugNotify (FBConnectionAction pAction, FBPlug *pThis, int pIndex, FBPlug *pPlug=NULL, FBConnectionType pConnectionType=kFBConnectionTypeNone, FBPlug *pNewPlug=NULL)
 PlugNotify when overloaded is equivalent of FBSystem.OnConnectionNotify but in the context of the derived object only. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FBComponent
static int GetInternalClassId ()
 
static void FBComponentSetName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetName (FBComponent *pObject)
 
static void FBComponentSetLongName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetLongName (FBComponent *pObject)
 
- Public Attributes inherited from FBComponent
FBPropertyManager PropertyList
 Read Only Property: Manages all of the properties for the component. More...
 
FBPropertyListComponent Components
 List: List of components. More...
 
FBPropertyListComponent Parents
 List: Parents. More...
 
FBPropertyBool Selected
 Read Write Property: Selected property. More...
 
FBPropertyString Name
 Read Write Property: Unique name of object. More...
 
FBPropertyString LongName
 Read Write Property: Name and namespace for object.
More...
 
FBPropertyFolder Folder
 Read Write Property: The folder that contain this component. More...
 
- Static Public Attributes inherited from FBComponent
static int TypeInfo
 Contains the Type information of the object. More...
 
- Static Protected Member Functions inherited from FBPlug
static int GetInternalClassId ()
 Internal class Id. More...
 
- Protected Attributes inherited from FBPlug
bool mAllocated
 Contain the Allocation State of the Component. More...
 
HIObject mObject
 Handle on the Plug. More...
 
bool mSDKComponent
 bool Plug is an SDK component.
More...
 
- Static Protected Attributes inherited from FBPlug
static const char * ClassGroupName
 ClassGroupName of the object. More...
 
static int TypeInfo
 TypeInfo. More...
 
static int mGlobalTypeInfo
 Represente the Type Index. More...
 

Detailed Description

Definition at line 1167 of file fbmodel.h.

Member Function Documentation

◆ DisableOGLUVSet()

void DisableOGLUVSet ( )

Disable OpenGL UV set array.

◆ DisableOGLVertexData()

void DisableOGLVertexData ( )

Disable OpenGL Vertex Array (Pos & Normal).

◆ DrawSubPatch()

void DrawSubPatch ( int  pSubPatchIndex,
bool  pWireFrame = false 
)

Draw the specified sub patch.

Must be called between Enable/DisableOGLVertexData function calls.

Parameters
pSubPatchIndexIndex of the sub patch to be drawn.
pWireFrameDraw wire frame if true.

◆ DrawSubRegion()

void DrawSubRegion ( int  pSubRegionIndex,
bool  pWireFrame = false 
)

Draw the specified sub region.

Must be called between Enable/DisableOGLVertexData function calls.

Parameters
pSubRegionIndexIndex of the sub region to be drawn.
pWireFrameDraw wire frame if true.

◆ EnableOGLUVSet()

void EnableOGLUVSet ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Enable (Setup) OpenGL UV set array.

Parameters
pTextureMappingTexture Mapping Mode.
pUVSetUV Set name if pTextureMapping is kFBTextureMappingUV, otherwise ignored.

◆ EnableOGLVertexData()

void EnableOGLVertexData ( bool  pAfterDeform = true)

Enable (Setup) OpenGL Vertex Array (Pos & Normal).

Parameters
pAfterDeformUnused parameter.

◆ GetIndexArray()

int* GetIndexArray ( )

Return the index array.

For the size of the array, see GetIndexArraySize().

Returns
(C++) The index array pointer. (Python) The index array as a list.

◆ GetIndexArraySize()

int GetIndexArraySize ( )

Return the index array size (see GetIndexArray()).

It will sum the index size of each sub patch (see GetSubPatchIndexSize()).

Returns
The index array size.

◆ GetIndexArrayVBOId()

unsigned int GetIndexArrayVBOId ( )

Return the index array VBO Id.

Returns
The index array VBO Id.

◆ GetSubPatchCount()

int GetSubPatchCount ( )

Return the number of sub patches.

Returns
The number of sub patches.

◆ GetSubPatchIndexOffset()

int GetSubPatchIndexOffset ( int  pSubPatchIndex)

Return the start offset of the indexes for the specified sub patch (see GetIndexArray()).

Parameters
pSubPatchIndexIndex of the sub patch to be queried.
Returns
The start offset of the indexes for the specified sub patch, -1 if the specific sub path index is invalid.

◆ GetSubPatchIndexSize()

int GetSubPatchIndexSize ( int  pSubPatchIndex)

Return the size of the indexes for the specified sub patch (see GetIndexArray()).

Parameters
pSubPatchIndexIndex of the sub patch to be queried.
Returns
The size of the indexes for the specified sub patch, -1 if the specific sub path index is invalid.

◆ GetSubPatchMaterial()

FBMaterial* GetSubPatchMaterial ( int  pSubPatchIndex)

Return the mapped material for the specified sub patch.

Parameters
pSubPatchIndexIndex of the sub patch to be queried.
Returns
The mapped material for the specified sub patch, the default material if the specific sub path index is invalid.

◆ GetSubPatchMaterialId()

int GetSubPatchMaterialId ( int  pSubPatchIndex)

Return the mapped material ID for the specified sub patch.

Parameters
pSubPatchIndexIndex of the sub patch to be queried.
Returns
The mapped material ID for the specified sub patch, -1 if the specific sub path index is invalid.

◆ GetSubPatchPrimitiveType()

FBGeometryPrimitiveType GetSubPatchPrimitiveType ( int  pSubPatchIndex,
bool *  pIsOptimized = NULL 
)

Return the primitive type for the specified sub patch.

Most of the time, kFBGeometry_TRIANGLES will be returned.

Parameters
pSubPatchIndexIndex of the sub patch to be queried.
pIsOptimized(C++ only) Out parameter, return true if the specified sub patch is optimized for fast rendering, custom shader & render should use the optimized sub patch only.
Returns
(C++ only) The primitive type of the queried sub patch. (Python only) A tuple with 2 values: (FBGeometryPrimitiveType return value, pIsOptimized).

◆ GetSubRegionCount()

int GetSubRegionCount ( )

Return the number of sub regions (mapping with different materials).

Returns
The number of sub regions.

◆ GetSubRegionMaterial()

FBMaterial* GetSubRegionMaterial ( int  pSubRegionIndex)

Return the specified sub region's material.

Parameters
pSubRegionIndexIndex of the sub region to be queried.
Returns
The sub region's material, the default material if the specific sub region index is invalid.

◆ GetUVSetArray()

void* GetUVSetArray ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Return the UV Set array for the specified texture mapping mode.

Parameters
pTextureMappingTexture mapping mode to be queried.
pUVSetUV Set name to be queried if pTextureMapping is kFBTextureMappingUV, otherwise ignored.
Returns
(C++) The UV Set array pointer. (Python) The UV Set array as a list.
// The following C++ snippet show how to deal with the UV mapping UV Set array pointer returned.
void* lUVSetArray = lModelVertexData.GetUVSetArray();
if( lUVSetArray )
{
int lUVArrayCount = lModelVertexData->GetUVSetUVCount();
FBGeometryArrayElementType lArrayType = lModelVertexData->GetUVSetArrayFormat( kFBTextureMappingUV );
if( lArrayType == kFBGeometryArrayElementType_Float2 )
{
FBUV* lUVArray = (FBUV*)lUVSetArray;
for( int i = 0; i < lUVArrayCount; i++ )
{
// Do something useful here
FBTrace( "%f, %f\n", lUVArray[ i ][ 0 ], lUVArray[ i ][ 1 ] );
}
}
}
FBGeometryArrayElementType
Type of data when requesting an array.
Definition: fbgeometry.h:86
class K_DLLIMPORT FBVector2< float > FBUV
Represents a UV coordinate as a FBVector2 of floats in the range of 0.0f to 1.0f; value 0 is the U va...
Definition: fbtypes.h:595
K_DLLIMPORT void FBTrace(const char *pFormatString,...)
This function prints useful debugging strings in the console with kFBNORMAL_TRACE output detailed lev...

◆ GetUVSetArrayFormat()

FBGeometryArrayElementType GetUVSetArrayFormat ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Return the UV Set array format.

Parameters
pTextureMappingUnused parameter.
pUVSetUnused parameter.
Returns
The UV Set array format.

◆ GetUVSetUVCount()

int GetUVSetUVCount ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Return the number of UVs in the UV Set for the specified texture mapping mode.

Parameters
pTextureMappingTexture mapping mode to be queried.
pUVSetUV Set name to be queried if pTextureMapping is kFBTextureMappingUV, otherwise ignored.
Returns
The number of UVs in the UV Set for the specified texture mapping mode.

◆ GetUVSetVBOId()

unsigned int GetUVSetVBOId ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Return the UV Set Buffer Object (VBO) Id for the specified texture mapping mode.

Parameters
pTextureMappingTexture mapping mode to be queried.
pUVSetUV Set name to be queried if pTextureMapping is kFBTextureMappingUV, otherwise ignored.
Returns
The UV Set VBO Id.

◆ GetUVSetVBOOffset()

void* GetUVSetVBOOffset ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
const char *  pUVSet = NULL 
)

Return the UV Set Buffer Object (VBO) offset for the specified texture mapping mode.

Parameters
pTextureMappingTexture mapping mode to be queried.
pUVSetUV Set name to be queried if pTextureMapping is kFBTextureMappingUV, otherwise ignored.
Returns
The UV Set VBO offset (C++: as a pointer, Python: as a kReference).

◆ GetVertexArray()

void* GetVertexArray ( FBGeometryArrayID  pArrayId,
bool  pAfterDeform = true 
)

Return the vertex array for the specified vertex array Id.

Parameters
pArrayIdVertex array Id type to be queried.
pAfterDeformTrue to query the deformed position or normal vertex array (model must be deformable and deformation must occur in CPU), false to query the original vertex array.
Returns
(C++) The vertex array pointer. (Python) The vertex array as a list. Deformed position & normal vertex arrays could be NULL if one has not requested the mapping vertex array on CPU.
Note
Use VertexArrayMappingRequest() to toggle CPU / GPU skinning per model when necessary.
// The following C++ snippet show how to deal with the Point vertex array pointer returned.
void* lVertexArray = lModelVertexData.GetVertexArray();
if( lVertexArray )
{
int lVertexArrayCount = lModelVertexData->GetVertexCount();
FBGeometryArrayElementType lArrayType = lModelVertexData->GetVertexArrayType( kFBGeometryArrayID_Point );
{
FBVector4<float>* lVertexArrayFloat4 = (FBVector4<float>*)lVertexArray;
for( int i = 0; i < lVertexArrayCount; i++ )
{
// Do something useful here
FBTrace( "%f, %f, %f, %f\n", lVertexArrayFloat4[ i ][ 0 ], lVertexArrayFloat4[ i ][ 1 ], lVertexArrayFloat4[ i ][ 2 ], lVertexArrayFloat4[ i ][ 3 ] );
}
}
}
Four dimensional vector (template).
Definition: fbtypes.h:222
@ kFBGeometryArrayID_Point
ID to the Point array.
Definition: fbgeometry.h:78
@ kFBGeometryArrayElementType_Float4
Each element is an array of 4 float.
Definition: fbgeometry.h:92

◆ GetVertexArrayDuplicationMap()

const int* GetVertexArrayDuplicationMap ( unsigned int &  pDuplicatedVertexCount)

The FBModel::TessellatedMesh could contain per-face mapping UVSet/Normal or other layer elements.

In order to build a valid VBO buffer for accelerated rendering, those control points with multiple attribute data must be duplicated. This function returns the duplicated vertices' ID mapping from FBModel::ModelVertexData vertex array to its FBModel::TessellatedMesh vertex array. Note those duplicated vertices are always appended after the original vertex array.

Parameters
(C++only) pDuplicatedVertexCount Out parameter, return the count of those duplicated vertices.
Returns
(C++) A pointer to the original vertex ID mapping for those duplicated vertices. (Python) A list containing the vertex ID mapping for those duplicated vertices.

◆ GetVertexArrayType()

FBGeometryArrayElementType GetVertexArrayType ( FBGeometryArrayID  pArrayId,
bool  pAfterDeform = true 
)

Return the vertex array format for the specified array Id.

Parameters
pArrayIdVertex array Id type to be queried.
pAfterDeformUnused parameter.
Returns
The vertex array format for the specified array Id.
Note
Use VertexArrayMappingRequest() to toggle CPU / GPU skinning per model when necessary.

◆ GetVertexArrayVBOId()

unsigned int GetVertexArrayVBOId ( FBGeometryArrayID  pArrayId,
bool  pAfterDeform = true 
)

Return the Vertex Buffer Object (VBO) Id for the specified vertex array Id.

Parameters
pArrayIdVertex array Id type to be queried.
pAfterDeformTrue to query the deformed position or normal vertex array (model must be deformable and deformation must occur in CPU), false to query the original vertex array.
Returns
The vertex array VBO Id. Deformed position & normal vertex VBO Id could be 0 if model use CPU skinning.
Note
Use VertexArrayMappingRequest() to toggle CPU / GPU skinning per model when necessary.

◆ GetVertexArrayVBOOffset()

void* GetVertexArrayVBOOffset ( FBGeometryArrayID  pArrayId,
bool  pAfterDeform = true 
)

Return the Vertex Buffer Object (VBO) offset for the specified vertex array Id.

Parameters
pArrayIdVertex array Id type to be queried. Only position or normal vertex array Id types are available.
pAfterDeformTrue to query the deformed position or normal vertex array (model must be deformable and deformation must occur in CPU), false to query the original vertex array.
Returns
The vertex array VBO offset (C++: as a pointer, Python: as a kReference).
Note
Use VertexArrayMappingRequest() to toggle CPU / GPU skinning per model when necessary.

◆ GetVertexCount()

int GetVertexCount ( )

Return the number of vertices.

Returns
The number of vertices.

◆ IsDeformable()

bool IsDeformable ( )

Return true if the model is deformable.

Returns
True if the model is deformable, false otherwise.

◆ IsDrawable()

bool IsDrawable ( )

Queries if this model should be drawn, e.g., in custom render callback.

Returns false if e.g., deformed vertex data has not been computed for this frame (thus not ready to be drawn), or if model should be hidden when Z-Depth selection tool is active.

Returns
True if the model should be drawn, false otherwise.

◆ PopZDepthClipOverride()

void PopZDepthClipOverride ( )

Re-enables Z-Depth clip plane if it had been disabled via PushZDepthClipOverride().

Call this function after drawing each model in custom render callback, so that Z-Depth clip plane is re-enabled if it was earlier disabled via PushZDepthClipOverride().

◆ PushZDepthClipOverride()

void PushZDepthClipOverride ( )

Disables Z-Depth clip plane if this model is selected using Z-Depth HideFront selection tool.

Call this function before drawing each model in custom render callback, so that the selected model is unaffected by the Z-Depth clip plane, and hence is visible when Z-Depth HideFront selection tool is active. Be sure to call PopZDepthClipOverride() after drawing each model.

◆ VertexArrayMappingRelease()

void VertexArrayMappingRelease ( )

Release deformed vertex array mapping on CPU.

Call this function if plug-in don't need CPU access of the deformed vertex array to be mapped on CPU memory anymore, hence allow the application flexibility to choose higher performance approach.

◆ VertexArrayMappingRequest()

void VertexArrayMappingRequest ( )

Request deformed vertex array mapping on CPU.

Model's deformation computation could be executed on GPU, and thus the deformed vertex data will reside in GPU memory only by default. Calling this function VertexArrayMappingRequest() will ensure the deformed vertex array to be always mapped to CPU memory.

Note
: This function should be called at least once before GetVertexArray(pArrayId, true) to give engine chance to process request properly.

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