Open Reality Reference Guide
 
Loading...
Searching...
No Matches
fbmodel.h
Go to the documentation of this file.
1#ifndef __FBMODEL_H__
2#define __FBMODEL_H__
3/**************************************************************************
4Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5All Rights Reserved.
6
7The coded instructions, statements, computer programs, and/or related
8material (collectively the "Data") in these files contain unpublished
9information proprietary to Autodesk, Inc. and/or its licensors, which is
10protected by Canada and United States of America federal copyright law
11and by international treaties.
12
13The Data may not be disclosed or distributed to third parties, in whole
14or in part, without the prior written consent of Autodesk, Inc.
15("Autodesk").
16
17THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24FREE.
25
26IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36
37**************************************************************************/
38
43#include <kaydaradef.h>
44#ifndef FBSDK_DLL
48#define FBSDK_DLL K_DLLIMPORT
49#endif
50
51#include <fbsdk/fbcore.h>
52#include <fbsdk/fbcomponent.h>
53#include <fbsdk/fbshader.h> // FBPropertyListShader
54#include <fbsdk/fbtexture.h>
55#include <fbsdk/fbgeometry.h>
56#include <fbsdk/fbmaterial.h>
57#include <fbsdk/fbtexture.h>
58#include <fbsdk/fbmath.h>
59
60#ifdef FBSDKUseNamespace
61namespace FBSDKNamespace {;
62#endif
63
67#define FBStorableCustomModelImplementation(ClassName, Desc)\
68 const char* ClassName::FbxGetObjectSubType(){ return #ClassName; }\
69 HIObject RegisterStorable##ClassName##Create(HIObject /*pOwner*/, const char* pName, void* /*pData*/){\
70 ClassName* Class = new ClassName(pName);\
71 Class->mAllocated = true;\
72 if( Class->FBCreate() ){\
73 __FBRemoveModelFromScene( Class->GetHIObject() ); /* Hack in MoBu2013, we shouldn't add object to the scene/entity automatically*/\
74 return Class->GetHIObject();\
75 } else {\
76 delete Class;\
77 return NULL;}}\
78 FBLibraryModule(ClassName##Storable){\
79 FBString lGroup = "FbxStorable/Model";\
80 FBRegisterObject(ClassName##R2, lGroup, #ClassName, Desc, RegisterStorable##ClassName##Create, true, NULL);\
81 FBSetStoreableCustomModelRegistered();}\
82
85FB_DEFINE_COMPONENT( FBSDK_DLL, ModelVertexData );
86FB_DEFINE_COMPONENT( FBSDK_DLL, PointCacheFile );
87
89// FBPropertyListModel
94
97{
98public:
103 int Add ( FBModel* pItem );
104
109 int Remove ( FBModel* pItem );
110
114 virtual void RemoveAt( int pIndex );
115
120 FBModel* operator[](int pIndex);
121
125 virtual int GetCount();
126#ifndef DOXYGEN_SHOULD_SKIP_THIS
127 inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
128private:
129 inline virtual int Add ( FBComponent* pItem ) { return Add((FBModel*)pItem); }
130 inline virtual int Remove ( FBComponent* pItem ) { return Remove((FBModel*)pItem); }
131#endif
132};
133
135// FBPropertyListDeformer
139
141{
142public:
150 virtual int Add( FBDeformer* pItem );
155 FBDeformer* operator[](int pIndex);
156
157private:
158 inline virtual int Add ( FBComponent* pItem ) { return Add((FBDeformer*)pItem); }
159};
160
162// FBModel
165
179
189};
190
195};
196
207
214
220
225};
226
235};
236
237FB_DEFINE_ENUM( FBSDK_DLL, ModelShadingMode );
238FB_DEFINE_ENUM( FBSDK_DLL, ModelTransformationType);
239FB_DEFINE_ENUM( FBSDK_DLL, ModelRotationOrder );
240
242
273class FBSDK_DLL FBModel : public FBBox
274{
276public:
281 FBModel(const char* pName, HIObject pObject=NULL);
282 virtual void FBDelete() override;
283
284 IQuery_Declare (override);
285 ICallback_Declare (override);
286
288
302 FBPropertyModel Parent;
303 FBPropertyModel LookAt;
304 FBPropertyModel UpVector;
305 FBPropertyGeometry Geometry;
307 FBPropertyMesh TessellatedMesh;
308 FBPropertyModelVertexData ModelVertexData;
309 FBPropertyCluster Cluster;
310 FBPropertyScene Scene;
311 FBPropertyModelShadingMode ShadingMode;
312 FBPropertyAnimationNode AnimationNode;
313
314 FBPropertyModelRotationOrder RotationOrder;
315
316 // Limits
329
339
340 // Animatable
346
350
352
357
361
366 virtual FBModel* Clone();
367
375 void SetMatrix(FBMatrix pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, bool pPushUndo = false, FBEvaluateInfo* pEvaluateInfo=NULL);
376
383 void GetMatrix(FBMatrix &pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, FBEvaluateInfo* pEvaluateInfo=NULL);
384
393 void GetLocalTransformationMatrixWithGlobalRotationDoF(FBMatrix &pMatrix, bool pInverse = false, FBEvaluateInfo* pEvaluateInfo = NULL);
394
402 void SetVector(FBVector3d pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, bool pPushUndo = false, FBEvaluateInfo* pEvaluateInfo=NULL);
403
410 void GetVector(FBVector3d &pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, FBEvaluateInfo* pEvaluateInfo=NULL);
411
417 bool IsEvaluationReady(FBModelEvaluationTaskType pWhat, FBEvaluateInfo* pEvaluateInfo=NULL) const;
418
423 void MatrixToRotation(FBRVector &pRotation, const FBMatrix &pMatrix);
424
429 void RotationToMatrix( FBMatrix &pMatrix, const FBRVector &pRotation);
430
437 void LRMToDof(FBRVector &pDof, const FBMatrix &pLM);
438
445 void DofToLRM(FBMatrix &pLM, const FBRVector &pDof);
446
451 void SetSchematicPosition(int pX,int pY);
452
457
462
469
480 bool IsVisible(FBEvaluateInfo* pEvaluateInfo = NULL);
481
486
491
497
501
506
511
516
520 virtual bool HasCustomDisplay() { return false; }
521
529 virtual void CustomModelDisplay( FBCamera* pCamera, FBModelShadingMode pShadingMode, FBModelRenderPass pRenderPass, float pPickingAreaWidth, float pPickingAreaHeight) {}
530
544 virtual bool CustomModelPicking( int pNbHits, unsigned int *pSelectBuffer, FBCamera* pCamera,
545 int pMouseX,int pMouseY,
546 FBTVector* pLocalRaySrc, FBTVector* pLocalRayDir,
547 FBTVector* pWorldRaySrc, FBTVector* pWorldRayDir,
548 FBMatrix* pGlobalInverseMatrix,
549 FBTVector* pOutPickedPoint) { return false; }
550
559 virtual bool ClosestRayIntersection(const FBTVector& pRayOrigin, const FBTVector& pRayEnd, FBTVector& pIntersectPos, FBNormal& pIntersectNormal);
560
564 unsigned char* GetSelectedPoints();
565
570
585 bool SetAdditionalUniqueColorIDCount(unsigned int pCount);
586
591
596 FBColor GetAdditionalUniqueColorID(unsigned int pIndex) const;
597
598 /*
599 * @}
600 */
601
606 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
607 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
608
617
626 bool RayCast(FBCamera* pCamera, int pMouseX, int pMouseY, FBVector3d& pHitPosition, FBVector3d& pHitNormal);
627
631 virtual const char* FbxGetObjectType() override;
632
636 virtual const char* FbxGetObjectSubType() override;
637
646 void SetMatrixWithPrecision(FBMatrix pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, bool pPushUndo = false,
647 FBEvaluateInfo* pEvaluateInfo=NULL, double pPrecision = FBMat2EulerDegenerateForPrecision10);
648
649
659 unsigned int GetHierarchyWorldMatrices(FBMatrix* pMatricesArray, unsigned int pMatricesArrayCount, FBModelHiercharyTraverserType pHiercharyTraverserType, FBEvaluateInfo* pEvaluateInfo=NULL);
660
664
668
673
678 virtual bool ManipulatorNotify(FBSelectionAction pAction) { return true; }
679};
680
683
691
696
705FBSDK_DLL FBModel* FBFindModelByLabelName( const char* pModelLabelName );
706
714FBSDK_DLL FBModel* FBFindModelByUniqueColorId( const FBColor& pColor, int* pSubItemIndex = NULL );
715
720FBSDK_DLL FBModel* FBLoadFbxPrimitivesModel( const char* pModelName );
721
729FBSDK_DLL void FBFindModelsOfType( FBModelList& pList, int pTypeInfo, FBModel* pParent=NULL );
730
740FBSDK_DLL void FBGetSelectedModels( FBModelList& pList, FBModel* pParent=NULL, bool pSelected=true, bool pSortBySelectOrder = false );
741
746
752
757
761
766
771
772
774// FBModelNull
777
781public:
786 FBModelNull(const char* pName, HIObject pObject=NULL);
787
789
794 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
795 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
796
800 virtual const char* FbxGetObjectType() override;
801
805 virtual const char* FbxGetObjectSubType() override;
806};
807
809// FBModelRoot
812
816public:
821 FBModelRoot(const char* pName, HIObject pObject=NULL);
822
824};
825
827// FBModelMarker
830
833{
838
841{
856};
857
860{
866
867FB_DEFINE_ENUM( FBSDK_DLL, MarkerResolutionLevel );
868FB_DEFINE_ENUM( FBSDK_DLL, MarkerLook );
869FB_DEFINE_ENUM( FBSDK_DLL, MarkerType );
870
874public:
879 FBModelMarker(const char* pName, HIObject pObject=NULL);
880
883 FBPropertyMarkerResolutionLevel ResLevel;
884 FBPropertyMarkerLook Look;
885 FBPropertyMarkerType Type;
889
893 void SetFKOpacity(double pValue);
894
899 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
900 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat) override;
901
905 virtual const char* FbxGetObjectType() override;
906
910 virtual const char* FbxGetObjectSubType() override;
911};
912
913
915// FBModelSkeleton
918
921{
932};
933
936{
941
942FB_DEFINE_ENUM( FBSDK_DLL, SkeletonLook );
943FB_DEFINE_ENUM( FBSDK_DLL, SkeletonResolutionLevel );
944
948public:
953 FBModelSkeleton(const char* pName, HIObject pObject=NULL);
954
958
959 FBPropertySkeletonLook Look;
960 FBPropertySkeletonResolutionLevel Resolution;
964
969 void GetSkinModelList(FBModelList& pSkinModelList);
970};
971
972
974// FBPropertyListModelSkeleton
976FB_DEFINE_LIST( FBSDK_DLL, ModelSkeleton );
978
981{
982public:
989};
990
991
993// FBModelCube
996
1000public:
1005 FBModelCube(const char* pName, HIObject pObject=NULL);
1006};
1007
1009// FBModelPlane
1012
1016public:
1021 FBModelPlane(const char* pName, HIObject pObject=NULL);
1022};
1023
1024
1026// FBCluster
1034FB_DEFINE_ENUM( FBSDK_DLL, ClusterMode );
1035
1037
1043
1044protected:
1049 friend class DataFBModel;
1050
1051public:
1052
1053 //--- Cluster-level operations
1058 int ClusterBegin(int pIndex = -1);
1059
1064
1065 //--- Link-level operations
1070 void LinkSetName(const char *pName, int pLinkNumber);
1075 const char* LinkGetName(int pLinkNumber);
1079 void LinkRemove(int pLinkNumber);
1087 void LinkSetModel(FBModel* pModel);
1092 FBModel* LinkGetModel(int pLinkNumber);
1101 void LinkClearUnused( double pThreshold = -1.0 );
1106 void LinkSetCurrentVertex(int pLinkIndex,int pPointIndex);
1111 int LinkGetVertexIndex(int pIndex);
1112
1113 //--- Vertex level operations.
1119 void VertexSetTransform(FBVector3d pPosition,FBVector3d pRotation, FBVector3d pScaling);
1125 void VertexGetTransform(FBVector3d& pPosition,FBVector3d& pRotation, FBVector3d& pScaling);
1130 void VertexAdd(int pVertexIndex,double pWeight);
1134 void VertexRemove(int pVertexIndex);
1143 int VertexGetNumber(int pIndex);
1148 double VertexGetWeight(int pIndex);
1153 void VertexSetWeight(double pWeight,int pIndex);
1157
1158 FBPropertyClusterMode ClusterMode;
1160};
1161
1163// FBModelVertexData
1166
1169
1170protected:
1171 FBModelVertexData(FBModel* pModel);
1172 friend class DataFBModel;
1173
1174public:
1175
1180
1187
1192
1197
1202
1207 int GetSubPatchMaterialId(int pSubPatchIndex);
1208
1213 FBMaterial* GetSubPatchMaterial(int pSubPatchIndex);
1214
1221 FBGeometryPrimitiveType GetSubPatchPrimitiveType(int pSubPatchIndex, bool* pIsOptimized = NULL);
1222
1227 int GetSubPatchIndexOffset(int pSubPatchIndex);
1228
1233 int GetSubPatchIndexSize(int pSubPatchIndex);
1234
1239 void DrawSubPatch(int pSubPatchIndex, bool pWireFrame = false);
1240
1242
1248
1253
1258 FBMaterial* GetSubRegionMaterial(int pSubRegionIndex);
1259
1264 void DrawSubRegion(int pSubRegionIndex, bool pWireFrame = false);
1265
1267
1274
1280
1285
1289 void EnableOGLVertexData(bool pAfterDeform = true);
1290
1293
1300
1306
1316 const int* GetVertexArrayDuplicationMap(unsigned int& pDuplicatedVertexCount);
1317
1322
1327
1331 unsigned int GetIndexArrayVBOId();
1332
1340
1367 void* GetVertexArray(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
1368
1375 unsigned int GetVertexArrayVBOId(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
1376
1383 void* GetVertexArrayVBOOffset(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
1384
1386
1391
1396 void EnableOGLUVSet(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1397
1400
1406 FBGeometryArrayElementType GetUVSetArrayFormat(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1407
1413 int GetUVSetUVCount(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1414
1440 void* GetUVSetArray(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1441
1447 unsigned int GetUVSetVBOId(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1448
1454 void* GetUVSetVBOOffset(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
1455
1457};
1458
1460// FBDeformer
1462
1474{
1475 kFBDeformerUnkown,
1476 kFBDeformerSkeleton,
1477 kFBDeformerPointCache
1478};
1479
1480FB_DEFINE_ENUM( FBSDK_DLL, DeformerType );
1481
1483
1487
1488public:
1493 FBDeformer(const char* pName, HIObject pObject=NULL);
1494
1495 FBPropertyDeformerType DeformerType;
1496};
1497
1499// FBDeformerPointCache
1502
1506
1507public:
1512 FBDeformerPointCache(const char* pName, HIObject pObject=NULL);
1513
1514 FBPropertyPointCacheFile PointCacheFile;
1515
1517
1520
1527};
1528
1530// FBPointCacheFile
1533
1537
1538public:
1543 FBPointCacheFile(const char* pName, HIObject pObject=NULL);
1544
1547
1554};
1555
1556#ifdef FBSDKUseNamespace
1557}
1558#endif
1559#endif
Template class to contain an array of items.
Definition fbarray.h:78
A box is a fundamental building block in the application architecture.
Definition fbcore.h:218
Creates custom cameras and manages system cameras.
Definition fbcamera.h:206
Weighting interface for meshes.
Definition fbmodel.h:1041
FBPropertyClusterMode ClusterMode
Read Write Property: Cluster mode.
Definition fbmodel.h:1158
void VertexGetTransform(FBVector3d &pPosition, FBVector3d &pRotation, FBVector3d &pScaling)
Get transform of a cluster set.
void VertexSetTransform(FBVector3d pPosition, FBVector3d pRotation, FBVector3d pScaling)
Set transform of a cluster set.
void VertexRemove(int pVertexIndex)
Remove a vertex from a cluster.
int ClusterBegin(int pIndex=-1)
Begin cluster definition.
FBCluster(FBModel *pModel)
Constructor.
void LinkRemove(int pLinkNumber)
Remove a link.
void VertexClear()
Clear all linked vertices.
FBModel * LinkGetModel(int pLinkNumber)
Get model from a link.
int VertexGetCount()
Get the number of vertices.
int VertexGetNumber(int pIndex)
Get vertex number.
int ClusterEnd()
End cluster definition.
void LinkSetName(const char *pName, int pLinkNumber)
Set the name of a link.
void LinkSetModel(FBModel *pModel)
Set model to a link.
FBModel * LinkGetAssociateModel(int pLinkNumber)
Get model associated with link.
void VertexSetWeight(double pWeight, int pIndex)
Set vertex weight.
const char * LinkGetName(int pLinkNumber)
Get the name of a link.
void LinkSetCurrentVertex(int pLinkIndex, int pPointIndex)
Link at current vertex.
int LinkGetVertexIndex(int pIndex)
Get current vertex at link.
void VertexAdd(int pVertexIndex, double pWeight)
Add a vertex to a cluster.
int LinkGetCount()
Get number of links.
double VertexGetWeight(int pIndex)
Get vertex weight.
FBPropertyDouble ClusterAccuracy
Read Write Property: Cluster accuracy.
Definition fbmodel.h:1159
void LinkClearUnused(double pThreshold=-1.0)
Remove all unused links.
Color vector.
Definition fbtypes.h:448
MotionBuilder SDK base class.
Base Model deformer class.
Definition fbmodel.h:1485
FBDeformer(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyDeformerType DeformerType
Read Only Property: Deformer Type.
Definition fbmodel.h:1495
Base Model deformer class.
Definition fbmodel.h:1504
FBPropertyTime ChannelEnd
Read Only Property: Channel End.
Definition fbmodel.h:1523
FBPropertyDouble ChannelFrameRate
Read Only Property: Channel FrameRate.
Definition fbmodel.h:1525
FBPropertyInt ChannelPointCount
Read Only Property: Channel Point Count.
Definition fbmodel.h:1526
FBPropertyTime ChannelStart
Read Only Property: Channel Start.
Definition fbmodel.h:1522
FBPropertyBool ChannelSampleRegular
Read Only Property: Channel Sample Regular.
Definition fbmodel.h:1524
FBDeformerPointCache(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyString ChannelName
Read Only Property: Channel Name.
Definition fbmodel.h:1519
FBPropertyInt ChannelCount
Read Only Property: Channel Count.
Definition fbmodel.h:1521
FBPropertyBool Active
Read Write Property: Active.
Definition fbmodel.h:1516
FBPropertyPointCacheFile PointCacheFile
Read Write Property: Point Cache File Object.
Definition fbmodel.h:1514
FBPropertyInt ChannelIndex
Read Write Property: Channel Index.
Definition fbmodel.h:1518
AnimationNodeNotify evaluation information.
FBX file interface.
Definition fbfbx.h:80
Material class.
Definition fbmaterial.h:87
Four x Four (double) Matrix.
Definition fbtypes.h:290
Cube model class.
Definition fbmodel.h:998
FBModelCube(const char *pName, HIObject pObject=NULL)
Constructor.
Model class.
Definition fbmodel.h:274
FBPropertyModel UpVector
Read Write Property: UpVector model.
Definition fbmodel.h:304
FBPropertyBool RotationMinX
Read Write Property: Is model using Minimum Rotation Limits On X?
Definition fbmodel.h:323
void ExpandInSchematic()
Expand the model in the schematic view.
virtual FBModel * Clone()
Clone the model.
FBPropertyAnimatableVector3d Scaling
Read Write Property: Lcl scaling.
Definition fbmodel.h:345
int NoFrustumCullingRequire()
Acquire no frustum culling request.
bool IsForceAlwaysEvaluate()
Return Force Always Evaluate status.
void SetVector(FBVector3d pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, bool pPushUndo=false, FBEvaluateInfo *pEvaluateInfo=NULL)
Set a vector for the model.
FBPropertyBool Icon3D
Read Write Property: Is model a 3D icon?
Definition fbmodel.h:293
unsigned char * GetSelectedPoints()
Get the list of the points selection state.
FBPropertyVector3d GeometricScaling
Read Write Property: Geometric scaling.
Definition fbmodel.h:349
void MatrixToRotation(FBRVector &pRotation, const FBMatrix &pMatrix)
Convert Rotation Matrix to Euler Vector based on model's rotation order.
FBPropertyListMaterial Materials
List: Materials for model.
Definition fbmodel.h:290
void GetVector(FBVector3d &pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, FBEvaluateInfo *pEvaluateInfo=NULL)
Get a vector from the model.
FBPropertyModel LookAt
Read Write Property: Look at model (interest point).
Definition fbmodel.h:303
FBPropertyCluster Cluster
Read Only Property: Link Cluster for the model.
Definition fbmodel.h:309
FBPropertyBool PointCacheRecord
Read Write Property: Record Point Cache for model? Not Savable
Definition fbmodel.h:301
FBPropertyBool Transformable
Read Write Property: Indicate if a model can be transformable in the viewer. This has a default value...
Definition fbmodel.h:355
FBPropertyVector3d RotationMin
Read Write Property: Min Rotation Limit (considered if RotationActive is true)
Definition fbmodel.h:321
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
void GetMatrix(FBMatrix &pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, FBEvaluateInfo *pEvaluateInfo=NULL)
Get a matrix from the model.
FBPropertyBool TranslationMaxX
Read Write Property: Is model using Translation Limits on Max X.
Definition fbmodel.h:336
FBPropertyBool SoftSelected
Read Write Property: Is model Soft selected?
Definition fbmodel.h:294
FBPropertyVector3d PostRotation
Read Write Property: Post Rotation (considered if RotationActive is true)
Definition fbmodel.h:320
FBPropertyListModel Children
List: Children for model.
Definition fbmodel.h:287
virtual void FBDelete() override
Open Reality deletion function.
virtual bool ManipulatorNotify(FBSelectionAction pAction)
Callback for component selection in custom FBModel.
Definition fbmodel.h:678
FBPropertyVector3d PreRotation
Read Write Property: Pre Rotation (considered if RotationActive is true)
Definition fbmodel.h:319
FBPropertyVector3d GeometricTranslation
Read Write Property: Geometric translation.
Definition fbmodel.h:347
void SetSchematicPosition(FBVector2d pVector2d)
Set the position in the schematic view for the model.
FBPropertyGeometry Geometry
Read Write Property: Geometry for the model.
Definition fbmodel.h:305
bool RayCast(FBCamera *pCamera, int pMouseX, int pMouseY, FBVector3d &pHitPosition, FBVector3d &pHitNormal)
Ray cast test.
virtual bool CustomModelPicking(int pNbHits, unsigned int *pSelectBuffer, FBCamera *pCamera, int pMouseX, int pMouseY, FBTVector *pLocalRaySrc, FBTVector *pLocalRayDir, FBTVector *pWorldRaySrc, FBTVector *pWorldRayDir, FBMatrix *pGlobalInverseMatrix, FBTVector *pOutPickedPoint)
Custom picking for selection, called when HasCustomDisplay returns true;.
Definition fbmodel.h:544
FBPropertyBool RotationMinZ
Read Write Property: Is model using Minimum Rotation Limits On Z?
Definition fbmodel.h:325
FBPropertyBool QuaternionInterpolate
Read Write Property: Use quaternion interpolation.
Definition fbmodel.h:351
FBPropertyBool TranslationMinZ
Read Write Property: Is model using Translation Limits on Min Z.
Definition fbmodel.h:335
FBPropertyColor UniqueColorId
Read Only Property: Unique Color Id for color based viewer picking. Color channel values are in the r...
Definition fbmodel.h:356
FBPropertyBool IsConstrained
Read Only Property: Is model constrained?
Definition fbmodel.h:296
void SetCullingMode(FBModelCullingMode pCullingMode)
Set Model Cullin Mode.
void DofToLRM(FBMatrix &pLM, const FBRVector &pDof)
Convert object space vector to local matrix.
FBVector2d GetSchematicPosition()
Get the position in the schematic view for the model.
FBPropertyBool IsDeformable
Read Only Property: Is model deformable?
Definition fbmodel.h:295
FBPropertyBool RotationMaxX
Read Write Property: Is model using Maximum Rotation Limits On X?
Definition fbmodel.h:326
virtual void CustomModelDisplay(FBCamera *pCamera, FBModelShadingMode pShadingMode, FBModelRenderPass pRenderPass, float pPickingAreaWidth, float pPickingAreaHeight)
Custom display function, called when HasCustomDisplay returns true;.
Definition fbmodel.h:529
FBPropertyInt GeometryUpdateId
Read Only Property: model geometry (vertex data) related update id.
Definition fbmodel.h:306
void SetMatrix(FBMatrix pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, bool pPushUndo=false, FBEvaluateInfo *pEvaluateInfo=NULL)
Set a matrix for the model.
FBPropertyBool RotationActive
Read Write Property: Is model using Rotation Limits?
Definition fbmodel.h:318
FBPropertyBool ReceiveShadows
Read Write Property: If true, the geometry will receive shadows.
Definition fbmodel.h:360
FBPropertyBool BlendShapeDeformable
Read Write Property: Model blend-shape deformable. Not Savable
Definition fbmodel.h:298
FBPropertyVector3d RotationMax
Read Write Property: Max Rotation Limit (considered if RotationActive is true)
Definition fbmodel.h:322
FBPropertyAnimatableBool Visibility
Read Write Property: Visibility of model. This can be overridden by the 'Show' property.
Definition fbmodel.h:341
FBPropertyModel Parent
Read Write Property: Parent model.
Definition fbmodel.h:302
FBPropertyBool Show
Read Write Property: Indicate if the viewer should show the object, according to its visibility value...
Definition fbmodel.h:353
bool UseFrustumCulling()
Get the current Frustum Culling Status.
void SetSchematicPosition(int pX, int pY)
Set the position in the schematic view for the model.
FBPropertyBool RotationMaxZ
Read Write Property: Is model using Maximum Rotation Limits On Z?
Definition fbmodel.h:328
FBPropertyVector3d TranslationMax
Read Write Property: Translation Limit Max.
Definition fbmodel.h:332
void CollapseInSchematic()
Collapse the model in the schematic view.
ICallback_Declare(override)
Interface to ICallback.
FBPropertyAnimationNode AnimationNode
Read Only Property: Animation node of the model.
Definition fbmodel.h:312
FBPropertyBool PointCacheDeformable
Read Write Property: Model point cache deformable. Not Savable
Definition fbmodel.h:300
void LRMToDof(FBRVector &pDof, const FBMatrix &pLM)
Convert local matrix to object space vector.
FBPropertyBool Pickable
Read Write Property: Indicate if a model can be picked in the viewer. This has a default value of 'tr...
Definition fbmodel.h:354
unsigned int GetAdditionalUniqueColorIDCount() const
Get additional unique color count.
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Store and Retrieve function that can be overloaded.
FBPropertyListShader Shaders
List: Shaders for model.
Definition fbmodel.h:289
FBPropertyVector3d GeometricRotation
Read Write Property: Geometric rotation.
Definition fbmodel.h:348
FBPropertyBool ConstrainDeformable
Read Write Property: Model constraint deformable. Not Savable
Definition fbmodel.h:299
FBColor GetAdditionalUniqueColorID(unsigned int pIndex) const
Get Additional Unique Color Id.
int GetSelectedPointsCount()
Get the number of selected points in the model.
FBPropertyBool TranslationMinX
Read Write Property: Is model using Translation Limits on Min X.
Definition fbmodel.h:333
IQuery_Declare(override)
Interface to IObject.
bool SetAdditionalUniqueColorIDCount(unsigned int pCount)
Request additional Unique color IDs.
FBPropertyAnimatableVector3d Translation
Read Write Property: Lcl translation.
Definition fbmodel.h:343
FBPropertyBool PrimaryVisibility
Read Write Property: Control the geometry render state. Geometry can still cast shadows even if this ...
Definition fbmodel.h:358
FBPropertyBool TranslationActive
Read Write Property: Is model using Translation Limits?
Definition fbmodel.h:330
FBPropertyModelVertexData ModelVertexData
Read Only Property: ModelVertexData for the model.
Definition fbmodel.h:308
FBPropertyBool TranslationMinY
Read Write Property: Is model using Translation Limits on Min Y.
Definition fbmodel.h:334
void RotationToMatrix(FBMatrix &pMatrix, const FBRVector &pRotation)
Convert Euler Vector to Rotation Matrix based on model's rotation order.
virtual bool HasCustomDisplay()
Function to overload to handle custom display.
Definition fbmodel.h:520
virtual bool ClosestRayIntersection(const FBTVector &pRayOrigin, const FBTVector &pRayEnd, FBTVector &pIntersectPos, FBNormal &pIntersectNormal)
Determines the first intersection point's position and normal between ray and model surface
FBPropertyBool CastsShadows
Read Write Property: If true, the geometry will produce shadows.
Definition fbmodel.h:359
FBModel(const char *pName, HIObject pObject=NULL)
Constructor.
void SetupPropertiesForShapes()
Setup Shape Properties.
FBPropertyAnimatableVector3d Rotation
Read Write Property: Lcl rotation.
Definition fbmodel.h:344
void GetBoundingBox(FBVector3d &pMin, FBVector3d &pMax)
Get the bounding box of the model.
FBPropertyListTexture Textures
List: Textures with Special UseType (Other than "Color" which should connect to materials).
Definition fbmodel.h:291
FBModelCullingMode GetCullingMode() const
Get Model Culling Mode.
FBPropertyBool TranslationMaxZ
Read Write Property: Is model using Translation Limits on Max Z.
Definition fbmodel.h:338
FBPropertyMesh TessellatedMesh
Read Only Property: Tessellated Mesh for the model.
Definition fbmodel.h:307
FBPropertyBool RotationMinY
Read Write Property: Is model using Minimum Rotation Limits On Y?
Definition fbmodel.h:324
virtual const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
void SetMatrixWithPrecision(FBMatrix pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, bool pPushUndo=false, FBEvaluateInfo *pEvaluateInfo=NULL, double pPrecision=FBMat2EulerDegenerateForPrecision10)
Set a matrix for the model.
virtual bool FbxRetrieve(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Request additional Unique color IDs.
int NoFrustumCullingRelease()
Release no frustum culling request.
bool IsVisible(FBEvaluateInfo *pEvaluateInfo=NULL)
If the model is visible.
FBPropertyBool RotationMaxY
Read Write Property: Is model using Maximum Rotation Limits On Y?
Definition fbmodel.h:327
FBPropertyBool TranslationMaxY
Read Write Property: Is model using Translation Limits on Max Y.
Definition fbmodel.h:337
FBPropertyBool VisibilityInheritance
Read Write Property: //!< When this value is set to True the Visibility of this model is also applied...
Definition fbmodel.h:342
bool IsCollapsedInSchematic() const
Returns if the model is collapsed or not (expanded) in the schematic view.
void ForceAlwaysEvaluate()
Force Always Evaluate.
FBPropertyScene Scene
Read Only Property: Scene containing the model.
Definition fbmodel.h:310
FBPropertyModelShadingMode ShadingMode
Read Write Property: Shading mode for the model.
Definition fbmodel.h:311
bool IsEvaluationReady(FBModelEvaluationTaskType pWhat, FBEvaluateInfo *pEvaluateInfo=NULL) const
Is the model's evaluation task result ready.
void GetLocalTransformationMatrixWithGlobalRotationDoF(FBMatrix &pMatrix, bool pInverse=false, FBEvaluateInfo *pEvaluateInfo=NULL)
Get the local transformation (or local inverse transformation) matrix with the global Rotation DoF va...
FBPropertyListDeformer Deformers
List: Deformers (Skeleton Deformer or Point Cache Deformer).
Definition fbmodel.h:292
FBPropertyBool RotationSpaceForLimitOnly
Read Write Property: Apply Post Rotation Matrix only for Limits?
Definition fbmodel.h:317
FBPropertyModelRotationOrder RotationOrder
Read Write Property: Rotation order.
Definition fbmodel.h:314
FBPropertyBool SkeletonDeformable
Read Write Property: Model skeleton deformable. Not Savable
Definition fbmodel.h:297
unsigned int GetHierarchyWorldMatrices(FBMatrix *pMatricesArray, unsigned int pMatricesArrayCount, FBModelHiercharyTraverserType pHiercharyTraverserType, FBEvaluateInfo *pEvaluateInfo=NULL)
Computes the global transform matrices between this model and all its children (all levels).
FBPropertyVector3d TranslationMin
Read Write Property: Translation Limit Min.
Definition fbmodel.h:331
Model marker class.
Definition fbmodel.h:872
FBModelMarker(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyMarkerType Type
Read Write Property: Type of model marker.
Definition fbmodel.h:885
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
FBPropertyDouble Length
Read Write Property: Length for capsule (not related to scaling).
Definition fbmodel.h:882
FBPropertyVector3d IKPivot
Read Write Property: marker Pivot Offset.
Definition fbmodel.h:887
void SetFKOpacity(double pValue)
Used when shading the controlset.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition fbmodel.h:881
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Store and Retrieve function that can be overloaded.
FBPropertyMarkerResolutionLevel ResLevel
Read Write Property: Resolution level of model marker.
Definition fbmodel.h:883
virtual const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
virtual bool FbxRetrieve(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Request additional Unique color IDs.
FBPropertyMarkerLook Look
Read Write Property: Look of model marker.
Definition fbmodel.h:884
FBPropertyColor Color
Read Write Property: Color of model marker.
Definition fbmodel.h:886
FBPropertyBool IKSync
Read Write Property: Must sync with IK if true.
Definition fbmodel.h:888
Null object class.
Definition fbmodel.h:779
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition fbmodel.h:788
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Store and Retrieve function that can be overloaded.
virtual const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
virtual bool FbxRetrieve(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Request additional Unique color IDs.
FBModelNull(const char *pName, HIObject pObject=NULL)
Constructor.
Plane model class.
Definition fbmodel.h:1014
FBModelPlane(const char *pName, HIObject pObject=NULL)
Constructor.
Root object class.
Definition fbmodel.h:814
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition fbmodel.h:823
FBModelRoot(const char *pName, HIObject pObject=NULL)
Constructor.
Root object class.
Definition fbmodel.h:946
FBPropertyBool PreserveLinkEndPosition
Read Write Property: Whether skeleton node must preserve its links' end position to children nodes,...
Definition fbmodel.h:963
FBPropertyDouble Length
Read Write Property: Length of skeleton node. (Note: Only effective when the look is set to: Capsule)
Definition fbmodel.h:961
FBModelSkeleton(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyBool LinkFollowGeometryOffset
Read Write Property: Whether link to parent node must follow skeleton node or not,...
Definition fbmodel.h:962
FBPropertySkeletonResolutionLevel Resolution
Read Write Property: Resolution of skeleton node. (Note: Only effective when the look is set to: Sphe...
Definition fbmodel.h:960
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition fbmodel.h:955
void GetSkinModelList(FBModelList &pSkinModelList)
Return the list of skin model associated with this Skeleton(Bone), which could be the deformable skin...
FBPropertyColor Color
Read Write Property: Color of skeleton node.
Definition fbmodel.h:956
FBPropertySkeletonLook Look
Read Write Property: Look of skeleton node.
Definition fbmodel.h:959
FBPropertyBool DrawLink
Read Write Property: Whether to draw link to parent node or not.
Definition fbmodel.h:957
int GetUVSetUVCount(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the number of UVs in the UV Set for the specified texture mapping mode.
FBMaterial * GetSubPatchMaterial(int pSubPatchIndex)
Return the mapped material for the specified sub patch.
void DisableOGLVertexData()
Disable OpenGL Vertex Array (Pos & Normal).
int GetSubPatchIndexSize(int pSubPatchIndex)
Return the size of the indexes for the specified sub patch (see GetIndexArray()).
void VertexArrayMappingRelease()
Release deformed vertex array mapping on CPU.
unsigned int GetUVSetVBOId(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set Buffer Object (VBO) Id for the specified texture mapping mode.
void DrawSubPatch(int pSubPatchIndex, bool pWireFrame=false)
Draw the specified sub patch.
void * GetVertexArray(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the vertex array for the specified vertex array Id.
const int * GetVertexArrayDuplicationMap(unsigned int &pDuplicatedVertexCount)
The FBModel::TessellatedMesh could contain per-face mapping UVSet/Normal or other layer elements.
void * GetUVSetVBOOffset(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set Buffer Object (VBO) offset for the specified texture mapping mode.
unsigned int GetIndexArrayVBOId()
Return the index array VBO Id.
void VertexArrayMappingRequest()
Request deformed vertex array mapping on CPU.
int GetSubPatchIndexOffset(int pSubPatchIndex)
Return the start offset of the indexes for the specified sub patch (see GetIndexArray()).
void PushZDepthClipOverride()
Disables Z-Depth clip plane if this model is selected using Z-Depth HideFront selection tool.
FBMaterial * GetSubRegionMaterial(int pSubRegionIndex)
Return the specified sub region's material.
void * GetVertexArrayVBOOffset(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the Vertex Buffer Object (VBO) offset for the specified vertex array Id.
void EnableOGLVertexData(bool pAfterDeform=true)
Enable (Setup) OpenGL Vertex Array (Pos & Normal).
void DisableOGLUVSet()
Disable OpenGL UV set array.
int GetVertexCount()
Return the number of vertices.
void PopZDepthClipOverride()
Re-enables Z-Depth clip plane if it had been disabled via PushZDepthClipOverride().
bool IsDeformable()
Return true if the model is deformable.
FBGeometryArrayElementType GetUVSetArrayFormat(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set array format.
void EnableOGLUVSet(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Enable (Setup) OpenGL UV set array.
unsigned int GetVertexArrayVBOId(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the Vertex Buffer Object (VBO) Id for the specified vertex array Id.
int GetIndexArraySize()
Return the index array size (see GetIndexArray()).
int GetSubPatchCount()
Return the number of sub patches.
void DrawSubRegion(int pSubRegionIndex, bool pWireFrame=false)
Draw the specified sub region.
int GetSubRegionCount()
Return the number of sub regions (mapping with different materials).
int * GetIndexArray()
Return the index array.
FBGeometryArrayElementType GetVertexArrayType(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the vertex array format for the specified array Id.
int GetSubPatchMaterialId(int pSubPatchIndex)
Return the mapped material ID for the specified sub patch.
FBGeometryPrimitiveType GetSubPatchPrimitiveType(int pSubPatchIndex, bool *pIsOptimized=NULL)
Return the primitive type for the specified sub patch.
bool IsDrawable()
Queries if this model should be drawn, e.g., in custom render callback.
void * GetUVSetArray(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set array for the specified texture mapping mode.
Base Model deformer class.
Definition fbmodel.h:1535
FBPropertyBool Loop
Read Write Property: Loop.
Definition fbmodel.h:1553
FBPropertyTime StopTime
Read Write Property: Stop Time.
Definition fbmodel.h:1549
FBPropertyDouble PlaySpeed
Read Write Property: Play Speed.
Definition fbmodel.h:1550
FBPropertyBool FreeRunning
Read Write Property: Free Running.
Definition fbmodel.h:1552
FBPointCacheFile(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyString CacheFileName
Read Write Property: Filename of media.
Definition fbmodel.h:1545
FBPropertyTime Offset
Read Write Property: Offset.
Definition fbmodel.h:1551
FBPropertyInt ChannelCount
Read Only Property: Channel Count.
Definition fbmodel.h:1546
FBPropertyTime StartTime
Read Write Property: Start Time.
Definition fbmodel.h:1548
PropertyList: Component.
PropertyList: Concrete class for PropertyList of component
virtual int Add(FBDeformer *pItem)
Add a texture to the property list.
FBDeformer * operator[](int pIndex)
Get the texture at a specific index.
PropertyList: Material
Definition fbmaterial.h:182
List: Model
Definition fbmodel.h:97
virtual void RemoveAt(int pIndex)
Remove the model at pIndex.
FBModel * operator[](int pIndex)
Get the model at pIndex.
virtual int GetCount()
Get the number of models.
int Remove(FBModel *pItem)
Remove model pItem from property list.
int Add(FBModel *pItem)
Add a model to the property list.
PropertyList: ModelSkeleton.
Definition fbmodel.h:981
FBModelSkeleton * operator[](int pIndex)
Get the ModelSkeleton at pIndex.
PropertyList: Shader
Definition fbshader.h:693
PropertyList: Texture
Definition fbtexture.h:159
Property class: const char * (String).
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
Basic class definitions.
#define __FBClassDeclareGroup(Name, Parent)
For internal use only.
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Contains definitions for devices, boxes and models.
Base class for Geometry.
FBGeometryArrayID
ID to use when requesting a specific array of data for a model.
Definition fbgeometry.h:77
FBGeometryArrayElementType
Type of data when requesting an array.
Definition fbgeometry.h:86
Base class for Material.
Contains routines for vector and matrix manipulation.
FBModelRenderPass
Model Render pass.
Definition fbmodel.h:192
@ kFBModelRenderPassPick
Pick pass.
Definition fbmodel.h:194
@ kFBModelRenderPassStandard
Standard pass.
Definition fbmodel.h:193
FBModelTransformationType
Types of transformation vector/matrices possible.
Definition fbmodel.h:167
@ kModelInverse_Transformation_Geometry
Inverse of transformation plus geometry offset.
Definition fbmodel.h:177
@ kModelInverse_Scaling
Inverse scaling.
Definition fbmodel.h:176
@ kModelTransformation
Transformation.
Definition fbmodel.h:168
@ kModelInverse_Transformation
Inverse transformation.
Definition fbmodel.h:173
@ kModelScaling
Scaling.
Definition fbmodel.h:171
@ kModelTransformation_Geometry
Transformation plus geometry offset
Definition fbmodel.h:172
@ kModelRotation
Rotation.
Definition fbmodel.h:169
@ kModelInverse_Translation
Inverse translation.
Definition fbmodel.h:175
@ kModelInverse_Rotation
Inverse rotation.
Definition fbmodel.h:174
@ kModelTranslation
Translation.
Definition fbmodel.h:170
K_DLLIMPORT void FBBeginChangeAllModels()
Call begin change to all models (need to be closed).
K_DLLIMPORT FBModel * FBGetLastSelectedModel()
Get the last selected model, which is the one having the manipulator in the viewer.
FBModelHiercharyTraverserType
Types of hierarchy traverser search type.
Definition fbmodel.h:222
@ kModelTraverserDepthFirst
Depth-first search.
Definition fbmodel.h:223
@ kModelTraverserBreadthFirst
Breadth-first search.
Definition fbmodel.h:224
FBModelEvaluationTaskType
Definition fbmodel.h:215
@ kFBModelEvaluationTransform
Model's transformation evaluation task (Global )
Definition fbmodel.h:216
@ kFBModelEvaluationDeform
Model's deformation task (for deformable model)
Definition fbmodel.h:218
@ kFBModelEvaluationBBox
Model's bouding box computation task (approximately for deformable model)
Definition fbmodel.h:217
FBModelCullingMode
Model Culling Mode.
Definition fbmodel.h:209
@ kFBCullingOnCCW
Culling with Counter Clock Wise.
Definition fbmodel.h:211
@ kFBCullingOff
Culling Off.
Definition fbmodel.h:210
@ kFBCullingOnCW
Culling with Clock Wise.
Definition fbmodel.h:212
K_DLLIMPORT void FBEndChangeAllModels()
Call end change to all models (should be first open).
K_DLLIMPORT void FBModelTransactionEnd()
FBModelTransactionEnd.
FBMarkerType
Type of the marker.
Definition fbmodel.h:860
@ kFBMarkerTypeOptical
Optical.
Definition fbmodel.h:862
@ kFBMarkerTypeStandard
Standard.
Definition fbmodel.h:861
@ kFBMarkerTypeIKEffector
IK effector.
Definition fbmodel.h:864
@ kFBMarkerTypeFKEffector
FK effector.
Definition fbmodel.h:863
K_DLLIMPORT void FBDestroyModelList(FBModelList *pModelList)
Delete a FBModelList object.
K_DLLIMPORT FBModelList * FBCreateModelList()
Create a FBModelList object.
K_DLLIMPORT FBModel * FBFindModelByLabelName(const char *pModelLabelName)
Find a model in the scene by its label name.
K_DLLIMPORT void FBGetSelectedModels(FBModelList &pList, FBModel *pParent=NULL, bool pSelected=true, bool pSortBySelectOrder=false)
Find all models that are selected (if pSelected is true) Searches recursively from a root model for m...
K_DLLIMPORT void FBFindModelsOfType(FBModelList &pList, int pTypeInfo, FBModel *pParent=NULL)
Find all models of a certain type in the scene.
FBClusterMode
Different clustering modes.
Definition fbmodel.h:1029
@ kFBClusterNormalize
Normalize (values between 0.0 and 1.0 )
Definition fbmodel.h:1030
@ kFBClusterTotal100
The balanced values will add up to 100 percent.
Definition fbmodel.h:1032
@ kFBClusterAdditive
Add the values together.
Definition fbmodel.h:1031
FBMarkerResolutionLevel
Resolution of marker mesh sphere and capsule (Quality).
Definition fbmodel.h:833
@ kFBMarkerHighResolution
Highest resolution.
Definition fbmodel.h:836
@ kFBMarkerLowResolution
Lowest resolution.
Definition fbmodel.h:834
@ kFBMarkerMediumResolution
Medium resolution.
Definition fbmodel.h:835
FBModelShadingMode
Modes for model shading.
Definition fbmodel.h:181
@ kFBModelShadingWire
Wireframe shading.
Definition fbmodel.h:183
@ kFBModelShadingHard
Hard shading.
Definition fbmodel.h:186
@ kFBModelShadingFlat
Flat shading.
Definition fbmodel.h:184
@ kFBModelShadingLight
Lighted shading.
Definition fbmodel.h:185
@ kFBModelShadingAll
Lighted, shaded, textured shading.
Definition fbmodel.h:188
@ kFBModelShadingDefault
Default shading.
Definition fbmodel.h:182
@ kFBModelShadingTexture
Textured shading.
Definition fbmodel.h:187
K_DLLIMPORT void FBModelTransactionBegin()
FBModelTransactionBegin.
FBDeformerType
Determine the deformer type.
Definition fbmodel.h:1474
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL
Definition fbmodel.h:682
FBSelectionAction
Selection mode when selecting component.
Definition fbmodel.h:228
@ kFBManipulatorAddAll
Add all components to the current selection.
Definition fbmodel.h:233
@ kFBManipulatorReplace
Replaces the current selection by the new selected components.
Definition fbmodel.h:229
@ kFBManipulatorAdd
Add the selected components to the current selection.
Definition fbmodel.h:230
@ kFBManipulatorToggle
Toggle the current selection with the unselected components.
Definition fbmodel.h:232
@ kFBManipulatorRemoveAll
Remove all components from the current selection.
Definition fbmodel.h:234
@ kFBManipulatorRemove
Remove the selected components from the current selection.
Definition fbmodel.h:231
FBSkeletonResolutionLevel
Resolution of skeleton sphere, capsule and stick (Quality).
Definition fbmodel.h:936
@ kFBSkeletonMediumResolution
Medium resolution.
Definition fbmodel.h:938
@ kFBSkeletonHighResolution
Highest resolution.
Definition fbmodel.h:939
@ kFBSkeletonLowResolution
Lowest resolution.
Definition fbmodel.h:937
FBModelRotationOrder
Ways to apply Rotation.
Definition fbmodel.h:198
@ kFBSphericXYZ
Spheric XYZ Order.
Definition fbmodel.h:205
@ kFBEulerXYZ
XYZ Euler Order.
Definition fbmodel.h:199
@ kFBEulerZYX
ZYX Euler Order.
Definition fbmodel.h:204
@ kFBEulerYXZ
YXZ Euler Order.
Definition fbmodel.h:202
@ kFBEulerXZY
XZY Euler Order.
Definition fbmodel.h:200
@ kFBEulerYZX
YZX Euler Order.
Definition fbmodel.h:201
@ kFBEulerZXY
ZXY Euler Order.
Definition fbmodel.h:203
K_DLLIMPORT FBModel * FBFindModelByUniqueColorId(const FBColor &pColor, int *pSubItemIndex=NULL)
Find a model in the scene by its unique color id.
FBMarkerLook
Look of the marker.
Definition fbmodel.h:841
@ kFBMarkerLookCircle
Circle.
Definition fbmodel.h:848
@ kFBMarkerLookHardCross
Thick cross.
Definition fbmodel.h:843
@ kFBMarkerLookSphere
Sphere.
Definition fbmodel.h:845
@ kFBMarkerLookRigidGoal
Rigid goal.
Definition fbmodel.h:853
@ kFBMarkerLookNone
None.
Definition fbmodel.h:852
@ kFBMarkerLookBox
Box.
Definition fbmodel.h:851
@ kFBMarkerLookCube
Cube.
Definition fbmodel.h:842
@ kFBMarkerLookCapsule
Capsule.
Definition fbmodel.h:846
@ kFBMarkerLookAimRollGoal
Aim & Roll goal.
Definition fbmodel.h:855
@ kFBMarkerLookStick
Box with a sphere on one end.
Definition fbmodel.h:850
@ kFBMarkerLookRotationGoal
Rotation goal.
Definition fbmodel.h:854
@ kFBMarkerLookBone
Bone.
Definition fbmodel.h:849
@ kFBMarkerLookSquare
Square.
Definition fbmodel.h:847
@ kFBMarkerLookLightCross
Wireframe cross.
Definition fbmodel.h:844
K_DLLIMPORT FBModel * FBLoadFbxPrimitivesModel(const char *pModelName)
Load a model.
FBSkeletonLook
Look of the skeleton.
Definition fbmodel.h:921
@ kFBSkeletonLookBone
Bone.
Definition fbmodel.h:922
@ kFBSkeletonLookSquare
Square.
Definition fbmodel.h:930
@ kFBSkeletonLookSphere
Sphere.
Definition fbmodel.h:926
@ kFBSkeletonLookCircle
Circle.
Definition fbmodel.h:929
@ kFBSkeletonLookLightCross
Wireframe cross.
Definition fbmodel.h:925
@ kFBSkeletonLookStick
Box with a sphere on one end.
Definition fbmodel.h:931
@ kFBSkeletonLookCapsule
Capsule.
Definition fbmodel.h:927
@ kFBSkeletonLookHardCross
Thick cross.
Definition fbmodel.h:924
@ kFBSkeletonLookCube
Cube.
Definition fbmodel.h:923
@ kFBSkeletonLookBox
Box.
Definition fbmodel.h:928
K_DLLIMPORT void FBSetLastSelectedModel(FBModel *pModel)
Set the given model as the last one selected, so the manipulator in the viewer will then be on that p...
class K_DLLIMPORT FBPropertyBaseAnimatable< FBVector3d, kFBPT_Vector3D > FBPropertyAnimatableVector3d
FBPropertyAnimatableVector3D type definition.
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBaseAnimatable< bool, kFBPT_bool > FBPropertyAnimatableBool
FBPropertyAnimatableBool type definition.
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
class K_DLLIMPORT FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
Declaration for the classes FBShaderManager, FBShader, FBPropertyListShader and other subclasses.
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Definition fbtypes.h:74
class K_DLLIMPORT FBVector2< double > FBVector2d
2D vector.
Definition fbtypes.h:435
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition fbtypes.h:62
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition fbtypes.h:68
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
Definition fbtypes.h:438
class K_DLLIMPORT FBVector4< float > FBNormal
Normal.
Definition fbtypes.h:599