This reference page is linked to from the following overview topics: Scene Elements, FBGeometry - Meshes and Surfaces.
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.
#include <fbmodel.h>

Public Member Functions |
|
| void | 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 (FBVertex pVertex) |
| Add a vertex. |
|
| int | VertexAdd (FBVertex pVertex, FBNormal pNormal) |
| Add a vertex. |
|
| int | VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV) |
| Add a vertex. |
|
| int | VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV, FBColorF pVertexColor) |
| Add a vertex. |
|
| int | VertexAdd (double px, double py, double pz) |
| Add a vertex. |
|
| int | VertexAdd (double px, double py, double pz, double nx, double ny, double nz) |
| int | VertexAdd (double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv) |
| int | VertexAdd (double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv, double pRed, double pGreen, double pBlue, double pAlpha) |
| bool | VertexSet (FBVertex pVertex, int pIndex=-1) |
| Set a vertex. |
|
| bool | VertexSet (double px, double py, double pz, int pIndex=-1) |
| Set a vertex. |
|
| bool | VertexNormalSet (FBNormal pVertex, int pIndex=-1) |
| Set a normal at a vertex. |
|
| bool | VertexNormalSet (double px, double py, double pz, int pIndex=-1) |
| Set a normal at a vertex. |
|
| bool | VertexUVSet (FBUV pUV, int pIndex=-1) |
| Set a UV coordinate. |
|
| bool | VertexUVSet (float pU, float pV, int pIndex=-1) |
| Set a UV coordinate. |
|
| bool | VertexColorSet (FBColorF 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. |
|
|
Simple Geometry Editing Interface: Vertex,
Normal, UV.
|
|
|
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. |
|
| bool | GeometryBegin () |
| Begin/End geometry mapping. |
|
| bool | GeometryEnd () |
|
Query interface for Vertex's Position,
Normal, UV of default set.
|
|
| int | VertexCount () const |
| Get the number of vertices in the geometry.
|
|
| FBVertex | VertexGet (int pIndex) const |
| Get a vertex. |
|
| FBVertex * | GetVertexes () const |
| Get a pointer to the array of vertexes.
|
|
| FBNormal | VertexNormalGet (int pIndex=-1) const |
| Get a normal at a vertex. |
|
| FBUV | VertexUVGet (int pIndex=-1) const |
| Get a UV coordinate. |
|
| FBColorF | VertexColorGet (int pIndex=-1) const |
| Get a Vertex Color. |
|
|
Vertex Selection/Manipulation
Interface.
|
|
| 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.
|
|
|
Shape Management Interface
|
|
| int | ShapeGetCount () const |
| Get Shape Count. |
|
| const char * | ShapeGetName (int pShapeIdx) const |
| Return the shape Name. |
|
| int | ShapeAdd (const char *pName) |
| Add new shape. |
|
| void | ShapeClearAll () |
| Clears all the shapes. |
|
| void | ShapeInit (int pShapeIdx, int pDiffSize, bool pWithNormal=false) |
| Init the shape. |
|
| int | ShapeGetDiffPointCount (int pShapeIdx) const |
| Return the shape's total diff points count.
|
|
| bool | ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff) |
| Set the differentiate point. |
|
| bool | ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff, const FBNormal &pNormalDiff) |
| bool | ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff) const |
| Get the differentiate point. |
|
| bool | ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff, FBNormal &pNormalDiff) const |
|
Geometry Editting Notfication
|
|
| void | ModifyNotify (kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1) |
| The geometry has change, update the
necessary flags. |
|
Query interface for Geometry Position, Normal, Color, UV and Material arrays. |
|
| 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. |
|
| int * | GetNormalsIndexArray (int &pOutArrayCount) const |
| Get a pointer to the index array of normals.
|
|
| FBNormal * | GetNormalsDirectArray (int &pOutArrayCount) const |
| Get a pointer to the direct array of
normals. |
|
| int * | GetVertexColorsIndexArray (int &pOutArrayCount) const |
| Get a pointer to the index array of vertex
color. |
|
| FBColorF * | GetVertexColorsDirectArray (int &pOutArrayCount) const |
| Get a pointer to the direct array of vertex
color. |
|
| FBStringList | GetUVSets () const |
| Get available UVSet name. |
|
| FBGeometryMappingMode | GetUVSetMappingMode (const char *pUVSetName) const |
| Get UVSet mapping mode. |
|
| FBGeometryReferenceMode | GetUVSetReferenceMode (const char *pUVSetName) const |
| Get UVSet reference mode. |
|
| int * | GetVUVSetIndexArray (int &pOutArrayCount, const char *pUVSetName) const |
| Get a pointer to the index array of UVset.
|
|
| FBUV * | GetUVSetDirectArray (int &pOutArrayCount, const char *pUVsetName=NULL) const |
| Get a pointer to the direct array of UVset.
|
|
| int * | GetMaterialIndexArray (int &pOutArrayCount, const char *pUVSetName) const |
| Get a pointer to the index array of
Material. |
|
| bool GeometryBegin | ( | ) |
| bool GeometryEnd | ( | ) |
| void VertexInit | ( | int | pSize, |
| bool | pResize, | ||
| bool | pInitUV = true, |
||
| bool | pInitVertexColor =
false |
||
| ) |
Resize or Reserve vertex, normal and UV array for performance.
| 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.
| int VertexAdd | ( | FBVertex | pVertex | ) |
Add a vertex.
| pVertex | Vertex values used to add vertex. |
Add a vertex.
| pVertex | Vertex values used to add vertex. |
| pNormal | Normal values used to add vertex. |
Add a vertex.
| pVertex | Vertex values used to add vertex. |
| pNormal | Normal values used to add vertex. |
| pUV | UV values used to add vertex. |
Add a vertex.
| 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. |
| int VertexAdd | ( | double | px, |
| double | py, | ||
| double | pz | ||
| ) |
Add a vertex.
| px | X coordinate of vertex to add. |
| py | Y coordinate of vertex to add. |
| pz | Z coordinate of vertex to add. |
| int VertexAdd | ( | double | px, |
| double | py, | ||
| double | pz, | ||
| double | nx, | ||
| double | ny, | ||
| double | nz | ||
| ) |
| int VertexAdd | ( | double | px, |
| double | py, | ||
| double | pz, | ||
| double | nx, | ||
| double | ny, | ||
| double | nz, | ||
| double | UVu, | ||
| double | UVv | ||
| ) |
| int VertexAdd | ( | double | px, |
| double | py, | ||
| double | pz, | ||
| double | nx, | ||
| double | ny, | ||
| double | nz, | ||
| double | UVu, | ||
| double | UVv, | ||
| double | pRed, | ||
| double | pGreen, | ||
| double | pBlue, | ||
| double | pAlpha | ||
| ) |
| bool VertexSet | ( | FBVertex | pVertex, |
| int | pIndex = -1 |
||
| ) |
Set a vertex.
| pVertex | Vertex values used to set vertex. |
| pIndex | Index of vertex to affect (default=-1). |
| bool VertexSet | ( | double | px, |
| double | py, | ||
| double | pz, | ||
| int | pIndex = -1 |
||
| ) |
Set a vertex.
| px | X coordinate to set. |
| py | Y coordinate to set. |
| pz | Z coordinate to set. |
| pIndex | Index of vertex to set(default=-1). |
| bool VertexNormalSet | ( | FBNormal | pVertex, |
| int | pIndex = -1 |
||
| ) |
Set a normal at a vertex.
| pVertex | Normal to set. |
| pIndex | Index of vertex to set Normal at(default=-1). |
| bool VertexNormalSet | ( | double | px, |
| double | py, | ||
| double | pz, | ||
| int | pIndex = -1 |
||
| ) |
Set a normal at a vertex.
| 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). |
| bool VertexUVSet | ( | FBUV | pUV, |
| int | pIndex = -1 |
||
| ) |
Set a UV coordinate.
| pUV | UV coordinate to set. |
| pIndex | Index of Vertex to affect with UV coordinate(default=-1). |
| bool VertexUVSet | ( | float | pU, |
| float | pV, | ||
| int | pIndex = -1 |
||
| ) |
Set a UV coordinate.
| pU | U coordinate to set. |
| pV | V coordinate to set. |
| pIndex | Index of Vertex to affect with UV coordinate(default=-1). |
| bool VertexColorSet | ( | FBColorF | pColor, |
| int | pIndex = -1 |
||
| ) |
Set a Vertex Color.
| pColor | Vertex Color to set. |
| pIndex | Index of Vertex to affect with pColor(default=-1). |
| bool VertexColorSet | ( | float | pRed, |
| float | pGreen, | ||
| float | pBlue, | ||
| float | pAlpha, | ||
| int | pIndex = -1 |
||
| ) |
Set a UV coordinate.
| 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). |
| int VertexCount | ( | ) | const |
Get the number of vertices in the geometry.
| FBVertex VertexGet | ( | int | pIndex | ) | const |
Get a vertex.
| pIndex | Index of vertex to get. |
pIndex.| FBVertex* GetVertexes | ( | ) | const |
Get a pointer to the array of vertexes.
NULL if the
array has not been allocated.| FBNormal VertexNormalGet | ( | int | pIndex = -1 |
) | const |
Get a normal at a vertex.
| pIndex | Vertex to get normal at(default=-1). |
pIndex.| FBUV VertexUVGet | ( | int | pIndex = -1 |
) | const |
Get a UV coordinate.
| pIndex | Index of Vertex to get UV coordinate for(default=-1). |
UVSetIndex.| FBColorF VertexColorGet | ( | int | pIndex = -1 |
) | const |
Get a Vertex Color.
| pIndex | Index of Vertex to get Color for(default=-1). |
UVSetIndex.| int* GetNormalsIndexArray | ( | int & | pOutArrayCount | ) | const |
Get a pointer to the index array of normals.
| pOutArrayCount | To return the length the array. |
NULL if the
array hasn't been allocated yet.| FBNormal* GetNormalsDirectArray | ( | int & | pOutArrayCount | ) | const |
Get a pointer to the direct array of normals.
| pOutArrayCount | To return the length the array. |
NULL if the
array hasn't been allocated yet.| int* GetVertexColorsIndexArray | ( | int & | pOutArrayCount | ) | const |
Get a pointer to the index array of vertex color.
| pOutArrayCount | To return the length the array. |
NULL if
the array hasn't been allocated yet.| FBColorF* GetVertexColorsDirectArray | ( | int & | pOutArrayCount | ) | const |
Get a pointer to the direct array of vertex color.
| pOutArrayCount | To return the length the array. |
NULL
if the array hasn't been allocated yet.| FBStringList GetUVSets | ( | ) | const |
Get available UVSet name.
| FBGeometryMappingMode GetUVSetMappingMode | ( | const char * | pUVSetName | ) | const |
Get UVSet mapping mode.
| pUVsetName | The name of UVset |
| FBGeometryReferenceMode GetUVSetReferenceMode | ( | const char * | pUVSetName | ) | const |
Get UVSet reference mode.
| pUVsetName | The name of UVset |
| int* GetVUVSetIndexArray | ( | int & | pOutArrayCount, |
| const char * | pUVSetName | ||
| ) | const |
Get a pointer to the index array of UVset.
| pOutArrayCount | To return the length the array. |
| pUVsetName | The name of UVset |
NULL if the
array hasn't been allocated yet.| FBUV* GetUVSetDirectArray | ( | int & | pOutArrayCount, |
| const char * | pUVsetName =
NULL |
||
| ) | const |
Get a pointer to the direct array of UVset.
| pOutArrayCount | To return the length the array. |
| pUVsetName | The name of UVset |
NULL is the array
hasn't been allocated yet.| int* GetMaterialIndexArray | ( | int & | pOutArrayCount, |
| const char * | pUVSetName | ||
| ) | const |
Get a pointer to the index array of Material.
| pOutArrayCount | To return the length the array. |
NULL if the
array hasn't been allocated yet.| bool VertexGetSelected | ( | int | pIndex | ) |
Get the selected state of a vertex.
| pIndex | The index of the vertex |
| bool VertexSetSelected | ( | int | pIndex, |
| bool | pState | ||
| ) |
Set the selected state of a vertex.
| pIndex | The index of the vertex |
| pState | The true to selected, false to unselect |
| bool VertexGetVisible | ( | int | pIndex | ) |
Get the visible state of a vertex.
| pIndex | The index of the vertex |
| bool VertexSetVisible | ( | int | pIndex, |
| bool | pState | ||
| ) |
Set the visible state of a vertex.
| pIndex | The index of the vertex |
| pState | The true to visible, false to unselect |
| bool VertexGetTransformable | ( | int | pIndex | ) |
Get the Transformable state of a vertex.
| pIndex | The index of the vertex |
| int ShapeGetCount | ( | ) | const |
Get Shape Count.
| const char* ShapeGetName | ( | int | pShapeIdx | ) | const |
Return the shape Name.
| int ShapeAdd | ( | const char * | pName | ) |
Add new shape.
| pName | the shape name |
| void ShapeClearAll | ( | ) |
Clears all the shapes.
| void ShapeInit | ( | int | pShapeIdx, |
| int | pDiffSize, | ||
| bool | pWithNormal =
false |
||
| ) |
Init the shape.
| 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 | ) | const |
Return the shape's total diff points count.
| pShapeIdx | The index of the shape |
| bool ShapeSetDiffPoint | ( | int | pShapeIdx, |
| int | pDiffIndex, | ||
| int | pOriIndex, | ||
| const FBVertex & | pPosDiff | ||
| ) |
Set the differentiate point.
| 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, | ||
| FBVertex & | pPosDiff | ||
| ) | const |
Get the differentiate point.
| 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. |
| void ModifyNotify | ( | kFBGeometryUpdateFlags | pFlags =
kFBGeometryUpdateAll, |
| int | pFirstIndex = -1, |
||
| int | pLastIndex =
-1 |
||
| ) |
The geometry has change, update the necessary flags.
| 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. |
| 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.