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.
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. |
bool GeometryBegin | ( | ) |
bool GeometryEnd | ( | ) |
int VertexCount | ( | ) |
Get the number of vertices in the geometry.
FBVector4 VertexGet | ( | int | pIndex | ) |
Get a vertex.
pIndex | Index of vertex to get. |
pIndex
.FBVector4 GetVertexes | ( | ) |
Get a pointer to the array of vertexes.
NULL
if the
array has not been allocated.FBVector4 VertexNormalGet | ( | int | pIndex = -1 |
) |
Get a normal at a vertex.
pIndex | Vertex to get normal at(default=-1). |
pIndex
.FBVector2 VertexUVGet | ( | int | pIndex = -1 |
) |
Get a UV coordinate.
pIndex | Index of Vertex to get UV coordinate for(default=-1). |
UVSetIndex
.FBVector4 VertexColorGet | ( | int | pIndex = -1 |
) |
Get a Vertex Color.
pIndex | Index of Vertex to get Color for(default=-1). |
UVSetIndex
.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.FBVector4 GetNormalsDirectArray | ( | int | pOutArrayCount | ) |
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.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.FBVector4 GetVertexColorsDirectArray | ( | int | pOutArrayCount | ) |
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 | ( | ) |
Get available UVSet name.
FBGeometryMappingMode GetUVSetMappingMode | ( | str | pUVSetName | ) |
Get UVSet mapping mode.
pUVsetName | The name of UVset |
FBGeometryReferenceMode GetUVSetReferenceMode | ( | str | pUVSetName | ) |
Get UVSet reference mode.
pUVsetName | The name of UVset |
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.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.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.Get the selected state of a vertex.
pIndex | The index of the vertex |
Set the selected state of a vertex.
pIndex | The index of the vertex |
pState | The true to selected, false to unselect |
Get the visible state of a vertex.
pIndex | The index of the vertex |
Set the visible state of a vertex.
pIndex | The index of the vertex |
pState | The true to visible, false to unselect |
Get the Transformable state of a vertex.
pIndex | The index of the vertex |
int ShapeGetCount | ( | ) |
Get Shape Count.
Return the shape Name.
Add new shape.
pName | the shape name |
ShapeClearAll | ( | ) |
Clears all the shapes.
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. |
Return the shape's total diff points count.
pShapeIdx | The index of the shape |
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. |
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. |
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. |
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 | ( | FBVector4 | pVertex | ) |
Add a vertex.
pVertex | Vertex values used to add vertex. |
int VertexAdd | ( | FBVector4 | pVertex, |
FBVector4 | pNormal | ||
) |
Add a vertex.
pVertex | Vertex values used to add vertex. |
pNormal | Normal values used to add vertex. |
int VertexAdd | ( | FBVector4 | pVertex, |
FBVector4 | pNormal, | ||
FBVector2 | pUV | ||
) |
Add a vertex.
pVertex | Vertex values used to add vertex. |
pNormal | Normal values used to add vertex. |
pUV | UV values used to add vertex. |
int VertexAdd | ( | FBVector4 | pVertex, |
FBVector4 | pNormal, | ||
FBVector2 | pUV, | ||
FBVector4 | pVertexColor | ||
) |
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. |
Add a vertex.
px | X coordinate of vertex to add. |
py | Y coordinate of vertex to add. |
pz | Z coordinate of vertex to add. |
Set a vertex.
pVertex | Vertex values used to set vertex. |
pIndex | Index of vertex to affect (default=-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). |
Set a normal at a vertex.
pVertex | Normal to set. |
pIndex | Index of vertex to set Normal at(default=-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). |
Set a UV coordinate.
pUV | UV coordinate to set. |
pIndex | Index of Vertex to affect with UV coordinate(default=-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). |
Set a Vertex Color.
pColor | Vertex Color to set. |
pIndex | Index of Vertex to affect with pColor(default=-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). |
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.