Public Member Functions

FBGeometry Class Reference

This reference page is linked to from the following overview topics: Scene Elements, FBGeometry - Meshes and Surfaces.


Search for all occurrences

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.

Definition at line 1876 of file fbmodel.h.

#include <fbmodel.h>

Inheritance diagram for FBGeometry:
Inheritance graph
[legend]

List of all members.

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.

Member Function Documentation

bool GeometryBegin ( )

Begin/End geometry mapping.

Returns:
true if successful.
bool GeometryEnd ( )
void 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 ( FBVertex  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 ( FBVertex  pVertex,
FBNormal  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 ( FBVertex  pVertex,
FBNormal  pNormal,
FBUV  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 ( FBVertex  pVertex,
FBNormal  pNormal,
FBUV  pUV,
FBColorF  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 ( double  px,
double  py,
double  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 ( 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.

Parameters:
pVertex Vertex values used to set vertex.
pIndex Index of vertex to affect (default=-1).
Returns:
true if successful.
bool VertexSet ( double  px,
double  py,
double  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 ( FBNormal  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 ( double  px,
double  py,
double  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 ( FBUV  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 ( FBColorF  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.
int VertexCount ( ) const

Get the number of vertices in the geometry.

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

Get a vertex.

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

Get a pointer to the array of vertexes.

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

Get a normal at a vertex.

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

Get a UV coordinate.

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

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

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.
FBNormal* GetNormalsDirectArray ( int &  pOutArrayCount ) const

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

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.
FBColorF* GetVertexColorsDirectArray ( int &  pOutArrayCount ) const

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

Get available UVSet name.

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

Get UVSet mapping mode.

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

Get UVSet reference mode.

Parameters:
pUVsetName The name of UVset
Returns:
Reference mode of the UVset.
int* GetVUVSetIndexArray ( int &  pOutArrayCount,
const char *  pUVSetName 
) const

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.
FBUV* GetUVSetDirectArray ( int &  pOutArrayCount,
const char *  pUVsetName = NULL 
) const

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,
const char *  pUVSetName 
) const

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

Get Shape Count.

const char* ShapeGetName ( int  pShapeIdx ) const

Return the shape Name.

int ShapeAdd ( const char *  pName )

Add new shape.

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

Clears all the shapes.

void 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 ) const

Return the shape's total diff points count.

Parameters:
pShapeIdx The index of the shape
bool ShapeSetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
const FBVertex 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,
const FBVertex pPosDiff,
const FBNormal pNormalDiff 
)
bool ShapeGetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int &  pOriIndex,
FBVertex pPosDiff 
) const

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,
FBVertex pPosDiff,
FBNormal pNormalDiff 
) const
void 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.

Member Data Documentation

FBPropertyGeometryMappingMode NormalMappingMode

Read Only Property: Normal mapping mode.

Definition at line 2077 of file fbmodel.h.

FBPropertyGeometryReferenceMode NormalReferenceMode

Read Only Property: Normal reference mode.

Definition at line 2078 of file fbmodel.h.

FBPropertyGeometryMappingMode VertexColorMappingMode

Read Only Property: Vertex Color mapping mode.

Definition at line 2092 of file fbmodel.h.

FBPropertyGeometryReferenceMode VertexColorReferenceMode

Read Only Property: Vertex Color reference mode.

Definition at line 2093 of file fbmodel.h.

FBPropertyGeometryMappingMode MaterialMappingMode

Read Only Property: Material mapping mode.

Definition at line 2138 of file fbmodel.h.


The documentation for this class was generated from the following file:

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