#include
<fbmodel.h>
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.
Definition at line 1719 of file fbmodel.h.
Query interface for Geometry Position, Normal, UV, Material array. |
|
FBPropertyGeometryMappingMode | NormalMappingMode |
Read Only Property: Normal mapping
mode. |
|
FBPropertyGeometryReferenceMode | NormalReferenceMode |
Read Only Property: Normal 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. |
|
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. |
|
Public Member Functions |
|
FBGeometry (char *pName, HIObject pObject=NULL) | |
Constructor. |
|
void | VertexInit (int pSize, bool pResize, bool pInitUV=true) |
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 (double px, double py, double pz) |
Add a vertex. |
|
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. |
|
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 () |
Begin/End geometry mapping. |
|
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. |
|
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) |
Get Shape Count. |
|
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 |
Get Shape Count. |
|
Geometry Editting Notfication
|
|
void | ModifyNotify (kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1) |
The geometry has change, update the
necessary flags. |
FBGeometry | ( | char * | pName, | |
HIObject | pObject = NULL |
|||
) |
Constructor.
pName | Name of Geometry. | |
pObject | For internal use only(default=NULL). |
bool GeometryBegin | ( | ) |
Begin/End geometry mapping.
bool GeometryEnd | ( | ) |
Begin/End geometry mapping.
void VertexInit | ( | int | pSize, | |
bool | pResize, | |||
bool | pInitUV = true |
|||
) |
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. | |
pInit | init UV 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. |
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. |
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). |
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
.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.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 ShapeSetDiffPoint | ( | int | pShapeIdx, | |
int | pDiffIndex, | |||
int | pOriIndex, | |||
const FBVertex & | pPosDiff, | |||
const FBNormal & | pNormalDiff | |||
) |
Get Shape Count.
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. |
bool ShapeGetDiffPoint | ( | int | pShapeIdx, | |
int | pDiffIndex, | |||
int & | pOriIndex, | |||
FBVertex & | pPosDiff, | |||
FBNormal & | pNormalDiff | |||
) | const |
Get Shape Count.
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 |
FBPropertyGeometryReferenceMode NormalReferenceMode |
FBPropertyGeometryMappingMode MaterialMappingMode |