FBGeometry Class Reference

#include <fbmodel.h>
FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry FBGeometry
Inheritance diagram for FBGeometry:
Inheritance graph
[legend]

List of all members.


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 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.

Constructor & Destructor Documentation

FBGeometry ( char *  pName,
HIObject  pObject = NULL  
)

Constructor.

Parameters:
pName  Name of Geometry.
pObject  For internal use only(default=NULL).

Member Function Documentation

bool GeometryBegin (  ) 

Begin/End geometry mapping.

Returns:
true if successful.

bool GeometryEnd (  ) 

Begin/End geometry mapping.

Returns:
true if successful.

void VertexInit ( int  pSize,
bool  pResize,
bool  pInitUV = true  
)

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.
pInit  init UV 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 ( 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

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.

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.

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.

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  
)

Get Shape Count.

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

Get Shape Count.

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 1885 of file fbmodel.h.

FBPropertyGeometryReferenceMode NormalReferenceMode

Read Only Property: Normal reference mode.

Definition at line 1886 of file fbmodel.h.

FBPropertyGeometryMappingMode MaterialMappingMode

Read Only Property: Material mapping mode.

Definition at line 1931 of file fbmodel.h.


Please send us your comments about this page.