FBGeometry Class Reference


Detailed Description

Geometry class.

This class groups all geometry related elements which are shared across the different subclasses (FBMesh, FBSurface, FBNurbs and FBPatch). Geometry Material always use kFBGeometryReference_INDEX mode. While Normal, UV could have different combination of mapping and reference modes.

Geometries created with SDK can only use the mapping/reference mode kFBGeometryMapping_ALL_SAME/kFBGeometryReference_INDEX for material, kFBGeometryMapping_BY_CONTROL_POINT/kFBGeometryReference_DIRECT for Normal and UV. And only one set of UV could be created.

Geometries passed from FBXSDK pipeline could have various complex mapping/reference mode combination for material, normal and UV. And could potentially contains multiple set of UVs.

Examples
Samples/Geometry/ShapeCreation.py
Inheritance diagram for FBGeometry:
Inheritance graph
[legend]

List of all members.

Public Member Functions

bool  GeometryBegin ()
  Begin/End geometry mapping.
bool  GeometryEnd ()
int  VertexCount ()
  Get the number of vertices in the geometry.
FBVector4  VertexGet (int pIndex)
  Get a vertex.
FBVector4  GetVertexes ()
  Get a pointer to the array of vertexes.
FBVector4  VertexNormalGet (int pIndex=-1)
  Get a normal at a vertex.
FBVector2  VertexUVGet (int pIndex=-1)
  Get a UV coordinate.
FBVector4  VertexColorGet (int pIndex=-1)
  Get a Vertex Color.
int  GetNormalsIndexArray (int pOutArrayCount)
  Get a pointer to the index array of normals.
FBVector4  GetNormalsDirectArray (int pOutArrayCount)
  Get a pointer to the direct array of normals.
int  GetVertexColorsIndexArray (int pOutArrayCount)
  Get a pointer to the index array of vertex color.
FBVector4  GetVertexColorsDirectArray (int pOutArrayCount)
  Get a pointer to the direct array of vertex color.
FBStringList  GetUVSets ()
  Get available UVSet name.
FBGeometryMappingMode  GetUVSetMappingMode (str pUVSetName)
  Get UVSet mapping mode.
FBGeometryReferenceMode  GetUVSetReferenceMode (str pUVSetName)
  Get UVSet reference mode.
int  GetVUVSetIndexArray (int pOutArrayCount, str pUVSetName)
  Get a pointer to the index array of UVset.
FBVector2  GetUVSetDirectArray (int pOutArrayCount, str pUVsetName=None)
  Get a pointer to the direct array of UVset.
int  GetMaterialIndexArray (int pOutArrayCount, str pUVSetName)
  Get a pointer to the index array of Material.
bool  VertexGetSelected (int pIndex)
  Get the selected state of a vertex.
bool  VertexSetSelected (int pIndex, bool pState)
  Set the selected state of a vertex.
bool  VertexGetVisible (int pIndex)
  Get the visible state of a vertex.
bool  VertexSetVisible (int pIndex, bool pState)
  Set the visible state of a vertex.
bool  VertexGetTransformable (int pIndex)
  Get the Transformable state of a vertex.
int  ShapeGetCount ()
  Get Shape Count.
str  ShapeGetName (int pShapeIdx)
  Return the shape Name.
int  ShapeAdd (str pName)
  Add new shape.
  ShapeClearAll ()
  Clears all the shapes.
  ShapeInit (int pShapeIdx, int pDiffSize, bool pWithNormal=False)
  Init the shape.
int  ShapeGetDiffPointCount (int pShapeIdx)
  Return the shape's total diff points count.
bool  ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, FBVector4 pPosDiff)
  Set the differentiate point.
bool  ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, FBVector4 pPosDiff, FBVector4 pNormalDiff)
bool  ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, FBVector4 pPosDiff)
  Get the differentiate point.
bool  ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, FBVector4 pPosDiff, FBVector4 pNormalDiff)
  ModifyNotify (kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1)
  The geometry has change, update the necessary flags.
  VertexInit (int pSize, bool pResize, bool pInitUV=True, bool pInitVertexColor=False)
  Resize or Reserve vertex, normal and UV array for performance.
bool  VertexClear ()
  Clear all vertices.
int  VertexAdd (FBVector4 pVertex)
  Add a vertex.
int  VertexAdd (FBVector4 pVertex, FBVector4 pNormal)
  Add a vertex.
int  VertexAdd (FBVector4 pVertex, FBVector4 pNormal, FBVector2 pUV)
  Add a vertex.
int  VertexAdd (FBVector4 pVertex, FBVector4 pNormal, FBVector2 pUV, FBVector4 pVertexColor)
  Add a vertex.
int  VertexAdd (float px, float py, float pz)
  Add a vertex.
int  VertexAdd (float px, float py, float pz, float nx, float ny, float nz)
int  VertexAdd (float px, float py, float pz, float nx, float ny, float nz, float UVu, float UVv)
int  VertexAdd (float px, float py, float pz, float nx, float ny, float nz, float UVu, float UVv, float pRed, float pGreen, float pBlue, float pAlpha)
bool  VertexSet (FBVector4 pVertex, int pIndex=-1)
  Set a vertex.
bool  VertexSet (float px, float py, float pz, int pIndex=-1)
  Set a vertex.
bool  VertexNormalSet (FBVector4 pVertex, int pIndex=-1)
  Set a normal at a vertex.
bool  VertexNormalSet (float px, float py, float pz, int pIndex=-1)
  Set a normal at a vertex.
bool  VertexUVSet (FBVector2 pUV, int pIndex=-1)
  Set a UV coordinate.
bool  VertexUVSet (float pU, float pV, int pIndex=-1)
  Set a UV coordinate.
bool  VertexColorSet (FBVector4 pColor, int pIndex=-1)
  Set a Vertex Color.
bool  VertexColorSet (float pRed, float pGreen, float pBlue, float pAlpha, int pIndex=-1)
  Set a UV coordinate.

Public Attributes

FBPropertyGeometryMappingMode  NormalMappingMode
  Read Only Property: Normal mapping mode.
FBPropertyGeometryReferenceMode  NormalReferenceMode
  Read Only Property: Normal reference mode.
FBPropertyGeometryMappingMode  VertexColorMappingMode
  Read Only Property: Vertex Color mapping mode.
FBPropertyGeometryReferenceMode  VertexColorReferenceMode
  Read Only Property: Vertex Color reference mode.
FBPropertyGeometryMappingMode  MaterialMappingMode
  Read Only Property: Material mapping mode.

Member Function Documentation

bool GeometryBegin ( )

Begin/End geometry mapping.

Returns:
true if successful.
int VertexCount ( )

Get the number of vertices in the geometry.

Returns:
Number of vertices in the geometry.
FBVector4 VertexGet ( int  pIndex )

Get a vertex.

Parameters:
pIndex Index of vertex to get.
Returns:
Vertex stored at pIndex.
FBVector4 GetVertexes ( )

Get a pointer to the array of vertexes.

Returns:
pointer to the array of vertexes, or NULL if the array has not been allocated.
FBVector4 VertexNormalGet ( int  pIndex = -1 )

Get a normal at a vertex.

Parameters:
pIndex Vertex to get normal at(default=-1).
Returns:
Normal of vertex at pIndex.
FBVector2 VertexUVGet ( int  pIndex = -1 )

Get a UV coordinate.

Parameters:
pIndex Index of Vertex to get UV coordinate for(default=-1).
Returns:
UV coordinate of vertex at UVSetIndex.
FBVector4 VertexColorGet ( int  pIndex = -1 )

Get a Vertex Color.

Parameters:
pIndex Index of Vertex to get Color for(default=-1).
Returns:
Color of vertex at UVSetIndex.
int GetNormalsIndexArray ( int  pOutArrayCount )

Get a pointer to the index array of normals.

Parameters:
pOutArrayCount To return the length the array.
Returns:
Pointer to index array of normals, or NULL if the array hasn't been allocated yet.
FBVector4 GetNormalsDirectArray ( int  pOutArrayCount )

Get a pointer to the direct array of normals.

Parameters:
pOutArrayCount To return the length the array.
Returns:
Pointer to direct array of normals, or NULL if the array hasn't been allocated yet.
int GetVertexColorsIndexArray ( int  pOutArrayCount )

Get a pointer to the index array of vertex color.

Parameters:
pOutArrayCount To return the length the array.
Returns:
Pointer to index array of vertex color, or NULL if the array hasn't been allocated yet.
FBVector4 GetVertexColorsDirectArray ( int  pOutArrayCount )

Get a pointer to the direct array of vertex color.

Parameters:
pOutArrayCount To return the length the array.
Returns:
Pointer to direct array of vertex colors, or NULL if the array hasn't been allocated yet.
FBStringList GetUVSets ( )

Get available UVSet name.

Returns:
StringList contain all the available UVSets' name.
FBGeometryMappingMode GetUVSetMappingMode ( str  pUVSetName )

Get UVSet mapping mode.

Parameters:
pUVsetName The name of UVset
Returns:
Mapping mode of the UVset.
FBGeometryReferenceMode GetUVSetReferenceMode ( str  pUVSetName )

Get UVSet reference mode.

Parameters:
pUVsetName The name of UVset
Returns:
Reference mode of the UVset.
int GetVUVSetIndexArray ( int  pOutArrayCount,
str  pUVSetName 
)

Get a pointer to the index array of UVset.

Parameters:
pOutArrayCount To return the length the array.
pUVsetName The name of UVset
Returns:
Pointer to index array of UVSet, or NULL if the array hasn't been allocated yet.
FBVector2 GetUVSetDirectArray ( int  pOutArrayCount,
str  pUVsetName = None 
)

Get a pointer to the direct array of UVset.

Parameters:
pOutArrayCount To return the length the array.
pUVsetName The name of UVset
Returns:
pointer to the array of UV, or NULL is the array hasn't been allocated yet.
int GetMaterialIndexArray ( int  pOutArrayCount,
str  pUVSetName 
)

Get a pointer to the index array of Material.

Parameters:
pOutArrayCount To return the length the array.
Returns:
Pointer to index array of Material, or NULL if the array hasn't been allocated yet.
bool VertexGetSelected ( int  pIndex )

Get the selected state of a vertex.

Parameters:
pIndex The index of the vertex
Returns:
true if the vertex is selected.false if not
bool VertexSetSelected ( int  pIndex,
bool  pState 
)

Set the selected state of a vertex.

Parameters:
pIndex The index of the vertex
pState The true to selected, false to unselect
Returns:
true if the vertex is selected.false if not
bool VertexGetVisible ( int  pIndex )

Get the visible state of a vertex.

Parameters:
pIndex The index of the vertex
Returns:
true if the vertex is visible.false if not
bool VertexSetVisible ( int  pIndex,
bool  pState 
)

Set the visible state of a vertex.

Parameters:
pIndex The index of the vertex
pState The true to visible, false to unselect
Returns:
true if the vertex is visible.false if not
bool VertexGetTransformable ( int  pIndex )

Get the Transformable state of a vertex.

Parameters:
pIndex The index of the vertex
Returns:
true if the vertex is Transformable.false if not
int ShapeGetCount ( )

Get Shape Count.

str ShapeGetName ( int  pShapeIdx )

Return the shape Name.

int ShapeAdd ( str  pName )

Add new shape.

Parameters:
pName the shape name
Returns:
the index of the new shape, -1 if the shape adding fail.
ShapeClearAll ( )

Clears all the shapes.

ShapeInit ( int  pShapeIdx,
int  pDiffSize,
bool  pWithNormal = False 
)

Init the shape.

Parameters:
pShapeIdx The index of the shape to be inited.
pDiffSize Total number of different point (pos or normal) compared to base geometry.
pWithNormal Currently normal won't be considered during shape blending.
int ShapeGetDiffPointCount ( int  pShapeIdx )

Return the shape's total diff points count.

Parameters:
pShapeIdx The index of the shape
bool ShapeSetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
FBVector4  pPosDiff 
)

Set the differentiate point.

Parameters:
pShapeIdx The index of the shape
pDiffIndex The index of the diff point in this shape.
pOriIndex The index of the diff point in the original geometry.
pPosDiff The position differentiation.
pNormalDiff The normal differentiation.
bool ShapeSetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
FBVector4  pPosDiff,
FBVector4  pNormalDiff 
)
bool ShapeGetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
FBVector4  pPosDiff 
)

Get the differentiate point.

Parameters:
pShapeIdx The index of the shape
pDiffIndex The index of the diff point in this shape.
pOriIndex The index of the diff point in the original geometry.
pPosDiff The position differentiation.
pNormalDiff The normal differentiation.
bool ShapeGetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
FBVector4  pPosDiff,
FBVector4  pNormalDiff 
)
ModifyNotify ( kFBGeometryUpdateFlags  pFlags = kFBGeometryUpdateAll,
int  pFirstIndex = -1,
int  pLastIndex = -1 
)

The geometry has change, update the necessary flags.

Parameters:
pFlags flags for the kind of update that was done.
pFirstIndex Correspond to the start index of modification of points or normals.
pLastIndex Correspond to the last index of modification of points or normals.
VertexInit ( int  pSize,
bool  pResize,
bool  pInitUV = True,
bool  pInitVertexColor = False 
)

Resize or Reserve vertex, normal and UV array for performance.

Parameters:
pSize Number of vertices to resize or reserve.
pResize True, for the geometry with known vertex count, we should resize the arrays to fixed size, and call VertexSet() afterwards; Flase, While for dynamic size geometry, we should only reserve the arrays with the estimated optimal size, then call VertexAdd() to dynamically increase the vertex count.
pInitUV init UV array if true.
pInitVertexColor Init Vertex Color Array if true.
bool VertexClear ( )

Clear all vertices.

Returns:
true if successful.
Remarks:
Clear normal, UV and material as well.
int VertexAdd ( FBVector4  pVertex )

Add a vertex.

Parameters:
pVertex Vertex values used to add vertex.
Returns:
Index where vertex was added.
Remarks:
Set Normal with default value
int VertexAdd ( FBVector4  pVertex,
FBVector4  pNormal 
)

Add a vertex.

Parameters:
pVertex Vertex values used to add vertex.
pNormal Normal values used to add vertex.
Returns:
Index where vertex was added.
int VertexAdd ( FBVector4  pVertex,
FBVector4  pNormal,
FBVector2  pUV 
)

Add a vertex.

Parameters:
pVertex Vertex values used to add vertex.
pNormal Normal values used to add vertex.
pUV UV values used to add vertex.
Returns:
Index where vertex was added.
int VertexAdd ( FBVector4  pVertex,
FBVector4  pNormal,
FBVector2  pUV,
FBVector4  pVertexColor 
)

Add a vertex.

Parameters:
pVertex Vertex values used to add vertex.
pNormal Normal values used to add vertex.
pUV UV values used to add vertex.
pVertexColor Color values used to add vertex.
Returns:
Index where vertex was added.
int VertexAdd ( float  px,
float  py,
float  pz 
)

Add a vertex.

Parameters:
px X coordinate of vertex to add.
py Y coordinate of vertex to add.
pz Z coordinate of vertex to add.
Returns:
Index where vertex was added.
Remarks:
Set Normal with default value
int VertexAdd ( float  px,
float  py,
float  pz,
float  nx,
float  ny,
float  nz 
)
int VertexAdd ( float  px,
float  py,
float  pz,
float  nx,
float  ny,
float  nz,
float  UVu,
float  UVv 
)
int VertexAdd ( float  px,
float  py,
float  pz,
float  nx,
float  ny,
float  nz,
float  UVu,
float  UVv,
float  pRed,
float  pGreen,
float  pBlue,
float  pAlpha 
)
bool VertexSet ( FBVector4  pVertex,
int  pIndex = -1 
)

Set a vertex.

Parameters:
pVertex Vertex values used to set vertex.
pIndex Index of vertex to affect (default=-1).
Returns:
true if successful.
bool VertexSet ( float  px,
float  py,
float  pz,
int  pIndex = -1 
)

Set a vertex.

Parameters:
px X coordinate to set.
py Y coordinate to set.
pz Z coordinate to set.
pIndex Index of vertex to set(default=-1).
Returns:
true if successful.
bool VertexNormalSet ( FBVector4  pVertex,
int  pIndex = -1 
)

Set a normal at a vertex.

Parameters:
pVertex Normal to set.
pIndex Index of vertex to set Normal at(default=-1).
Returns:
true if successful.
bool VertexNormalSet ( float  px,
float  py,
float  pz,
int  pIndex = -1 
)

Set a normal at a vertex.

Parameters:
px X coordinate of normal.
py Y coordinate of normal.
pz Z coordinate of normal.
pIndex Index of vertex to set Normal at(default=-1).
Returns:
true if successful.
bool VertexUVSet ( FBVector2  pUV,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters:
pUV UV coordinate to set.
pIndex Index of Vertex to affect with UV coordinate(default=-1).
Returns:
true if successful.
bool VertexUVSet ( float  pU,
float  pV,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters:
pU U coordinate to set.
pV V coordinate to set.
pIndex Index of Vertex to affect with UV coordinate(default=-1).
Returns:
true if successful.
bool VertexColorSet ( FBVector4  pColor,
int  pIndex = -1 
)

Set a Vertex Color.

Parameters:
pColor Vertex Color to set.
pIndex Index of Vertex to affect with pColor(default=-1).
Returns:
true if successful.
bool VertexColorSet ( float  pRed,
float  pGreen,
float  pBlue,
float  pAlpha,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters:
pRed Red Color Channel to set, range [0, 1].
pGreen Green Color Channel to set, range [0, 1].
pBlue Blue Color Channel to set, range [0, 1].
pAlpha Alpha Color Channel to set, range [0, 1].
pIndex Index of Vertex to affect with Red, Green, Blue and Alpha (default=-1).
Returns:
true if successful.

Member Data Documentation

FBPropertyGeometryMappingMode NormalMappingMode

Read Only Property: Normal mapping mode.

FBPropertyGeometryReferenceMode NormalReferenceMode

Read Only Property: Normal reference mode.

FBPropertyGeometryMappingMode VertexColorMappingMode

Read Only Property: Vertex Color mapping mode.

FBPropertyGeometryReferenceMode VertexColorReferenceMode

Read Only Property: Vertex Color reference mode.

FBPropertyGeometryMappingMode MaterialMappingMode

Read Only Property: Material mapping mode.


FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry
FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry