Python Reference Guide
FBModelVertexData Class Reference

#include <pyfbsdk_generated.h>

Inheritance diagram for FBModelVertexData:

Public Member Functions

 DisableOGLUVSet ()
 Disable OpenGL UV set array. More...
 
 DisableOGLVertexData ()
 Disable OpenGL Vertex Array (Pos & Normal). More...
 
 DrawSubPatch (int pSubPatchIndex, bool pWireFrame=False)
 Draw the specified sub patch. More...
 
 DrawSubRegion (int pSubRegionIndex, bool pWireFrame=False)
 Draw the specified sub region. More...
 
 EnableOGLUVSet (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Enable (Setup) OpenGL UV set array. More...
 
 EnableOGLVertexData (bool pAfterDeform=True)
 Enable (Setup) OpenGL Vertex Array (Pos & Normal). More...
 
int GetIndexArray ()
 Return the index array. More...
 
int GetIndexArraySize ()
 Return the index array size (see GetIndexArray()). More...
 
unsigned int GetIndexArrayVBOId ()
 Return the index array VBO Id. More...
 
int GetSubPatchCount ()
 Return the number of sub patches. 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...
 
FBMaterial GetSubPatchMaterial (int pSubPatchIndex)
 Return the mapped material for the specified sub patch. More...
 
int GetSubPatchMaterialId (int pSubPatchIndex)
 Return the mapped material ID for the specified sub patch. More...
 
FBGeometryPrimitiveType GetSubPatchPrimitiveType (int pSubPatchIndex, bool pIsOptimized=None)
 Return the primitive type for the specified sub patch. More...
 
int GetSubRegionCount ()
 Return the number of sub regions (mapping with different materials). More...
 
FBMaterial GetSubRegionMaterial (int pSubRegionIndex)
 Return the specified sub region's material. More...
 
 GetUVSetArray (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Return the UV Set array for the specified texture mapping mode. More...
 
FBGeometryArrayElementType GetUVSetArrayFormat (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Return the UV Set array format. More...
 
int GetUVSetUVCount (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Return the number of UVs in the UV Set for the specified texture mapping mode. More...
 
unsigned int GetUVSetVBOId (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Return the UV Set Buffer Object (VBO) Id for the specified texture mapping mode. More...
 
 GetUVSetVBOOffset (FBTextureMapping pTextureMapping=kFBTextureMappingUV, str pUVSet=None)
 Return the UV Set Buffer Object (VBO) offset for the specified texture mapping mode. More...
 
 GetVertexArray (FBGeometryArrayID pArrayId, bool pAfterDeform=True)
 Return the vertex array for the specified vertex array Id. More...
 
list GetVertexArrayDuplicationMap (unsigned int pDuplicatedVertexCount)
 The FBModel::TessellatedMesh could contain per-face mapping UVSet/Normal or other layer elements. More...
 
FBGeometryArrayElementType GetVertexArrayType (FBGeometryArrayID pArrayId, bool pAfterDeform=True)
 Return the vertex array format for the specified 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...
 
 GetVertexArrayVBOOffset (FBGeometryArrayID pArrayId, bool pAfterDeform=True)
 Return the Vertex Buffer Object (VBO) offset for the specified vertex array Id. More...
 
int GetVertexCount ()
 Return the number of vertices. More...
 
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...
 
 PopZDepthClipOverride ()
 Re-enables Z-Depth clip plane if it had been disabled via PushZDepthClipOverride(). More...
 
 PushZDepthClipOverride ()
 Disables Z-Depth clip plane if this model is selected using Z-Depth HideFront selection tool. More...
 
 VertexArrayMappingRelease ()
 Release deformed vertex array mapping on CPU. More...
 
 VertexArrayMappingRequest ()
 Request deformed vertex array mapping on CPU. More...
 
- Public Member Functions inherited from FBComponent
 FBComponent ()
 Constructor. More...
 
str ClassName ()
 Get the class name. More...
 
 DisableObjectFlags (FBObjectFlag pFlags)
 Disable a specific Object Flags. More...
 
 EnableObjectFlags (FBObjectFlag pFlags)
 Enable a specific Object Flags. More...
 
bool FBCreate ()
 Open Reality Creation function. More...
 
 FBDelete ()
 Open Reality deletion function. More...
 
 FBDestroy ()
 Open Reality destruction function. More...
 
FBObjectFlag GetObjectFlags ()
 Get all Object Flags (concatenated). More...
 
bool GetObjectStatus (FBObjectStatus pStatus)
 Check to see if an object status is enabled. More...
 
FBFileReference GetOwnerFileReference (p0)
 Get the owner FileReference object. More...
 
 HardSelect ()
 HardSelect. More...
 
bool HasObjectFlags (FBObjectFlag pFlags)
 Check whether a specific object flag is enabled. More...
 
bool Is (int pTypeId)
 Returns true if object is of type TypeId. More...
 
bool ProcessNamespaceHierarchy (FBNamespaceAction pNamespaceAction, str pNamespaceName, str pReplaceTo=None, bool pAddRight=True)
 ProcessNamespaceHierarchy. More...
 
bool ProcessObjectNamespace (FBNamespaceAction pNamespaceAction, str pNamespaceName, str pReplaceTo=None, bool pAddRight=True)
 ProcessObjectNamespace. More...
 
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...
 
FBProperty PropertyCreate (str pName, FBType pType, str pDataType, bool pAnimatable, bool pIsUser=False, FBProperty pReferenceSource=None)
 Create user or dynamic property. More...
 
 PropertyGetModifiedList (FBArrayTemplate< FB > pPropList, FBPlugModificationFlag pModificationFlags)
 Get list of properties which have been modified since last loading. More...
 
 PropertyRemove (FBProperty pProperty)
 Remove a Property from the component's Property manager. More...
 
 SetObjectFlags (FBObjectFlag pFlags)
 SetObjectFlags. More...
 
 SetObjectStatus (FBObjectStatus pStatus, bool pValue)
 Enable/Disable a specific Object Status. More...
 

Additional Inherited Members

- Public Attributes inherited from FBComponent
FBListComponent Components
 List: List of components.
More...
 
str LongName
 Read Write Property: Name and namespace for object.
More...
 
str Name
 Read Write Property: Unique name of object. See sample: RemoveSuffixFromNameOfSceneElements.py. More...
 
FBListComponent Parents
 List: Parents.
More...
 
FBManager PropertyList
 Read Only Property: Manages all of the properties for the component.
More...
 
bool Selected
 Read Write Property: Selected property.
More...
 
int TypeInfo
 Contains the Type information of the object.
More...
 
- Public Attributes inherited from FBPlug
str ClassGroupName
 ClassGroupName of the object.
More...
 
int TypeInfo
 TypeInfo.
More...
 

Member Function Documentation

◆ DisableOGLUVSet()

DisableOGLUVSet ( )

Disable OpenGL UV set array.

◆ DisableOGLVertexData()

DisableOGLVertexData ( )

Disable OpenGL Vertex Array (Pos & Normal).

◆ DrawSubPatch()

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()

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()

EnableOGLUVSet ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
str  pUVSet = None 
)

Enable (Setup) OpenGL UV set array.

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

◆ EnableOGLVertexData()

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 = None 
)

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()

GetUVSetArray ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
str  pUVSet = None 
)

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 ] );
}
}
}
Type of data when requesting an array.
Definition: pyfbsdk_generated.h:8725
FBTrace(str pFormatString,... p1)
This function prints useful debugging strings in the console with kFBNORMAL_TRACE output detailed lev...

◆ GetUVSetArrayFormat()

FBGeometryArrayElementType GetUVSetArrayFormat ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
str  pUVSet = None 
)

Return the UV Set array format.

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

◆ GetUVSetUVCount()

int GetUVSetUVCount ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
str  pUVSet = None 
)

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,
str  pUVSet = None 
)

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()

GetUVSetVBOOffset ( FBTextureMapping  pTextureMapping = kFBTextureMappingUV,
str  pUVSet = None 
)

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()

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 );
if( lArrayType == kFBGeometryArrayElementType_Float4 )
{
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 ] );
}
}
}

◆ GetVertexArrayDuplicationMap()

list 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
pDuplicatedVertexCountonly) 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()

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()

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()

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()

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()

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.