Open Reality Reference Guide
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.
Definition: fbcomponent.h:651
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.
Definition: fbcomponent.h:477
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
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;
Definition: fbcharacter.h:597
Basic class definitions.
#define __FBClassDeclareGroup(Name, Parent)
For internal use only.
Definition: fbcomponent.h:155
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
Contains definitions for devices, boxes and models.
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
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.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbmodel.h:48
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
__FB_FORWARD(FBDeformer)
PropertyList: Texture
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.
Definition: fbproperties.h:163
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
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
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
Definition: fbtypes.h:438
class K_DLLIMPORT FBVector4< float > FBNormal
Normal.
Definition: fbtypes.h:599