48 #define FBSDK_DLL K_DLLIMPORT
60 #ifdef FBSDKUseNamespace
67 #define FBStorableCustomModelImplementation(ClassName, Desc)\
68 const char* ClassName::FbxGetObjectSubType(){ return #ClassName; }\
69 HIObject RegisterStorable##ClassName##Create(HIObject , const char* pName, void* ){\
70 ClassName* Class = new ClassName(pName);\
71 Class->mAllocated = true;\
72 if( Class->FBCreate() ){\
73 __FBRemoveModelFromScene( Class->GetHIObject() ); \
74 return Class->GetHIObject();\
78 FBLibraryModule(ClassName##Storable){\
79 FBString lGroup = "FbxStorable/Model";\
80 FBRegisterObject(ClassName##R2, lGroup, #ClassName, Desc, RegisterStorable##ClassName##Create, true, NULL);\
81 FBSetStoreableCustomModelRegistered();}\
114 virtual void RemoveAt(
int pIndex );
120 FBModel* operator[](
int pIndex);
125 virtual int GetCount();
126 #ifndef DOXYGEN_SHOULD_SKIP_THIS
282 virtual void FBDelete();
441 void SetSchematicPosition(
int pX,
int pY);
446 void SetSchematicPosition(
FBVector2d pVector2d);
486 void ForceAlwaysEvaluate();
490 bool IsForceAlwaysEvaluate();
495 int NoFrustumCullingRequire();
500 int NoFrustumCullingRelease();
505 bool UseFrustumCulling();
535 int pMouseX,
int pMouseY,
539 FBTVector* pOutPickedPoint) {
return false; }
554 unsigned char* GetSelectedPoints();
559 int GetSelectedPointsCount();
575 bool SetAdditionalUniqueColorIDCount(
unsigned int pCount);
580 unsigned int GetAdditionalUniqueColorIDCount()
const;
586 FBColor GetAdditionalUniqueColorID(
unsigned int pIndex)
const;
606 void SetupPropertiesForShapes();
620 virtual const char* FbxGetObjectType()
override;
624 virtual const char* FbxGetObjectSubType()
override;
651 void CollapseInSchematic();
655 void ExpandInSchematic();
660 bool IsCollapsedInSchematic()
const;
776 virtual const char* FbxGetObjectType()
override;
780 virtual const char* FbxGetObjectSubType()
override;
868 void SetFKOpacity(
double pValue);
879 virtual const char* FbxGetObjectType()
override;
883 virtual const char* FbxGetObjectSubType()
override;
942 void GetSkinModelList(FBModelList& pSkinModelList);
1022 friend class DataFBModel;
1031 int ClusterBegin(
int pIndex = -1);
1043 void LinkSetName(
const char *pName,
int pLinkNumber);
1048 const char* LinkGetName(
int pLinkNumber);
1052 void LinkRemove(
int pLinkNumber);
1060 void LinkSetModel(
FBModel* pModel);
1065 FBModel* LinkGetModel(
int pLinkNumber);
1070 FBModel* LinkGetAssociateModel(
int pLinkNumber);
1074 void LinkClearUnused(
double pThreshold = -1.0 );
1079 void LinkSetCurrentVertex(
int pLinkIndex,
int pPointIndex);
1084 int LinkGetVertexIndex(
int pIndex);
1103 void VertexAdd(
int pVertexIndex,
double pWeight);
1107 void VertexRemove(
int pVertexIndex);
1111 int VertexGetCount();
1116 int VertexGetNumber(
int pIndex);
1121 double VertexGetWeight(
int pIndex);
1126 void VertexSetWeight(
double pWeight,
int pIndex);
1145 friend class DataFBModel;
1150 bool IsDeformable();
1159 int GetVertexCount();
1167 int GetSubPatchCount();
1170 int GetSubPatchMaterialId(
int pSubPatchIndex);
1173 FBMaterial* GetSubPatchMaterial(
int pSubPatchIndex);
1184 int GetSubPatchIndexOffset(
int pSubPatchIndex);
1187 int GetSubPatchIndexSize(
int pSubPatchIndex);
1193 void DrawSubPatch(
int pSubPatchIndex,
bool pWireFrame =
false);
1204 int GetSubRegionCount();
1209 FBMaterial* GetSubRegionMaterial(
int pSubRegionIndex);
1215 void DrawSubRegion(
int pSubRegionIndex,
bool pWireFrame =
false);
1224 void PushZDepthClipOverride();
1230 void PopZDepthClipOverride();
1238 void EnableOGLVertexData(
bool pAfterdeform =
true);
1241 void DisableOGLVertexData();
1248 void VertexArrayMappingRequest();
1254 void VertexArrayMappingRelease();
1265 const int* GetVertexArrayDuplicationMap(
unsigned int& pDuplicatedVertexCound);
1268 int* GetIndexArray();
1271 unsigned int GetIndexArrayVBOId();
1295 unsigned int GetVertexArrayVBOId(
FBGeometryArrayID pArrayId,
bool pAfterDeform =
true);
1303 void* GetVertexArrayVBOOffset(
FBGeometryArrayID pArrayId,
bool pAfterDeform =
true);
1316 void DisableOGLUVSet();
1446 #ifdef FBSDKUseNamespace
FBModelHiercharyTraverserType
Types of hierarchy traverser search type.
FBPropertyMarkerLook Look
Read Write Property: Look of model marker.
FBPropertyString CacheFileName
Read Write Property: Filename of media.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBSkeletonLook
Look of the skeleton.
const double FBMat2EulerDegenerateForPrecision10
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
class FBPropertyBaseAnimatable< bool, kFBPT_bool > FBPropertyAnimatableBool
FBPropertyAnimatableBool type definition.
void FBModelTransactionEnd()
FBModelTransactionEnd.
class FBPropertyBaseComponent< FBScene * > FBPropertyScene
Inverse of transformation plus geometry offset.
A box is a fundamental building block in the application architecture.
FBPropertyMesh TessellatedMesh
Read Only Property: Tessellated Mesh for the model.
FBGeometryArrayElementType
Type of data when requesting an array.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
FBPropertyTime StartTime
Read Write Property: Start Time.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
Property class: const char * (String).
FBPropertyTime Offset
Read Write Property: Offset.
class FBPropertyBaseEnum< enum FBModelRotationOrder > FBPropertyModelRotationOrder
class FBPropertyBaseComponent< FBMesh * > FBPropertyMesh
FBPropertyCluster Cluster
Read Only Property: Link Cluster for the model.
FBModelCullingMode
Model Culling Mode.
FBPropertyColor Color
Read Write Property: Color of model marker.
Base Model deformer class.
FBSkeletonResolutionLevel
Resolution of skeleton sphere, capsule and stick (Quality).
FBPropertyVector3d GeometricScaling
Read Write Property: Geometric scaling.
Four x Four (double) Matrix.
FBPropertyBool RotationMinZ
Read Write Property: Is model using Minimum Rotation Limits On Z?
FBModelRenderPass
Model Render pass.
class FBVector3< double > FBVector3d
3D vector.
PropertyList: ModelSkeleton.
void FBFindModelsOfType(FBModelList &pList, int pTypeInfo, FBModel *pParent=((void *) 0))
Find all models of a certain type in the scene.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
FBPropertyBool PrimaryVisibility
Read Write Property: Control the geometry render state.
class FBPropertyBaseComponent< FBModel * > FBPropertyModel
class FBPropertyBaseEnum< enum FBMarkerLook > FBPropertyMarkerLook
FBPropertyModel Parent
Read Write Property: Parent model.
FBPropertyListMaterial Materials
List: Materials for model.
#define ICallback_Declare(IsPure)
Forwarding.
FBPropertyModel LookAt
Read Write Property: Look at model (interest point).
FBPropertyAnimationNode AnimationNode
Read Only Property: Animation node of the model.
virtual bool HasCustomDisplay()
Function to overload to handle custom display.
FBPropertyBool FreeRunning
Read Write Property: Free Running.
FBPropertyBool ConstrainDeformable
Read Write Property: Model constraint deformable.
Lighted, shaded, textured shading.
FBPropertyAnimatableVector3d Rotation
Read Write Property: Lcl rotation.
FBPropertyMarkerResolutionLevel ResLevel
Read Write Property: Resolution level of model marker.
class FBPropertyBaseEnum< enum FBSkeletonResolutionLevel > FBPropertySkeletonResolutionLevel
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
void FBModelTransactionBegin()
FBModelTransactionBegin.
FBPropertyVector3d GeometricRotation
Read Write Property: Geometric rotation.
virtual bool ManipulatorNotify(FBSelectionAction pAction)
Callback for component selection in custom FBModel.
FBPropertyAnimatableVector3d Translation
Read Write Property: Lcl translation.
FBPropertyListModel Children
Interface to IObject.
Creates custom cameras and manages system cameras.
class FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
FBPropertyVector3d IKPivot
Read Write Property: marker Pivot Offset.
FBPropertyBool CastsShadows
Read Write Property: If true, the geometry will produce shadows.
FBPropertyBool TranslationMinX
Read Write Property: Is model using Translation Limits on Min X.
FBPropertyBool IKSync
Read Write Property: Must sync with IK if true.
Contains definitions for devices, boxes and models.
FBTextureMapping
Texture mapping modes.
Add the selected components to the current selection.
FBPropertyModelShadingMode ShadingMode
Read Write Property: Shading mode for the model.
FBModelRotationOrder
Ways to apply Rotation.
virtual void CustomModelDisplay(FBCamera *pCamera, FBModelShadingMode pShadingMode, FBModelRenderPass pRenderPass, float pPickingAreaWidth, float pPickingAreaHeight)
Custom display function, called when HasCustomDisplay returns true;.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBPropertyBool QuaternionInterpolate
Read Write Property: Use quaternion interpolation.
FBPropertyBool SoftSelected
Read Write Property: Is model Soft selected?
FBClusterMode
Different clustering modes.
FBPropertySkeletonResolutionLevel Resolution
Read Write Property: Resolution of skeleton node.
class FBPropertyBaseComponent< FBModelVertexData * > FBPropertyModelVertexData
FBPropertyColor UniqueColorId
Read Only Property: Unique Color Id for color based viewer picking.
FBPropertyScene Scene
Read Only Property: Scene containing the model.
FBPropertyBool IsConstrained
Read Only Property: Is model constrained?
FBMarkerType
Type of the marker.
FBPropertyBool TranslationMaxZ
Read Write Property: Is model using Translation Limits on Max Z.
FBPropertyVector3d TranslationMin
Read Write Property: Translation Limit Min.
FBModelShadingMode
Modes for model shading.
Model's deformation task (for deformable model)
FBPropertyBool RotationMinX
Read Write Property: Is model using Minimum Rotation Limits On X?
FBPropertyBool SkeletonDeformable
Read Write Property: Model skeleton deformable.
Normalize (values between 0.0 and 1.0 )
Box with a sphere on one end.
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Model's bouding box computation task (approximately for deformable model)
FBPropertySkeletonLook Look
Read Write Property: Look of skeleton node.
FBPropertyGeometry Geometry
Read Write Property: Geometry for the model.
FBPropertyBool RotationMaxZ
Read Write Property: Is model using Maximum Rotation Limits On Z?
FBPropertyInt GeometryUpdateId
Read Only Property: model geometry (vertex data) related update id.
FBPropertyBool RotationMaxY
Read Write Property: Is model using Maximum Rotation Limits On Y?
Add all components to the current selection.
class FBPropertyBaseComponent< FBAnimationNode * > FBPropertyAnimationNode
FBPropertyAnimatableVector3d Scaling
Read Write Property: Lcl scaling.
FBPropertyListShader Shaders
List: Shaders for model.
FBMarkerResolutionLevel
Resolution of marker mesh sphere and capsule (Quality).
class FBPropertyBaseAnimatable< FBVector3d, kFBPT_Vector3D > FBPropertyAnimatableVector3d
FBPropertyAnimatableVector3D type definition.
PropertyList: Concrete class for PropertyList of component
void FBDestroyModelList(FBModelList *pModelList)
Delete a FBModelList object.
FBModel * FBFindModelByLabelName(const char *pModelLabelName)
Find a model in the scene by its label name.
FBPropertyBool PointCacheRecord
Read Write Property: Record Point Cache for model? Not Savable
FBPropertyBool Icon3D
Read Write Property: Is model a 3D icon?
FBPropertyDouble PlaySpeed
Read Write Property: Play Speed.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBModel * FBLoadFbxPrimitivesModel(const char *pModelName)
Load a model.
FBPropertyBool BlendShapeDeformable
Read Write Property: Model blend-shape deformable.
FBPropertyListTexture Textures
List: Textures with Special UseType (Other than "Color" which should connect to materials).
void FBBeginChangeAllModels()
Call begin change to all models (need to be closed).
Model's transformation evaluation task (Global )
Culling with Counter Clock Wise.
void FBEndChangeAllModels()
Call end change to all models (should be first open).
class FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate FBModelList;
FBPropertyListDeformer Deformers
List: Deformers (Skeleton Deformer or Point Cache Deformer).
FBPropertyModelVertexData ModelVertexData
Read Only Property: ModelVertexData for the model.
#define FBSDKNamespace
FBSDKNamespace define.
FBPropertyBool Loop
Read Write Property: Loop.
class FBPropertyBaseEnum< enum FBMarkerResolutionLevel > FBPropertyMarkerResolutionLevel
FBPropertyBool DrawLink
Read Write Property: Whether to draw link to parent node or not.
FBModelList * FBCreateModelList()
Create a FBModelList object.
Replaces the current selection by the new selected components.
Box with a sphere on one end.
FBPropertyBool IsDeformable
Read Only Property: Is model deformable?
FBPropertyBool TranslationActive
Read Write Property: Is model using Translation Limits?
FBMarkerLook
Look of the marker.
FBPropertyBool TranslationMinZ
Read Write Property: Is model using Translation Limits on Min Z.
FBPropertyAnimatableBool Visibility
Read Write Property: Visibility of model.
FBPropertyVector3d GeometricTranslation
Read Write Property: Geometric translation.
class FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
Toggle the current selection with the unselected components.
FBDeformerType
Determine the deformer type.
Remove all components from the current selection.
FBPropertyBool Pickable
Read Write Property: Indicate if a model can be picked in the viewer.
FBPropertyBool Transformable
Read Write Property: Indicate if a model can be transformable in the viewer.
FBPropertyClusterMode ClusterMode
Read Write Property: Cluster mode.
class FBPropertyBaseEnum< enum FBClusterMode > FBPropertyClusterMode
Remove the selected components from the current selection.
MotionBuilder SDK base class.
FBModelTransformationType
Types of transformation vector/matrices possible.
FBPropertyBool VisibilityInheritance
Read Write Property: //!< when="" this="" value="" is="" set="" to="" true="" the="" visibility="" of="" this="" model="" is="" also="">
Weighting interface for meshes.
class FBVector4< float > FBNormal
Normal.
class FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyModel UpVector
Read Write Property: UpVector model.
class FBVector2< double > FBVector2d
2D vector.
FBPropertyBool TranslationMaxY
Read Write Property: Is model using Translation Limits on Max Y.
FBGeometryArrayID
ID to use when requesting a specific array of data for a model.
Transformation plus geometry offset.
class FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
FBModelEvaluationTaskType
FBPropertyVector3d RotationMax
Read Write Property: Max Rotation Limit (considered if RotationActive is true)
class FBPropertyBaseEnum< enum FBDeformerType > FBPropertyDeformerType
FBPropertyBool PointCacheDeformable
Read Write Property: Model point cache deformable.
FBPropertyTime StopTime
Read Write Property: Stop Time.
The balanced values will add up to 100 percent.
FBPropertyBool RotationSpaceForLimitOnly
Read Write Property: Apply Post Rotation Matrix only for Limits?
FBPropertyBool RotationActive
Read Write Property: Is model using Rotation Limits?
FBPropertyDouble Length
Read Write Property: Length of skeleton node.
FBPropertyVector3d TranslationMax
Read Write Property: Translation Limit Max.
FBPropertyBool PreserveLinkEndPosition
Read Write Property: Whether skeleton node must preserve its links' end position to children nodes...
class FBPropertyBaseEnum< enum FBModelShadingMode > FBPropertyModelShadingMode
FBPropertyModelRotationOrder RotationOrder
Read Write Property: Rotation order.
class FBPropertyBaseComponent< FBCluster * > FBPropertyCluster
FBPropertyBool TranslationMinY
Read Write Property: Is model using Translation Limits on Min Y.
FBPropertyBool RotationMinY
Read Write Property: Is model using Minimum Rotation Limits On Y?
class FBPropertyBaseComponent< FBPointCacheFile * > FBPropertyPointCacheFile
class FBPropertyBaseEnum< enum FBMarkerType > FBPropertyMarkerType
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
AnimationNodeNotify evaluation information.
class FBPropertyBaseComponent< FBGeometry * > FBPropertyGeometry
FBPropertyVector3d PreRotation
Read Write Property: Pre Rotation (considered if RotationActive is true)
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;.
FBPropertyBool TranslationMaxX
Read Write Property: Is model using Translation Limits on Max X.
Declaration for the classes FBShaderManager, FBShader, FBPropertyListShader and other subclasses...
#define __FBClassDeclareGroup(Name, Parent)
For internal use only.
FBPropertyBool Show
Read Write Property: Indicate if the viewer should show the object, according to its visibility value...
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
FBPropertyVector3d RotationMin
Read Write Property: Min Rotation Limit (considered if RotationActive is true)
FBSelectionAction
Selection mode when selecting component.
FBPropertyVector3d PostRotation
Read Write Property: Post Rotation (considered if RotationActive is true)
class FBPropertyBaseEnum< enum FBSkeletonLook > FBPropertySkeletonLook
FBPropertyDouble ClusterAccuracy
Read Write Property: Cluster accuracy.
void FBGetSelectedModels(FBModelList &pList, FBModel *pParent=((void *) 0), bool pSelected=true, bool pSortBySelectOrder=false)
Find all models that are selected (if pSelected is true) Searches recursively from a root model for m...
FBModel * FBFindModelByUniqueColorId(const FBColor &pColor, int *pSubItemIndex=((void *) 0))
Find a model in the scene by its unique color id.
FBPropertyBool LinkFollowGeometryOffset
Read Write Property: Whether link to parent node must follow skeleton node or not, when skeleton node has a geometry offset.
FBPropertyDouble Length
Read Write Property: Length for capsule (not related to scaling).
FBPropertyBool ReceiveShadows
Read Write Property: If true, the geometry will receive shadows.
FBPropertyBool RotationMaxX
Read Write Property: Is model using Maximum Rotation Limits On X?
FBPropertyInt ChannelCount
Read Only Property: Channel Count.
FBPropertyColor Color
Read Write Property: Color of skeleton node.
#define IQuery_Declare(IsPure)
Contains routines for vector and matrix manipulation.
FBPropertyMarkerType Type
Read Write Property: Type of model marker.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool