Open Reality Reference Guide
fbmodel.h
Go to the documentation of this file.
1 #ifndef __FBMODEL_H__
2 #define __FBMODEL_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN 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
61 namespace 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 
84 FB_DEFINE_COMPONENT( FBSDK_DLL, Cluster );
85 FB_DEFINE_COMPONENT( FBSDK_DLL, ModelVertexData );
86 FB_DEFINE_COMPONENT( FBSDK_DLL, PointCacheFile );
87 
89 // FBPropertyListModel
93 FB_DEFINE_LIST( FBSDK_DLL, Model );
94 
97 {
98 public:
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); }
128 private:
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 {
142 public:
150  virtual int Add( FBDeformer* pItem );
155  FBDeformer* operator[](int pIndex);
156 
157 private:
158  inline virtual int Add ( FBComponent* pItem ) { return Add((FBDeformer*)pItem); }
159 };
160 
162 // FBModel
165 
178 };
179 
189 };
190 
195 };
196 
206 };
207 
213 };
214 
219 };
220 
225 };
226 
235 };
236 
237 FB_DEFINE_ENUM( FBSDK_DLL, ModelShadingMode );
238 FB_DEFINE_ENUM( FBSDK_DLL, ModelTransformationType);
239 FB_DEFINE_ENUM( FBSDK_DLL, ModelRotationOrder );
240 
242 
273 class FBSDK_DLL FBModel : public FBBox
274 {
276 public:
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 
468  void GetBoundingBox( FBVector3d& pMin, FBVector3d& pMax );
469 
480  bool IsVisible(FBEvaluateInfo* pEvaluateInfo = NULL);
481 
486 
490  void SetCullingMode(FBModelCullingMode pCullingMode);
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 
590  unsigned int GetAdditionalUniqueColorIDCount() const;
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 
705 FBSDK_DLL FBModel* FBFindModelByLabelName( const char* pModelLabelName );
706 
714 FBSDK_DLL FBModel* FBFindModelByUniqueColorId( const FBColor& pColor, int* pSubItemIndex = NULL );
715 
720 FBSDK_DLL FBModel* FBLoadFbxPrimitivesModel( const char* pModelName );
721 
729 FBSDK_DLL void FBFindModelsOfType( FBModelList& pList, int pTypeInfo, FBModel* pParent=NULL );
730 
740 FBSDK_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 
779 class FBSDK_DLL FBModelNull : public FBModel {
781 public:
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 
814 class FBSDK_DLL FBModelRoot : public FBModel {
816 public:
821  FBModelRoot(const char* pName, HIObject pObject=NULL);
822 
824 };
825 
827 // FBModelMarker
830 
833 {
837 };
838 
841 {
856 };
857 
860 {
865 };
866 
867 FB_DEFINE_ENUM( FBSDK_DLL, MarkerResolutionLevel );
868 FB_DEFINE_ENUM( FBSDK_DLL, MarkerLook );
869 FB_DEFINE_ENUM( FBSDK_DLL, MarkerType );
870 
874 public:
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 {
940 };
941 
942 FB_DEFINE_ENUM( FBSDK_DLL, SkeletonLook );
943 FB_DEFINE_ENUM( FBSDK_DLL, SkeletonResolutionLevel );
944 
948 public:
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
976 FB_DEFINE_LIST( FBSDK_DLL, ModelSkeleton );
978 
981 {
982 public:
989 };
990 
991 
993 // FBModelCube
996 
998 class FBSDK_DLL FBModelCube : public FBModel {
1000 public:
1005  FBModelCube(const char* pName, HIObject pObject=NULL);
1006 };
1007 
1009 // FBModelPlane
1012 
1016 public:
1021  FBModelPlane(const char* pName, HIObject pObject=NULL);
1022 };
1023 
1024 
1026 // FBCluster
1033 };
1034 FB_DEFINE_ENUM( FBSDK_DLL, ClusterMode );
1035 
1037 
1043 
1044 protected:
1048  FBCluster(FBModel* pModel);
1049  friend class DataFBModel;
1050 
1051 public:
1052 
1053  //--- Cluster-level operations
1058  int ClusterBegin(int pIndex = -1);
1059 
1063  int ClusterEnd();
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);
1097  FBModel* LinkGetAssociateModel(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);
1156  void VertexClear();
1157 
1158  FBPropertyClusterMode ClusterMode;
1160 };
1161 
1163 // FBModelVertexData
1166 
1169 
1170 protected:
1171  FBModelVertexData(FBModel* pModel);
1172  friend class DataFBModel;
1173 
1174 public:
1175 
1180 
1186  bool IsDrawable();
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 
1480 FB_DEFINE_ENUM( FBSDK_DLL, DeformerType );
1481 
1483 
1487 
1488 public:
1493  FBDeformer(const char* pName, HIObject pObject=NULL);
1494 
1495  FBPropertyDeformerType DeformerType;
1496 };
1497 
1499 // FBDeformerPointCache
1502 
1506 
1507 public:
1512  FBDeformerPointCache(const char* pName, HIObject pObject=NULL);
1513 
1514  FBPropertyPointCacheFile PointCacheFile;
1515 
1517 
1520 
1527 };
1528 
1530 // FBPointCacheFile
1533 
1537 
1538 public:
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.
int VertexGetCount()
Get the number of vertices.
int VertexGetNumber(int pIndex)
Get vertex number.
int ClusterEnd()
End cluster definition.
const char * LinkGetName(int pLinkNumber)
Get the name of a link.
void LinkSetName(const char *pName, int pLinkNumber)
Set the name of a link.
FBModel * LinkGetAssociateModel(int pLinkNumber)
Get model associated with link.
void LinkSetModel(FBModel *pModel)
Set model to a link.
FBModel * LinkGetModel(int pLinkNumber)
Get model from a link.
void VertexSetWeight(double pWeight, int pIndex)
Set vertex weight.
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.
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
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
unsigned char * GetSelectedPoints()
Get the list of the points selection state.
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 FBModel * Clone()
Clone the model.
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 const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
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.
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
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
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
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
virtual const char * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
void SetFKOpacity(double pValue)
Used when shading the controlset.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition: fbmodel.h:881
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
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 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 * FbxGetObjectType() override
Returns the class type inherited by the class of an object, for example: 'Model'.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Definition: fbmodel.h:788
virtual const char * FbxGetObjectSubType() override
Returns the class sub type inherited by the class of an object, for example: 'Default',...
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Store and Retrieve function that can be overloaded.
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.
void DisableOGLVertexData()
Disable OpenGL Vertex Array (Pos & Normal).
void * GetUVSetVBOOffset(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set Buffer Object (VBO) offset for the specified texture mapping mode.
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.
FBMaterial * GetSubRegionMaterial(int pSubRegionIndex)
Return the specified sub region's material.
void * GetVertexArray(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the vertex array for the specified vertex array Id.
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.
int * GetIndexArray()
Return the index array.
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().
FBMaterial * GetSubPatchMaterial(int pSubPatchIndex)
Return the mapped material for the specified sub patch.
void * GetUVSetArray(FBTextureMapping pTextureMapping=kFBTextureMappingUV, const char *pUVSet=NULL)
Return the UV Set array for the specified texture mapping mode.
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.
void * GetVertexArrayVBOOffset(FBGeometryArrayID pArrayId, bool pAfterDeform=true)
Return the Vertex Buffer Object (VBO) offset for the specified vertex array Id.
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).
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.
const int * GetVertexArrayDuplicationMap(unsigned int &pDuplicatedVertexCount)
The FBModel::TessellatedMesh could contain per-face mapping UVSet/Normal or other layer elements.
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.
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
FBDeformer * operator[](int pIndex)
Get the texture at a specific index.
virtual int Add(FBDeformer *pItem)
Add a texture to the property list.
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 * FBFindModelByUniqueColorId(const FBColor &pColor, int *pSubItemIndex=NULL)
Find a model in the scene by its unique color id.
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.
K_DLLIMPORT FBModel * FBFindModelByLabelName(const char *pModelLabelName)
Find a model in the scene by its label name.
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 FBModel * FBGetLastSelectedModel()
Get the last selected model, which is the one having the manipulator in the viewer.
K_DLLIMPORT void FBDestroyModelList(FBModelList *pModelList)
Delete a FBModelList object.
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
K_DLLIMPORT FBModelList * FBCreateModelList()
Create a FBModelList object.
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
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
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...
K_DLLIMPORT FBModel * FBLoadFbxPrimitivesModel(const char *pModelName)
Load a model.
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