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;
910 void GetSkinModelList(FBModelList& pSkinModelList);
990 friend class DataFBModel;
999 int ClusterBegin(
int pIndex = -1);
1011 void LinkSetName(
const char *pName,
int pLinkNumber);
1016 const char* LinkGetName(
int pLinkNumber);
1020 void LinkRemove(
int pLinkNumber);
1028 void LinkSetModel(
FBModel* pModel);
1033 FBModel* LinkGetModel(
int pLinkNumber);
1038 FBModel* LinkGetAssociateModel(
int pLinkNumber);
1042 void LinkClearUnused(
double pThreshold = -1.0 );
1047 void LinkSetCurrentVertex(
int pLinkIndex,
int pPointIndex);
1052 int LinkGetVertexIndex(
int pIndex);
1071 void VertexAdd(
int pVertexIndex,
double pWeight);
1075 void VertexRemove(
int pVertexIndex);
1079 int VertexGetCount();
1084 int VertexGetNumber(
int pIndex);
1089 double VertexGetWeight(
int pIndex);
1094 void VertexSetWeight(
double pWeight,
int pIndex);
1113 friend class DataFBModel;
1118 bool IsDeformable();
1127 int GetVertexCount();
1135 int GetSubPatchCount();
1138 int GetSubPatchMaterialId(
int pSubPatchIndex);
1141 FBMaterial* GetSubPatchMaterial(
int pSubPatchIndex);
1152 int GetSubPatchIndexOffset(
int pSubPatchIndex);
1155 int GetSubPatchIndexSize(
int pSubPatchIndex);
1161 void DrawSubPatch(
int pSubPatchIndex,
bool pWireFrame =
false);
1172 int GetSubRegionCount();
1177 FBMaterial* GetSubRegionMaterial(
int pSubRegionIndex);
1183 void DrawSubRegion(
int pSubRegionIndex,
bool pWireFrame =
false);
1192 void PushZDepthClipOverride();
1198 void PopZDepthClipOverride();
1206 void EnableOGLVertexData(
bool pAfterdeform =
true);
1209 void DisableOGLVertexData();
1216 void VertexArrayMappingRequest();
1222 void VertexArrayMappingRelease();
1233 const int* GetVertexArrayDuplicationMap(
unsigned int& pDuplicatedVertexCound);
1236 int* GetIndexArray();
1239 unsigned int GetIndexArrayVBOId();
1263 unsigned int GetVertexArrayVBOId(
FBGeometryArrayID pArrayId,
bool pAfterDeform =
true);
1271 void* GetVertexArrayVBOOffset(
FBGeometryArrayID pArrayId,
bool pAfterDeform =
true);
1284 void DisableOGLUVSet();
1414 #ifdef FBSDKUseNamespace
FBPropertyVector3d GeometricTranslation
Read Write Property: Geometric translation.
class FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate FBModelList;
FBPropertyBool Pickable
Read Write Property: Indicate if a model can be picked in the viewer.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FBPropertyColor UniqueColorId
Read Only Property: Unique Color Id for color based viewer picking.
FBPropertyCluster Cluster
Read Only Property: Link Cluster for the model.
FBMarkerLook
Look of the marker.
FBPropertyBool Transformable
Read Write Property: Indicate if a model can be transformable in the viewer.
FBPropertyColor Color
Read Write Property: Color of skeleton node.
Culling with Counter Clock Wise.
FBModelList * FBCreateModelList()
Create a FBModelList object.
FBPropertyVector3d TranslationMin
Read Write Property: Translation Limit Min.
FBPropertyBool Loop
Read Write Property: Loop.
FBDeformerType
Determine the deformer type.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
class FBPropertyBaseComponent< FBAnimationNode * > FBPropertyAnimationNode
class FBPropertyBaseEnum< enum FBClusterMode > FBPropertyClusterMode
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Toggle the current selection with the unselected components.
FBPropertyVector3d RotationMax
Read Write Property: Max Rotation Limit (considered if RotationActive is true)
Weighting interface for meshes.
FBPropertyBool PointCacheDeformable
Read Write Property: Model point cache deformable.
FBPropertyModel LookAt
Read Write Property: Look at model (interest point).
class FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
class FBVector2< double > FBVector2d
2D vector.
FBGeometryArrayID
ID to use when requesting a specific array of data for a model.
Replaces the current selection by the new selected components.
FBPropertyListShader Shaders
List: Shaders for model.
class FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
FBModelEvaluationTaskType
class FBPropertyBaseEnum< enum FBDeformerType > FBPropertyDeformerType
Four x Four (double) Matrix.
FBPropertyBool TranslationMinY
Read Write Property: Is model using Translation Limits on Min Y.
void FBModelTransactionEnd()
FBModelTransactionEnd.
FBPropertyBool RotationMinY
Read Write Property: Is model using Minimum Rotation Limits On Y?
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
Creates custom cameras and manages system cameras.
FBPropertyDouble PlaySpeed
Read Write Property: Play Speed.
class FBPropertyBaseEnum< enum FBMarkerResolutionLevel > FBPropertyMarkerResolutionLevel
FBPropertyBool TranslationMaxX
Read Write Property: Is model using Translation Limits on Max X.
#define ICallback_Declare(IsPure)
Forwarding.
Remove all components from the current selection.
FBPropertyListTexture Textures
List: Textures with Special UseType (Other than "Color" which should connect to materials).
FBPropertyTime StopTime
Read Write Property: Stop Time.
FBPropertyModelShadingMode ShadingMode
Read Write Property: Shading mode for the model.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
class FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
Remove the selected components from the current selection.
FBPropertyModelVertexData ModelVertexData
Read Only Property: ModelVertexData for the model.
AnimationNodeNotify evaluation information.
FBPropertyVector3d PostRotation
Read Write Property: Post Rotation (considered if RotationActive is true)
FBPropertyBool PrimaryVisibility
Read Write Property: Control the geometry render state.
FBPropertyBool TranslationMinZ
Read Write Property: Is model using Translation Limits on Min Z.
FBModel * FBLoadFbxPrimitivesModel(const char *pModelName)
Load a model.
Contains definitions for devices, boxes and models.
FBSelectionAction
Selection mode when selecting component.
FBModelTransformationType
Types of transformation vector/matrices possible.
Transformation plus geometry offset.
FBPropertyBool ReceiveShadows
Read Write Property: If true, the geometry will receive shadows.
Property class: const char * (String).
virtual bool HasCustomDisplay()
Function to overload to handle custom display.
class FBVector4< float > FBNormal
Normal.
FBPropertyAnimatableVector3d Rotation
Read Write Property: Lcl rotation.
The balanced values will add up to 100 percent.
FBPropertyBool TranslationMaxZ
Read Write Property: Is model using Translation Limits on Max Z.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
FBPropertyListModel Children
Interface to IObject.
MotionBuilder SDK base class.
FBPropertyBool TranslationMinX
Read Write Property: Is model using Translation Limits on Min X.
FBPropertyString CacheFileName
Read Write Property: Filename of media.
FBPropertyMarkerLook Look
Read Write Property: Look of model marker.
FBPropertyGeometry Geometry
Read Write Property: Geometry for the model.
class FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
class FBPropertyBaseEnum< enum FBModelShadingMode > FBPropertyModelShadingMode
FBPropertyInt ChannelCount
Read Only Property: Channel Count.
class FBPropertyBaseComponent< FBCluster * > FBPropertyCluster
class FBPropertyBaseComponent< FBPointCacheFile * > FBPropertyPointCacheFile
class FBPropertyBaseEnum< enum FBMarkerType > FBPropertyMarkerType
void FBFindModelsOfType(FBModelList &pList, int pTypeInfo, FBModel *pParent=((void *) 0))
Find all models of a certain type in the scene.
FBPropertyTime StartTime
Read Write Property: Start Time.
FBPropertyBool RotationActive
Read Write Property: Is model using Rotation Limits?
void FBEndChangeAllModels()
Call end change to all models (should be first open).
const double FBMat2EulerDegenerateForPrecision10
class FBPropertyBaseComponent< FBGeometry * > FBPropertyGeometry
Model's transformation evaluation task (Global )
class FBPropertyBaseAnimatable< bool, kFBPT_bool > FBPropertyAnimatableBool
FBPropertyAnimatableBool type definition.
void FBModelTransactionBegin()
FBModelTransactionBegin.
void FBBeginChangeAllModels()
Call begin change to all models (need to be closed).
class FBPropertyBaseComponent< FBScene * > FBPropertyScene
FBPropertyModelRotationOrder RotationOrder
Read Write Property: Rotation order.
FBPropertyScene Scene
Read Only Property: Scene containing the model.
FBPropertyBool IsConstrained
Read Only Property: Is model constrained?
FBGeometryArrayElementType
Type of data when requesting an array.
FBPropertyMarkerResolutionLevel ResLevel
Read Write Property: Resolution level of model marker.
FBPropertyVector3d GeometricScaling
Read Write Property: Geometric scaling.
FBPropertyBool SkeletonDeformable
Read Write Property: Model skeleton deformable.
FBPropertyDouble Size
Read Write Property: Size (not related to scaling).
FBPropertyBool RotationMinZ
Read Write Property: Is model using Minimum Rotation Limits On Z?
class FBPropertyBaseEnum< enum FBModelRotationOrder > FBPropertyModelRotationOrder
PropertyList: Concrete class for PropertyList of component
FBPropertyBool Show
Read Write Property: Indicate if the viewer should show the object, according to its visibility value...
FBModelCullingMode
Model Culling Mode.
FBPropertyBool IsDeformable
Read Only Property: Is model deformable?
FBPropertyBool TranslationActive
Read Write Property: Is model using Translation Limits?
FBPropertyBool RotationMaxZ
Read Write Property: Is model using Maximum Rotation Limits On Z?
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyModel Parent
Read Write Property: Parent model.
FBPropertyListMaterial Materials
List: Materials for model.
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...
FBPropertyAnimatableBool Visibility
Read Write Property: Visibility of model.
FBPropertyBool RotationMaxY
Read Write Property: Is model using Maximum Rotation Limits On Y?
Base Model deformer class.
class FBVector3< double > FBVector3d
3D vector.
FBPropertyAnimatableVector3d Scaling
Read Write Property: Lcl scaling.
FBModelHiercharyTraverserType
Types of hierarchy traverser search type.
Inverse of transformation plus geometry offset.
class FBPropertyBaseComponent< FBModel * > FBPropertyModel
class FBPropertyBaseEnum< enum FBMarkerLook > FBPropertyMarkerLook
#define FBSDKNamespace
FBSDKNamespace define.
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.
FBPropertyBool PointCacheRecord
Read Write Property: Record Point Cache for model? Not Savable
FBPropertyBool Icon3D
Read Write Property: Is model a 3D icon?
FBPropertyBool CastsShadows
Read Write Property: If true, the geometry will produce shadows.
FBPropertyVector3d IKPivot
Read Write Property: marker Pivot Offset.
FBPropertyTime Offset
Read Write Property: Offset.
FBPropertyBool BlendShapeDeformable
Read Write Property: Model blend-shape deformable.
FBPropertyBool TranslationMaxY
Read Write Property: Is model using Translation Limits on Max Y.
FBPropertyClusterMode ClusterMode
Read Write Property: Cluster mode.
FBPropertyListDeformer Deformers
List: Deformers (Skeleton Deformer or Point Cache Deformer).
FBPropertyBool FreeRunning
Read Write Property: Free Running.
Lighted, shaded, textured shading.
class FBPropertyBaseComponent< FBMesh * > FBPropertyMesh
FBPropertyBool RotationSpaceForLimitOnly
Read Write Property: Apply Post Rotation Matrix only for Limits?
A box is a fundamental building block in the application architecture.
FBPropertyBool QuaternionInterpolate
Read Write Property: Use quaternion interpolation.
FBPropertyBool SoftSelected
Read Write Property: Is model Soft selected?
FBPropertyMesh TessellatedMesh
Read Only Property: Tessellated Mesh for the model.
FBPropertyVector3d TranslationMax
Read Write Property: Translation Limit Max.
FBModelRotationOrder
Ways to apply Rotation.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
FBPropertyBool DrawLink
Read Write Property: Whether to draw link to parent node or not.
Add the selected components to the current selection.
FBPropertyColor Color
Read Write Property: Color of model marker.
FBModelRenderPass
Model Render pass.
FBPropertyBool RotationMinX
Read Write Property: Is model using Minimum Rotation Limits On X?
FBPropertyVector3d PreRotation
Read Write Property: Pre Rotation (considered if RotationActive is true)
FBClusterMode
Different clustering modes.
FBPropertyBool VisibilityInheritance
Read Write Property: //!< when="" this="" value="" is="" set="" to="" true="" the="" visibility="" of="" this="" model="" is="" also="" />
FBPropertyVector3d RotationMin
Read Write Property: Min Rotation Limit (considered if RotationActive is true)
FBPropertyModel UpVector
Read Write Property: UpVector model.
FBModel * FBFindModelByUniqueColorId(const FBColor &pColor, int *pSubItemIndex=((void *) 0))
Find a model in the scene by its unique color id.
FBModelShadingMode
Modes for model shading.
PropertyList: ModelSkeleton.
FBModel * FBFindModelByLabelName(const char *pModelLabelName)
Find a model in the scene by its label name.
FBPropertyInt GeometryUpdateId
Read Only Property: model geometry (vertex data) related update id.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
class FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
Model's deformation task (for deformable model)
class FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
Declaration for the classes FBShaderManager, FBShader, FBPropertyListShader and other subclasses...
FBPropertyBool RotationMaxX
Read Write Property: Is model using Maximum Rotation Limits On X?
#define __FBClassDeclareGroup(Name, Parent)
For internal use only.
FBPropertyAnimationNode AnimationNode
Read Only Property: Animation node of the model.
FBPropertyBool ConstrainDeformable
Read Write Property: Model constraint deformable.
Box with a sphere on one end.
FBTextureMapping
Texture mapping modes.
Model's bouding box computation task (approximately for deformable model)
FBPropertyBool IKSync
Read Write Property: Must sync with IK if 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;.
FBMarkerResolutionLevel
Resolution of marker mesh sphere and capsule (Quality).
class FBPropertyBaseAnimatable< FBVector3d, kFBPT_Vector3D > FBPropertyAnimatableVector3d
FBPropertyAnimatableVector3D type definition.
FBPropertyDouble ClusterAccuracy
Read Write Property: Cluster accuracy.
Add all components to the current selection.
void FBDestroyModelList(FBModelList *pModelList)
Delete a FBModelList object.
FBPropertyMarkerType Type
Read Write Property: Type of model marker.
#define IQuery_Declare(IsPure)
class FBPropertyBaseComponent< FBModelVertexData * > FBPropertyModelVertexData
FBPropertyDouble Length
Read Write Property: Length for capsule (not related to scaling).
Normalize (values between 0.0 and 1.0 )
Contains routines for vector and matrix manipulation.
FBMarkerType
Type of the marker.
virtual void CustomModelDisplay(FBCamera *pCamera, FBModelShadingMode pShadingMode, FBModelRenderPass pRenderPass, float pPickingAreaWidth, float pPickingAreaHeight)
Custom display function, called when HasCustomDisplay returns true;.