Open Reality Reference Guide
FBGeometry Class Reference

Geometry class. More...

#include <fbgeometry.h>

Inheritance diagram for FBGeometry:

Public Member Functions

Simple Geometry Editing Interface:

Geometries created with SDK can only use the kFBGeometryMapping_ALL_SAME or kFBGeometryMapping_BY_POLYGON mapping mode for material, kFBGeometryMapping_BY_CONTROL_POINT / kFBGeometryReference_DIRECT for Normal, UV, Color, Tangent and Binormal.

And only support one set of UV

bool GeometryBegin ()
 Begin geometry editing. More...
 
bool GeometryEnd ()
 End geometry editing. More...
 
bool IsEditingEnabled () const
 Is geometry editing enabled. More...
 
void VertexInit (int pSize, bool pResize, bool pInitUV=true, bool pInitVertexColor=false)
 Resize or Reserve vertex, normal and UV array for performance. More...
 
bool VertexClear ()
 Clear all Vertex arrays. More...
 
int VertexAdd (FBVertex pVertex)
 Add a vertex. More...
 
int VertexAdd (FBVertex pVertex, FBNormal pNormal)
 Add a vertex. More...
 
int VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV)
 Add a vertex. More...
 
int VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV, FBColorF pVertexColor)
 Add a vertex. More...
 
int VertexAdd (double px, double py, double pz)
 Add a vertex. More...
 
int VertexAdd (double px, double py, double pz, double nx, double ny, double nz)
 Begin geometry editing. More...
 
int VertexAdd (double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv)
 Begin geometry editing. More...
 
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)
 Begin geometry editing. More...
 
bool VertexSet (FBVertex pVertex, int pIndex=-1)
 Set a vertex. More...
 
bool VertexSet (double px, double py, double pz, int pIndex=-1)
 Set a vertex. More...
 
bool VertexNormalSet (FBNormal pVertex, int pIndex=-1)
 Set a normal at a vertex. More...
 
bool VertexNormalSet (double px, double py, double pz, int pIndex=-1)
 Set a normal at a vertex. More...
 
bool VertexUVSet (FBUV pUV, int pIndex=-1)
 Set a UV coordinate. More...
 
bool VertexUVSet (float pU, float pV, int pIndex=-1)
 Set a UV coordinate. More...
 
bool VertexColorSet (FBColorF pColor, int pIndex=-1)
 Set a Vertex Color. More...
 
bool VertexColorSet (float pRed, float pGreen, float pBlue, float pAlpha, int pIndex=-1)
 Set a UV coordinate. More...
 
Query interface for Vertex's Position, Normal, UV of default set.
int VertexCount () const
 Get the number of vertices in the geometry. More...
 
FBVertex VertexGet (int pIndex) const
 Get a vertex. More...
 
FBVertexGetVertexes () const
 Get a pointer to the array of vertexes. More...
 
FBNormal VertexNormalGet (int pIndex=-1) const
 Get a normal at a vertex. More...
 
FBUV VertexUVGet (int pIndex=-1) const
 Get a UV coordinate. More...
 
FBColorF VertexColorGet (int pIndex=-1) const
 Get a Vertex Color. More...
 
Vertex Selection/Manipulation Interface.
bool VertexGetSelected (int pIndex)
 Get the selected state of a vertex. More...
 
bool VertexSetSelected (int pIndex, bool pState)
 Set the selected state of a vertex. More...
 
bool VertexGetVisible (int pIndex)
 Get the visible state of a vertex. More...
 
bool VertexSetVisible (int pIndex, bool pState)
 Set the visible state of a vertex. More...
 
bool VertexGetTransformable (int pIndex)
 Get the Transformable state of a vertex. More...
 
Shape Management Interface
int ShapeGetCount () const
 Get Shape Count. More...
 
const char * ShapeGetName (int pShapeIdx) const
 Return the shape Name. More...
 
int ShapeAdd (const char *pName)
 Add new shape. More...
 
void ShapeClearAll ()
 Clears all the shapes. More...
 
void ShapeInit (int pShapeIdx, int pDiffSize, bool pWithNormal=false)
 Init the shape. More...
 
int ShapeGetDiffPointCount (int pShapeIdx) const
 Return the shape's total diff points count. More...
 
bool ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff)
 Set the differentiate point. More...
 
bool ShapeSetDiffPoint (int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff, const FBNormal &pNormalDiff)
 Set the differentiate point. More...
 
bool ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff) const
 Get the differentiate point. More...
 
bool ShapeGetDiffPoint (int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff, FBNormal &pNormalDiff) const
 Get the differentiate point. More...
 
Geometry Editing Notification
void ModifyNotify (kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1)
 The geometry has change, update the necessary flags. More...
 
- Public Member Functions inherited from FBComponent
 FBComponent (HIObject pObject)
 Constructor. More...
 
virtual ~FBComponent ()
 Destructor. More...
 
virtual bool FBCreate ()
 Open Reality Creation function. More...
 
virtual void FBDestroy ()
 Open Reality destruction function. More...
 
virtual void FBDelete () override
 Open Reality deletion function. More...
 
virtual bool SetHIObject (HIObject pObject, bool pSDKComponent) override
 Assign component to an internal pointer. More...
 
virtual int PropertyAdd (FBProperty *pProperty)
 Add a property to the component's property manager. More...
 
bool PropertyAddReferenceProperty (FBProperty *pReferenceProperty)
 Add a reference property to the component's property manager. More...
 
void PropertyRemove (FBProperty *pProperty)
 Remove a Property from the component's Property manager. More...
 
void PropertyGetModifiedList (FBArrayTemplate< FBProperty * > &pPropList, FBPlugModificationFlag pModificationFlags)
 Get list of properties which have been modified since last loading. More...
 
FBPropertyPropertyCreate (const char *pName, FBPropertyType pType, const char *pDataType, bool pAnimatable, bool pIsUser=false, FBProperty *pReferenceSource=NULL)
 Create user or dynamic property. More...
 
FBObjectFlag GetObjectFlags ()
 Get all Object Flags (concatenated). More...
 
void SetObjectFlags (FBObjectFlag pFlags)
 SetObjectFlags. More...
 
bool HasObjectFlags (FBObjectFlag pFlags)
 Check whether a specific object flag is enabled. More...
 
void EnableObjectFlags (FBObjectFlag pFlags)
 Enable a specific Object Flags. More...
 
void DisableObjectFlags (FBObjectFlag pFlags)
 Disable a specific Object Flags. More...
 
void SetObjectStatus (FBObjectStatus pStatus, bool pValue)
 Enable/Disable a specific Object Status. More...
 
bool GetObjectStatus (FBObjectStatus pStatus)
 Check to see if an object status is enabled. More...
 
bool ProcessNamespaceHierarchy (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessNamespaceHierarchy. More...
 
bool ProcessObjectNamespace (FBNamespaceAction pNamespaceAction, const char *pNamespaceName, const char *pReplaceTo=NULL, bool pAddRight=true)
 ProcessObjectNamespace. More...
 
virtual const char * ClassName () override
 Get the class name. More...
 
virtual bool UseCustomPropertyViewSet () const
 Use the custom property viewSet or not. More...
 
const char * GetFullName (void)
 Get the full name. More...
 
void SetOwnerNamespace (FBNamespace *pOwnerNSObj)
 Set the owner Namespace object. More...
 
FBNamespaceGetOwnerNamespace (void)
 Get the owner Namespace object. More...
 
FBFileReferenceGetOwnerFileReference (void)
 Get the owner FileReference object. More...
 
void HardSelect ()
 HardSelect. More...
 
virtual bool Is (int pTypeId) override
 Returns true if object is of type TypeId. More...
 
virtual int GetTypeId () override
 GetTypeId( int pTypeId ) More...
 
- Public Member Functions inherited from FBWrapperHolder
FBScriptWrapperGetWrapper ()
 Return the wrapper interface of this FBObject. More...
 
void AddWrapper (FBScriptWrapper *)
 
void RemoveWrapper (FBScriptWrapper *)
 

Protected Member Functions

 FBGeometry (const char *pName, HIObject pObject=NULL)
 Constructor. More...
 
- Protected Member Functions inherited from FBPlug
bool IsSDKComponent ()
 Return whether or not item is an SDK component. More...
 
bool ConnectSrc (FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDst (FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool ConnectSrcAt (int pDst_SrcIndex, FBPlug *pSrc, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a source connection. More...
 
bool ConnectDstAt (int pSrc_DstIndex, FBPlug *pDst, FBConnectionType pConnectionType=kFBConnectionTypeNone)
 Add a destination connection. More...
 
bool DisconnectDst (FBPlug *pDst)
 Remove a destination connection. More...
 
bool DisconnectSrc (FBPlug *pSrc)
 Remove a source connection. More...
 
void DisconnectAllSrc ()
 Remove all source connections. More...
 
void DisconnectAllDst ()
 Remove all destination connections. More...
 
bool DisconnectDstAt (int pIndex)
 Remove a destination connection at a specified index. More...
 
bool DisconnectSrcAt (int pIndex)
 Remove a source connection at a specified index. More...
 
bool ReplaceDstAt (int pIndex, FBPlug *pDst)
 Replace a destination connection at a specified index. More...
 
bool ReplaceSrcAt (int pIndex, FBPlug *pSrc)
 Replace a source connection at a specified index. More...
 
bool SwapSrc (int pIndexA, int pIndexB)
 Swap source connection at index A with source connection at index B. More...
 
bool MoveSrcAt (int pIndex, int pAtIndex)
 Move source connection at pIndex to pAtIndex. More...
 
bool MoveSrcAt (FBPlug *pSrc, FBPlug *pAtSrc)
 Move source connection pSrc to the position of pAtSrc. More...
 
int GetSrcCount ()
 Get source connection count. More...
 
FBPlugGetSrc (int pIndex)
 Get a source connection's plug at specified index. More...
 
FBConnectionType GetSrcType (int pIndex)
 Get a source connection's type at specified index. More...
 
int GetDstCount ()
 Get destination connection count. More...
 
FBPlugGetDst (int pIndex)
 Get a destination connection's plug at specified index. More...
 
FBConnectionType GetDstType (int pIndex)
 Get a destination connection's type at specified index. More...
 
bool BeginChange ()
 Begins a change on multiple plugs. More...
 
void EndChange ()
 Ends a change on multiple plugs. More...
 
void SetSelfModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's self modification flag. More...
 
bool GetSelfModified (FBPlugModificationFlag pFlag)
 Tell if the plug's self has changed. More...
 
void SetContentModified (FBPlugModificationFlag pFlag, bool pBool)
 Set the plug's owned property/object's modification flag. More...
 
bool GetContentModified (FBPlugModificationFlag pFlag)
 Tell if the plug's content has changed. More...
 
int GetPlugConnectionModifiedList (FBPlugList &pPlugList, FBPlugModificationFlag pConnectionModificatonFlag, bool pAddRemove)
 Get plug's modified src/dst property/object connection added/removed List. More...
 
bool RevertModification (FBPlugModificationFlag pFlag=kFBAllModifiedMask)
 Revert the plug's modification to original status. More...
 
void SetStatusFlag (FBPlugStatusFlag pStatus, bool pValue)
 Set the plug's status flag. More...
 
bool GetStatusFlag (FBPlugStatusFlag pStatus) const
 Tell if the plug's status has changed. More...
 
FBPlugGetOwner ()
 Get the owner of this plug. More...
 
FBPlugGetOwned (int pIndex)
 Get the owned plug at specified index. More...
 
int GetOwnedCount ()
 Get the owned plug count. More...
 
virtual bool PlugDataNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugDataNotify when overloaded is equivalent of FBSystem.OnConnectionDataNotify but in the context of the derived object only. More...
 
virtual bool PlugStateNotify (FBConnectionAction pAction, FBPlug *pThis, void *pData=NULL, void *pDataOld=NULL, int pDataSize=0)
 PlugStateNotify when overloaded is equivalent of FBSystem.OnConnectionStateNotify but in the context of the derived object only. More...
 
virtual bool PlugNotify (FBConnectionAction pAction, FBPlug *pThis, int pIndex, FBPlug *pPlug=NULL, FBConnectionType pConnectionType=kFBConnectionTypeNone, FBPlug *pNewPlug=NULL)
 PlugNotify when overloaded is equivalent of FBSystem.OnConnectionNotify but in the context of the derived object only. More...
 

Interface for direct manipulating Geometry Position, Normal, Color, UV and Material arrays.

FBPropertyGeometryMappingMode NormalMappingMode
 Read Only Property: Normal mapping mode. More...
 
FBPropertyGeometryReferenceMode NormalReferenceMode
 Read Only Property: Normal reference mode. More...
 
FBPropertyGeometryMappingMode TangentMappingMode
 Read Only Property: Tangent mapping mode. More...
 
FBPropertyGeometryReferenceMode TangentReferenceMode
 Read Only Property: Tangent reference mode. More...
 
FBPropertyGeometryMappingMode BinormalMappingMode
 Read Only Property: Binormal mapping mode. More...
 
FBPropertyGeometryReferenceMode BinormalReferenceMode
 Read Only Property: Binormal reference mode. More...
 
FBPropertyGeometryMappingMode VertexColorMappingMode
 Read Only Property: Vertex Color mapping mode. More...
 
FBPropertyGeometryReferenceMode VertexColorReferenceMode
 Read Only Property: Vertex Color reference mode. More...
 
FBPropertyGeometryMappingMode MaterialMappingMode
 Read Property: Material mapping mode. More...
 
bool VertexArrayInit (int pVertexcount, bool pUniqueMaterial, unsigned int pFBGeometryArrayIDs=0)
 Init geometry vertex arrays. More...
 
bool VertexArrayClear ()
 Clear all geometry vertex arrays. More...
 
FBVertexGetPositionsArray (int &pOutArrayCount) const
 Get a pointer to the position array. More...
 
int * GetNormalsIndexArray (int &pOutArrayCount) const
 Get a pointer to the index array of normals. More...
 
FBNormalGetNormalsDirectArray (int &pOutArrayCount) const
 Get a pointer to the direct array of normals. More...
 
int * GetTangentsIndexArray (int &pOutArrayCount) const
 Get a pointer to the index array of tangents. More...
 
FBNormalGetTangentsDirectArray (int &pOutArrayCount) const
 Get a pointer to the direct array of tangents. More...
 
int * GetBinormalsIndexArray (int &pOutArrayCount) const
 Get a pointer to the index array of binormals. More...
 
FBNormalGetBinormalsDirectArray (int &pOutArrayCount) const
 Get a pointer to the direct array of binormals. More...
 
int * GetVertexColorsIndexArray (int &pOutArrayCount) const
 Get a pointer to the index array of vertex color. More...
 
FBColorFGetVertexColorsDirectArray (int &pOutArrayCount) const
 Get a pointer to the direct array of vertex color. More...
 
FBStringList GetUVSets () const
 Get available UVSet name. More...
 
FBGeometryMappingMode GetUVSetMappingMode (const char *pUVSetName=NULL) const
 Get UVSet mapping mode. More...
 
FBGeometryReferenceMode GetUVSetReferenceMode (const char *pUVSetName=NULL) const
 Get UVSet reference mode. More...
 
int * GetUVSetIndexArray (int &pOutArrayCount, const char *pUVSetName=NULL) const
 Get a pointer to the index array of UVset. More...
 
FBUVGetUVSetDirectArray (int &pOutArrayCount, const char *pUVSetName=NULL) const
 Get a pointer to the direct array of UVset Modify array value will be only effective when geometry editing is enabled. More...
 
int * GetMaterialIndexArray (int &pOutArrayCount) const
 Get a pointer to the index array of Material. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FBComponent
static int GetInternalClassId ()
 
static void FBComponentSetName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetName (FBComponent *pObject)
 
static void FBComponentSetLongName (FBComponent *pObject, const char *pName)
 
static const char * FBComponentGetLongName (FBComponent *pObject)
 
- Public Attributes inherited from FBComponent
FBPropertyManager PropertyList
 Read Only Property: Manages all of the properties for the component. More...
 
FBPropertyListComponent Components
 List: List of components. More...
 
FBPropertyListComponent Parents
 List: Parents. More...
 
FBPropertyBool Selected
 Read Write Property: Selected property. More...
 
FBPropertyString Name
 Read Write Property: Unique name of object. More...
 
FBPropertyString LongName
 Read Write Property: Name and namespace for object.
More...
 
FBPropertyFolder Folder
 Read Write Property: The folder that contain this component. More...
 
- Static Public Attributes inherited from FBComponent
static int TypeInfo
 Contains the Type information of the object. More...
 
- Static Protected Member Functions inherited from FBPlug
static int GetInternalClassId ()
 Internal class Id. More...
 
- Protected Attributes inherited from FBPlug
bool mAllocated
 Contain the Allocation State of the Component. More...
 
HIObject mObject
 Handle on the Plug. More...
 
bool mSDKComponent
 bool Plug is an SDK component.
More...
 
- Static Protected Attributes inherited from FBPlug
static const char * ClassGroupName
 ClassGroupName of the object. More...
 
static int TypeInfo
 TypeInfo. More...
 
static int mGlobalTypeInfo
 Represente the Type Index. More...
 

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 support FBGeometryMapping_ALL_SAME or kFBGeometryMapping_BY_POLYGON for material, and kFBGeometryMapping_BY_CONTROL_POINT for Normal, Tangent, Binormal, Color and UV. Only one set of UV could be supported.

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 168 of file fbgeometry.h.

Constructor & Destructor Documentation

◆ FBGeometry()

FBGeometry ( const char *  pName,
HIObject  pObject = NULL 
)
protected

Constructor.

Parameters
pNameName of Geometry.
pObjectFor internal use only(default=NULL).

Member Function Documentation

◆ GeometryBegin()

bool GeometryBegin ( )

Begin geometry editing.

Returns
true if successful.

◆ GeometryEnd()

bool GeometryEnd ( )

End geometry editing.

Returns
true if successful.

◆ GetBinormalsDirectArray()

FBNormal* GetBinormalsDirectArray ( int &  pOutArrayCount) const

Get a pointer to the direct array of binormals.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to direct array of binormals, or NULL if the array hasn't been allocated yet.

◆ GetBinormalsIndexArray()

int* GetBinormalsIndexArray ( int &  pOutArrayCount) const

Get a pointer to the index array of binormals.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of binormals, or NULL if the array hasn't been allocated yet.

◆ GetMaterialIndexArray()

int* GetMaterialIndexArray ( int &  pOutArrayCount) const

Get a pointer to the index array of Material.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of Material, or NULL if the array hasn't been allocated yet.

◆ GetNormalsDirectArray()

FBNormal* GetNormalsDirectArray ( int &  pOutArrayCount) const

Get a pointer to the direct array of normals.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to direct array of normals, or NULL if the array hasn't been allocated yet.

◆ GetNormalsIndexArray()

int* GetNormalsIndexArray ( int &  pOutArrayCount) const

Get a pointer to the index array of normals.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of normals, or NULL if the array hasn't been allocated yet.

◆ GetPositionsArray()

FBVertex* GetPositionsArray ( int &  pOutArrayCount) const

Get a pointer to the position array.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of normals, or NULL if the array hasn't been allocated yet.

◆ GetTangentsDirectArray()

FBNormal* GetTangentsDirectArray ( int &  pOutArrayCount) const

Get a pointer to the direct array of tangents.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to direct array of tangents, or NULL if the array hasn't been allocated yet.

◆ GetTangentsIndexArray()

int* GetTangentsIndexArray ( int &  pOutArrayCount) const

Get a pointer to the index array of tangents.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of tangents, or NULL if the array hasn't been allocated yet.

◆ GetUVSetDirectArray()

FBUV* GetUVSetDirectArray ( int &  pOutArrayCount,
const char *  pUVSetName = NULL 
) const

Get a pointer to the direct array of UVset Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
pUVSetNameThe name of UVset, NULL for the first UVset.
Returns
pointer to the array of UV, or NULL is the array hasn't been allocated yet.

◆ GetUVSetIndexArray()

int* GetUVSetIndexArray ( int &  pOutArrayCount,
const char *  pUVSetName = NULL 
) const

Get a pointer to the index array of UVset.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
pUVSetNameThe name of UVset, NULL for the first UVset.
Returns
Pointer to index array of UVSet, or NULL if the array hasn't been allocated yet.

◆ GetUVSetMappingMode()

FBGeometryMappingMode GetUVSetMappingMode ( const char *  pUVSetName = NULL) const

Get UVSet mapping mode.

Parameters
pUVSetNameThe name of UVset, NULL for the first UVset.
Returns
Mapping mode of the UVset.

◆ GetUVSetReferenceMode()

FBGeometryReferenceMode GetUVSetReferenceMode ( const char *  pUVSetName = NULL) const

Get UVSet reference mode.

Parameters
pUVSetNameThe name of UVset, NULL for the first UVset.
Returns
Reference mode of the UVset.

◆ GetUVSets()

FBStringList GetUVSets ( ) const

Get available UVSet name.

Returns
StringList contain all the available UVSets' name.

◆ GetVertexColorsDirectArray()

FBColorF* GetVertexColorsDirectArray ( int &  pOutArrayCount) const

Get a pointer to the direct array of vertex color.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to direct array of vertex colors, or NULL if the array hasn't been allocated yet.

◆ GetVertexColorsIndexArray()

int* GetVertexColorsIndexArray ( int &  pOutArrayCount) const

Get a pointer to the index array of vertex color.

Modify array value will be only effective when geometry editing is enabled.

See also
GeometryBegin()/GeometryEnd()
Parameters
pOutArrayCountTo return the length the array.
Returns
Pointer to index array of vertex color, or NULL if the array hasn't been allocated yet.

◆ GetVertexes()

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.

◆ IsEditingEnabled()

bool IsEditingEnabled ( ) const

Is geometry editing enabled.

Returns
true if enabled.

◆ ModifyNotify()

void ModifyNotify ( kFBGeometryUpdateFlags  pFlags = kFBGeometryUpdateAll,
int  pFirstIndex = -1,
int  pLastIndex = -1 
)

The geometry has change, update the necessary flags.

Parameters
pFlagsflags for the kind of update that was done.
pFirstIndexCorrespond to the start index of modification of points or normals.
pLastIndexCorrespond to the last index of modification of points or normals.

◆ ShapeAdd()

int ShapeAdd ( const char *  pName)

Add new shape.

Parameters
pNamethe shape name
Returns
the index of the new shape, -1 if the shape adding fail.

◆ ShapeClearAll()

void ShapeClearAll ( )

Clears all the shapes.

◆ ShapeGetCount()

int ShapeGetCount ( ) const

Get Shape Count.

◆ ShapeGetDiffPoint() [1/2]

bool ShapeGetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int &  pOriIndex,
FBVertex pPosDiff 
) const

Get the differentiate point.

Parameters
pShapeIdxThe index of the shape
pDiffIndexThe index of the diff point in this shape.
pOriIndexThe index of the diff point in the original geometry.
pPosDiffThe position differentiation.

◆ ShapeGetDiffPoint() [2/2]

bool ShapeGetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int &  pOriIndex,
FBVertex pPosDiff,
FBNormal pNormalDiff 
) const

Get the differentiate point.

Parameters
pShapeIdxThe index of the shape
pDiffIndexThe index of the diff point in this shape.
pOriIndexThe index of the diff point in the original geometry.
pPosDiffThe position differentiation.
pNormalDiffThe normal differentiation.

◆ ShapeGetDiffPointCount()

int ShapeGetDiffPointCount ( int  pShapeIdx) const

Return the shape's total diff points count.

Parameters
pShapeIdxThe index of the shape

◆ ShapeGetName()

const char* ShapeGetName ( int  pShapeIdx) const

Return the shape Name.

◆ ShapeInit()

void ShapeInit ( int  pShapeIdx,
int  pDiffSize,
bool  pWithNormal = false 
)

Init the shape.

Parameters
pShapeIdxThe index of the shape to be initialized
pDiffSizeTotal number of different point (pos or normal) compared to base geometry.
pWithNormalCurrently normal won't be considered during shape blending.

◆ ShapeSetDiffPoint() [1/2]

bool ShapeSetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
const FBVertex pPosDiff 
)

Set the differentiate point.

Parameters
pShapeIdxThe index of the shape
pDiffIndexThe index of the diff point in this shape.
pOriIndexThe index of the diff point in the original geometry.
pPosDiffThe position differentiation.

◆ ShapeSetDiffPoint() [2/2]

bool ShapeSetDiffPoint ( int  pShapeIdx,
int  pDiffIndex,
int  pOriIndex,
const FBVertex pPosDiff,
const FBNormal pNormalDiff 
)

Set the differentiate point.

Parameters
pShapeIdxThe index of the shape
pDiffIndexThe index of the diff point in this shape.
pOriIndexThe index of the diff point in the original geometry.
pPosDiffThe position differentiation.
pNormalDiffThe normal differentiation.

◆ VertexAdd() [1/8]

int VertexAdd ( double  px,
double  py,
double  pz 
)

Add a vertex.

Parameters
pxX coordinate of vertex to add.
pyY coordinate of vertex to add.
pzZ coordinate of vertex to add.
Returns
Index where vertex was added.
Remarks
Set Normal with default value

◆ VertexAdd() [2/8]

int VertexAdd ( double  px,
double  py,
double  pz,
double  nx,
double  ny,
double  nz 
)

Begin geometry editing.

Returns
true if successful.

◆ VertexAdd() [3/8]

int VertexAdd ( double  px,
double  py,
double  pz,
double  nx,
double  ny,
double  nz,
double  UVu,
double  UVv 
)

Begin geometry editing.

Returns
true if successful.

◆ VertexAdd() [4/8]

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 
)

Begin geometry editing.

Returns
true if successful.

◆ VertexAdd() [5/8]

int VertexAdd ( FBVertex  pVertex)

Add a vertex.

Parameters
pVertexVertex values used to add vertex.
Returns
Index where vertex was added.
Remarks
Set Normal with default value

◆ VertexAdd() [6/8]

int VertexAdd ( FBVertex  pVertex,
FBNormal  pNormal 
)

Add a vertex.

Parameters
pVertexVertex values used to add vertex.
pNormalNormal values used to add vertex.
Returns
Index where vertex was added.

◆ VertexAdd() [7/8]

int VertexAdd ( FBVertex  pVertex,
FBNormal  pNormal,
FBUV  pUV 
)

Add a vertex.

Parameters
pVertexVertex values used to add vertex.
pNormalNormal values used to add vertex.
pUVUV values used to add vertex.
Returns
Index where vertex was added.

◆ VertexAdd() [8/8]

int VertexAdd ( FBVertex  pVertex,
FBNormal  pNormal,
FBUV  pUV,
FBColorF  pVertexColor 
)

Add a vertex.

Parameters
pVertexVertex values used to add vertex.
pNormalNormal values used to add vertex.
pUVUV values used to add vertex.
pVertexColorColor values used to add vertex.
Returns
Index where vertex was added.

◆ VertexArrayClear()

bool VertexArrayClear ( )

Clear all geometry vertex arrays.

Call this function to clear Position, Normal, UV, Color and etc vertex arrays, and it won't affect geometry's topology (polygon, Surface and etc.,).

Returns
true if successful.

◆ VertexArrayInit()

bool VertexArrayInit ( int  pVertexcount,
bool  pUniqueMaterial,
unsigned int  pFBGeometryArrayIDs = 0 
)

Init geometry vertex arrays.

Init position, normal and UV arrays (tangent, bi-normal and color on demand) with kFBGeometryMapping_BY_CONTROL_POINT / kFBGeometryReference_DIRECT mode. Will call VertexArrayClear() internally. User should then call GetXXXDirectyArray() to edit the vertex attributes directly.

Parameters
pVertexcountnumber of control points (vertex)
pUniqueMaterialUser could specify per polygon mapping mode for mesh
pFBGeometryArrayIDsRequest to init other attribute arrays, bitwise combined value of FBGeometryArrayID enum items, currently support Tangent, Binormal and VertexColor. Only useful for mesh.

◆ VertexClear()

bool VertexClear ( )

Clear all Vertex arrays.

Call this function to clear Position, Normal, UV, Color and etc vertex arrays, and it won't affect geometry's topology (polygon, Surface and etc.,).

Returns
true if successful.

◆ VertexColorGet()

FBColorF VertexColorGet ( int  pIndex = -1) const

Get a Vertex Color.

Parameters
pIndexIndex of Vertex to get Color for(default=-1).
Returns
Color of vertex at UVSetIndex.

◆ VertexColorSet() [1/2]

bool VertexColorSet ( FBColorF  pColor,
int  pIndex = -1 
)

Set a Vertex Color.

Parameters
pColorVertex Color to set.
pIndexIndex of Vertex to affect with pColor(default=-1).
Returns
true if successful.

◆ VertexColorSet() [2/2]

bool VertexColorSet ( float  pRed,
float  pGreen,
float  pBlue,
float  pAlpha,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters
pRedRed Color Channel to set, range [0, 1].
pGreenGreen Color Channel to set, range [0, 1].
pBlueBlue Color Channel to set, range [0, 1].
pAlphaAlpha Color Channel to set, range [0, 1].
pIndexIndex of Vertex to affect with Red, Green, Blue and Alpha (default=-1).
Returns
true if successful.

◆ VertexCount()

int VertexCount ( ) const

Get the number of vertices in the geometry.

Returns
Number of vertices in the geometry.

◆ VertexGet()

FBVertex VertexGet ( int  pIndex) const

Get a vertex.

Parameters
pIndexIndex of vertex to get.
Returns
Vertex stored at pIndex.

◆ VertexGetSelected()

bool VertexGetSelected ( int  pIndex)

Get the selected state of a vertex.


Parameters
pIndexThe index of the vertex
Returns
true if the vertex is selected, false if not

◆ VertexGetTransformable()

bool VertexGetTransformable ( int  pIndex)

Get the Transformable state of a vertex.

Parameters
pIndexThe index of the vertex
Returns
true if the vertex is Transformable, false if not

◆ VertexGetVisible()

bool VertexGetVisible ( int  pIndex)

Get the visible state of a vertex.

Parameters
pIndexThe index of the vertex
Returns
true if the vertex is visible, false if not

◆ VertexInit()

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

Resize or Reserve vertex, normal and UV array for performance.

Parameters
pSizeNumber of vertices to resize or reserve.
pResizeTrue, for the geometry with known vertex count, we should resize the arrays to fixed size, and call VertexSet() afterwards; False, 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.
pInitUVinit Vertex UV array if true
pInitVertexColorInit Vertex Color Array if true.

◆ VertexNormalGet()

FBNormal VertexNormalGet ( int  pIndex = -1) const

Get a normal at a vertex.

Parameters
pIndexVertex to get normal at(default=-1).
Returns
Normal of vertex at pIndex.

◆ VertexNormalSet() [1/2]

bool VertexNormalSet ( double  px,
double  py,
double  pz,
int  pIndex = -1 
)

Set a normal at a vertex.

Parameters
pxX coordinate of normal.
pyY coordinate of normal.
pzZ coordinate of normal.
pIndexIndex of vertex to set Normal at(default=-1).
Returns
true if successful.

◆ VertexNormalSet() [2/2]

bool VertexNormalSet ( FBNormal  pVertex,
int  pIndex = -1 
)

Set a normal at a vertex.

Parameters
pVertexNormal to set.
pIndexIndex of vertex to set Normal at(default=-1).
Returns
true if successful.

◆ VertexSet() [1/2]

bool VertexSet ( double  px,
double  py,
double  pz,
int  pIndex = -1 
)

Set a vertex.

Parameters
pxX coordinate to set.
pyY coordinate to set.
pzZ coordinate to set.
pIndexIndex of vertex to set(default=-1).
Returns
true if successful.

◆ VertexSet() [2/2]

bool VertexSet ( FBVertex  pVertex,
int  pIndex = -1 
)

Set a vertex.

Parameters
pVertexVertex values used to set vertex.
pIndexIndex of vertex to affect (default=-1).
Returns
true if successful.

◆ VertexSetSelected()

bool VertexSetSelected ( int  pIndex,
bool  pState 
)

Set the selected state of a vertex.

Parameters
pIndexThe index of the vertex
pStateThe true to selected, false to deselect
Returns
true if the vertex is selected, false if not

◆ VertexSetVisible()

bool VertexSetVisible ( int  pIndex,
bool  pState 
)

Set the visible state of a vertex.

Parameters
pIndexThe index of the vertex
pStatetrue to be visible
Returns
true if the vertex is visible, false if not

◆ VertexUVGet()

FBUV VertexUVGet ( int  pIndex = -1) const

Get a UV coordinate.

Parameters
pIndexIndex of Vertex to get UV coordinate for(default=-1).
Returns
UV coordinate of vertex at UVSetIndex.

◆ VertexUVSet() [1/2]

bool VertexUVSet ( FBUV  pUV,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters
pUVUV coordinate to set.
pIndexIndex of Vertex to affect with UV coordinate(default=-1).
Returns
true if successful.

◆ VertexUVSet() [2/2]

bool VertexUVSet ( float  pU,
float  pV,
int  pIndex = -1 
)

Set a UV coordinate.

Parameters
pUU coordinate to set.
pVV coordinate to set.
pIndexIndex of Vertex to affect with UV coordinate(default=-1).
Returns
true if successful.

Member Data Documentation

◆ BinormalMappingMode

FBPropertyGeometryMappingMode BinormalMappingMode

Read Only Property: Binormal mapping mode.

Definition at line 439 of file fbgeometry.h.

◆ BinormalReferenceMode

FBPropertyGeometryReferenceMode BinormalReferenceMode

Read Only Property: Binormal reference mode.

Definition at line 440 of file fbgeometry.h.

◆ MaterialMappingMode

FBPropertyGeometryMappingMode MaterialMappingMode

Read Property: Material mapping mode.

Definition at line 506 of file fbgeometry.h.

◆ NormalMappingMode

FBPropertyGeometryMappingMode NormalMappingMode

Read Only Property: Normal mapping mode.

Definition at line 405 of file fbgeometry.h.

◆ NormalReferenceMode

FBPropertyGeometryReferenceMode NormalReferenceMode

Read Only Property: Normal reference mode.

Definition at line 406 of file fbgeometry.h.

◆ TangentMappingMode

FBPropertyGeometryMappingMode TangentMappingMode

Read Only Property: Tangent mapping mode.

Definition at line 422 of file fbgeometry.h.

◆ TangentReferenceMode

FBPropertyGeometryReferenceMode TangentReferenceMode

Read Only Property: Tangent reference mode.

Definition at line 423 of file fbgeometry.h.

◆ VertexColorMappingMode

FBPropertyGeometryMappingMode VertexColorMappingMode

Read Only Property: Vertex Color mapping mode.

Definition at line 456 of file fbgeometry.h.

◆ VertexColorReferenceMode

FBPropertyGeometryReferenceMode VertexColorReferenceMode

Read Only Property: Vertex Color reference mode.

Definition at line 457 of file fbgeometry.h.


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