00001 #ifndef __FBMODEL_H__
00002 #define __FBMODEL_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00043 #include <kaydaradef.h>
00044 #ifndef FBSDK_DLL
00045
00048 #define FBSDK_DLL K_DLLIMPORT
00049 #endif
00050
00051 #include <fbsdk/fbcore.h>
00052 #include <fbsdk/fbcomponent.h>
00053 #include <fbsdk/fbshader.h>
00054 #include <fbsdk/fbtexture.h>
00055 #include <fbsdk/fbgeometry.h>
00056 #include <fbsdk/fbmaterial.h>
00057 #include <fbsdk/fbtexture.h>
00058
00059 #ifdef FBSDKUseNamespace
00060 namespace FBSDKNamespace {
00061 #endif
00062
00066 #define FBStorableCustomModelImplementation(ClassName, Desc)\
00067 const char* ClassName::FbxGetObjectSubType(){ return #ClassName; }\
00068 HIObject RegisterStorable##ClassName##Create(HIObject , const char* pName, void* ){\
00069 ClassName* Class = new ClassName(pName);\
00070 Class->mAllocated = true;\
00071 if( Class->FBCreate() ){\
00072 __FBRemoveModelFromScene( Class->GetHIObject() ); \
00073 return Class->GetHIObject();\
00074 } else {\
00075 delete Class;\
00076 return NULL;}}\
00077 FBLibraryModule(ClassName##Storable){\
00078 FBString lGroup = "FbxStorable/Model";\
00079 FBRegisterObject(ClassName##R2, lGroup, #ClassName, Desc, RegisterStorable##ClassName##Create, true, NULL);\
00080 FBSetStoreableCustomModelRegistered();}\
00081
00082
00083 typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
00084
00085 FB_DEFINE_COMPONENT( FBSDK_DLL, Model );
00086 FB_DEFINE_COMPONENT( FBSDK_DLL, Cluster );
00087 FB_DEFINE_COMPONENT( FBSDK_DLL, ModelVertexData );
00088 FB_DEFINE_COMPONENT( FBSDK_DLL, PointCacheFile );
00089
00093 FBSDK_DLL void FBModelTransactionBegin();
00094
00098 FBSDK_DLL void FBModelTransactionEnd();
00099
00101
00103 __FB_FORWARD( FBModel );
00104 __FB_FORWARD( FBPropertyListModel );
00105 FB_DEFINE_LIST( FBSDK_DLL, Model );
00106
00108 class FBSDK_DLL FBPropertyListModel : public FBPropertyListComponentBase
00109 {
00110 public:
00115 int Add ( FBModel* pItem );
00116
00121 int Remove ( FBModel* pItem );
00122
00126 virtual void RemoveAt( int pIndex );
00127
00132 FBModel* operator[](int pIndex);
00133
00137 virtual int GetCount();
00138 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00139 inline virtual FBComponent* GetAt(int pIndex) { return (FBComponent*)operator[](pIndex); }
00140 private:
00141 inline virtual int Add ( FBComponent* pItem ) { return Add((FBModel*)pItem); }
00142 inline virtual int Remove ( FBComponent* pItem ) { return Remove((FBModel*)pItem); }
00143 #endif
00144 };
00145
00147
00150 __FB_FORWARD( FBDeformer );
00151
00152 class FBSDK_DLL FBPropertyListDeformer : public FBPropertyListComponent
00153 {
00154 public:
00155 FBPropertyListDeformer();
00162 virtual int Add( FBDeformer* pItem );
00167 FBDeformer* operator[](int pIndex);
00168
00169 private:
00170 inline virtual int Add ( FBComponent* pItem ) { return Add((FBDeformer*)pItem); }
00171 };
00172
00174
00176 __FB_FORWARD( FBModel );
00177
00179 enum FBModelTransformationType {
00180 kModelTransformation,
00181 kModelRotation,
00182 kModelTranslation,
00183 kModelScaling,
00184 kModelTransformation_Geometry,
00185 kModelInverse_Transformation,
00186 kModelInverse_Rotation,
00187 kModelInverse_Translation,
00188 kModelInverse_Scaling,
00189 kModelInverse_Transformation_Geometry
00190 };
00191
00193 enum FBModelShadingMode {
00194 kFBModelShadingDefault,
00195 kFBModelShadingWire,
00196 kFBModelShadingFlat,
00197 kFBModelShadingLight,
00198 kFBModelShadingHard,
00199 kFBModelShadingTexture,
00200 kFBModelShadingAll,
00201 };
00202
00204 enum FBModelRenderPass {
00205 kFBModelRenderPassStandard,
00206 kFBModelRenderPassPick,
00207 };
00208
00210 enum FBModelRotationOrder {
00211 kFBEulerXYZ = 0,
00212 kFBEulerXZY,
00213 kFBEulerYZX,
00214 kFBEulerYXZ,
00215 kFBEulerZXY,
00216 kFBEulerZYX,
00217 kFBSphericXYZ
00218 };
00219
00221 enum FBModelCullingMode {
00222 kFBCullingOff,
00223 kFBCullingOnCCW,
00224 kFBCullingOnCW
00225 };
00226
00227 enum FBModelEvaluationTaskType {
00228 kFBModelEvaluationTranform,
00229 kFBModelEvaluationBBox,
00230 kFBModelEvaluationDeform
00231 };
00232
00233 FB_DEFINE_ENUM( FBSDK_DLL, ModelShadingMode );
00234 FB_DEFINE_ENUM( FBSDK_DLL, ModelTransformationType);
00235 FB_DEFINE_ENUM( FBSDK_DLL, ModelRotationOrder );
00236
00237 FB_FORWARD( FBCamera );
00238
00269 class FBSDK_DLL FBModel : public FBBox
00270 {
00271 __FBClassDeclareGroup( FBModel,FBBox );
00272 public:
00277 FBModel(const char* pName, HIObject pObject=NULL);
00278 virtual void FBDelete();
00279
00280 IQuery_Declare (K_IMPLEMENTATION);
00281 ICallback_Declare (K_IMPLEMENTATION);
00282
00283 FBPropertyListModel Children;
00284
00285 FBPropertyListShader Shaders;
00286 FBPropertyListMaterial Materials;
00287 FBPropertyListTexture Textures;
00288 FBPropertyListDeformer Deformers;
00289 FBPropertyBool Icon3D;
00290 FBPropertyBool SoftSelected;
00291 FBPropertyBool IsDeformable;
00292 FBPropertyBool IsConstrained;
00293 FBPropertyBool SkeletonDeformable;
00294 FBPropertyBool BlendShapeDeformable;
00295 FBPropertyBool ConstrainDeformable;
00296 FBPropertyBool PointCacheDeformable;
00297 FBPropertyBool PointCacheRecord;
00298 FBPropertyModel Parent;
00299 FBPropertyModel LookAt;
00300 FBPropertyModel UpVector;
00301 FBPropertyGeometry Geometry;
00302 FBPropertyInt GeometryUpdateId;
00303 FBPropertyMesh TessellatedMesh;
00304 FBPropertyModelVertexData ModelVertexData;
00305 FBPropertyCluster Cluster;
00306 FBPropertyScene Scene;
00307 FBPropertyModelShadingMode ShadingMode;
00308 FBPropertyAnimationNode AnimationNode;
00309
00310 FBPropertyModelRotationOrder RotationOrder;
00311
00312
00313 FBPropertyBool RotationSpaceForLimitOnly;
00314 FBPropertyBool RotationActive;
00315 FBPropertyVector3d PreRotation;
00316 FBPropertyVector3d PostRotation;
00317 FBPropertyVector3d RotationMin;
00318 FBPropertyVector3d RotationMax;
00319 FBPropertyBool RotationMinX;
00320 FBPropertyBool RotationMinY;
00321 FBPropertyBool RotationMinZ;
00322 FBPropertyBool RotationMaxX;
00323 FBPropertyBool RotationMaxY;
00324 FBPropertyBool RotationMaxZ;
00325
00326 FBPropertyBool TranslationActive;
00327 FBPropertyVector3d TranslationMin;
00328 FBPropertyVector3d TranslationMax;
00329 FBPropertyBool TranslationMinX;
00330 FBPropertyBool TranslationMinY;
00331 FBPropertyBool TranslationMinZ;
00332 FBPropertyBool TranslationMaxX;
00333 FBPropertyBool TranslationMaxY;
00334 FBPropertyBool TranslationMaxZ;
00335
00336
00337 FBPropertyAnimatableBool Visibility;
00338 FBPropertyBool VisibilityInheritance;
00339 FBPropertyAnimatableVector3d Translation;
00340 FBPropertyAnimatableVector3d Rotation;
00341 FBPropertyAnimatableVector3d Scaling;
00342
00343 FBPropertyVector3d GeometricTranslation;
00344 FBPropertyVector3d GeometricRotation;
00345 FBPropertyVector3d GeometricScaling;
00346
00347 FBPropertyBool QuaternionInterpolate;
00348
00349 FBPropertyBool Show;
00350 FBPropertyBool Pickable;
00351 FBPropertyBool Transformable;
00352 FBPropertyColor UniqueColorId;
00353
00354 FBPropertyBool PrimaryVisibility;
00355 FBPropertyBool CastsShadows;
00356 FBPropertyBool ReceiveShadows;
00357
00362 virtual FBModel* Clone();
00363
00371 void SetMatrix(FBMatrix pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, bool pPushUndo = false, FBEvaluateInfo* pEvaluateInfo=NULL);
00372
00379 void GetMatrix(FBMatrix &pMatrix, FBModelTransformationType pWhat=kModelTransformation, bool pGlobalInfo=true, FBEvaluateInfo* pEvaluateInfo=NULL);
00380
00388 void SetVector(FBVector3d pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, bool pPushUndo = false, FBEvaluateInfo* pEvaluateInfo=NULL);
00389
00396 void GetVector(FBVector3d &pVector, FBModelTransformationType pWhat=kModelTranslation, bool pGlobalInfo=true, FBEvaluateInfo* pEvaluateInfo=NULL);
00397
00403 bool IsEvaluationReady(FBModelEvaluationTaskType pWhat, FBEvaluateInfo* pEvaluateInfo=NULL) const;
00404
00409 void MatrixToRotation(FBRVector &pRotation, const FBMatrix &pMatrix);
00410
00415 void RotationToMatrix( FBMatrix &pMatrix, const FBRVector &pRotation);
00416
00423 void LRMToDof(FBRVector &pDof, const FBMatrix &pLM);
00424
00431 void DofToLRM(FBMatrix &pLM, const FBRVector &pDof);
00432
00437 void SetSchematicPosition(int pX,int pY);
00438
00442 void SetSchematicPosition(FBVector2d pVector2d);
00443
00447 FBVector2d GetSchematicPosition();
00448
00454 void GetBoundingBox( FBVector3d& pMin, FBVector3d& pMax );
00455
00466 bool IsVisible(FBEvaluateInfo* pEvaluateInfo = NULL);
00467
00471 FBModelCullingMode GetCullingMode() const;
00472
00476 void SetCullingMode(FBModelCullingMode pCullingMode);
00477
00482 void ForceAlwaysEvaluate();
00483
00486 bool IsForceAlwaysEvaluate();
00487
00491 int NoFrustumCullingRequire();
00492
00496 int NoFrustumCullingRelease();
00497
00501 bool UseFrustumCulling();
00502
00506 virtual bool HasCustomDisplay() { return false; }
00507
00515 virtual void CustomModelDisplay( FBCamera* pCamera, FBModelShadingMode pShadingMode, FBModelRenderPass pRenderPass, float pPickingAreaWidth, float pPickingAreaHeight) {}
00516
00530 virtual bool CustomModelPicking( int pNbHits, unsigned int *pSelectBuffer, FBCamera* pCamera,
00531 int pMouseX,int pMouseY,
00532 FBTVector* pLocalRaySrc, FBTVector* pLocalRayDir,
00533 FBTVector* pWorldRaySrc, FBTVector* pWorldRayDir,
00534 FBMatrix* pGlobalInverseMatrix,
00535 FBTVector* pOutPickedPoint) { return false; }
00536
00545 virtual bool ClosestRayIntersection(const FBTVector& pRayOrigin, const FBTVector& pRayEnd, FBTVector& pIntersectPos, FBNormal& pIntersectNormal);
00546
00550 unsigned char* GetSelectedPoints();
00551
00555 int GetSelectedPointsCount();
00556
00571 bool SetAdditionalUniqueColorIDCount(unsigned int pCount);
00572
00576 unsigned int GetAdditionalUniqueColorIDCount() const;
00577
00582 FBColor GetAdditionalUniqueColorID(unsigned int pIndex) const;
00583
00584
00585
00586
00587
00592 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00593 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00594
00602 void SetupPropertiesForShapes();
00603
00606 virtual const char* FbxGetObjectType() override;
00607
00610 virtual const char* FbxGetObjectSubType() override;
00611
00612 };
00613
00615
00617 __FB_FORWARD( FBModelNull);
00618
00620 class FBSDK_DLL FBModelNull : public FBModel {
00621 __FBClassDeclare( FBModelNull,FBModel );
00622 public:
00627 FBModelNull(const char* pName, HIObject pObject=NULL);
00628
00629 FBPropertyDouble Size;
00630
00635 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00636 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00637
00640 virtual const char* FbxGetObjectType() override;
00641
00644 virtual const char* FbxGetObjectSubType() override;
00645 };
00646
00648
00650 __FB_FORWARD( FBModelRoot);
00651
00653 class FBSDK_DLL FBModelRoot : public FBModel {
00654 __FBClassDeclare( FBModelRoot,FBModel );
00655 public:
00660 FBModelRoot(const char* pName, HIObject pObject=NULL);
00661
00662 FBPropertyDouble Size;
00663 };
00664
00666
00668 __FB_FORWARD( FBModelMarker);
00669
00671 enum FBMarkerResolutionLevel
00672 {
00673 kFBMarkerLowResolution,
00674 kFBMarkerMediumResolution,
00675 kFBMarkerHighResolution
00676 };
00677
00679 enum FBMarkerLook
00680 {
00681 kFBMarkerLookCube,
00682 kFBMarkerLookHardCross,
00683 kFBMarkerLookLightCross,
00684 kFBMarkerLookSphere,
00685 kFBMarkerLookCapsule,
00686 kFBMarkerLookSquare,
00687 kFBMarkerLookCircle,
00688 kFBMarkerLookBone,
00689 kFBMarkerLookStick,
00690 kFBMarkerLookBox,
00691 kFBMarkerLookNone,
00692 kFBMarkerLookRigidGoal,
00693 kFBMarkerLookRotationGoal,
00694 kFBMarkerLookAimRollGoal,
00695 };
00696
00698 enum FBMarkerType
00699 {
00700 kFBMarkerTypeStandard,
00701 kFBMarkerTypeOptical,
00702 kFBMarkerTypeFKEffector,
00703 kFBMarkerTypeIKEffector
00704 };
00705
00706 FB_DEFINE_ENUM( FBSDK_DLL, MarkerResolutionLevel );
00707 FB_DEFINE_ENUM( FBSDK_DLL, MarkerLook );
00708 FB_DEFINE_ENUM( FBSDK_DLL, MarkerType );
00709
00711 class FBSDK_DLL FBModelMarker : public FBModel {
00712 __FBClassDeclare( FBModelMarker,FBModel );
00713 public:
00718 FBModelMarker(const char* pName, HIObject pObject=NULL);
00719
00720 FBPropertyDouble Size;
00721 FBPropertyDouble Length;
00722 FBPropertyMarkerResolutionLevel ResLevel;
00723 FBPropertyMarkerLook Look;
00724 FBPropertyMarkerType Type;
00725 FBPropertyColor Color;
00726 FBPropertyVector3d IKPivot;
00727 FBPropertyBool IKSync;
00728
00732 void SetFKOpacity(double pValue);
00733
00738 virtual bool FbxStore(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00739 virtual bool FbxRetrieve(FBFbxObject* pFbxObject, kFbxObjectStore pStoreWhat);
00740
00743 virtual const char* FbxGetObjectType() override;
00744
00747 virtual const char* FbxGetObjectSubType() override;
00748 };
00749
00750
00752
00754 __FB_FORWARD( FBModelSkeleton);
00755
00757 class FBSDK_DLL FBModelSkeleton : public FBModel {
00758 __FBClassDeclare( FBModelSkeleton,FBModel );
00759 public:
00764 FBModelSkeleton(const char* pName, HIObject pObject=NULL);
00765
00766 FBPropertyDouble Size;
00767 FBPropertyColor Color;
00768 FBPropertyBool DrawLink;
00769
00774 void GetSkinModelList(FBModelList& pSkinModelList);
00775 };
00776
00777
00779
00781 FB_DEFINE_LIST( FBSDK_DLL, ModelSkeleton );
00782 FB_FORWARD( FBPropertyListModelSkeleton );
00783
00785 class FBSDK_DLL FBPropertyListModelSkeleton : public FBPropertyListComponent
00786 {
00787 public:
00788 FBPropertyListModelSkeleton();
00793 FBModelSkeleton* operator[](int pIndex);
00794 };
00795
00796
00798
00800 __FB_FORWARD( FBModelCube );
00801
00803 class FBSDK_DLL FBModelCube : public FBModel {
00804 __FBClassDeclare( FBModelCube, FBModel );
00805 public:
00810 FBModelCube(const char* pName, HIObject pObject=NULL);
00811 };
00812
00814
00816 __FB_FORWARD( FBModelPlane );
00817
00819 class FBSDK_DLL FBModelPlane : public FBModel {
00820 __FBClassDeclare( FBModelPlane, FBModel );
00821 public:
00826 FBModelPlane(const char* pName, HIObject pObject=NULL);
00827 };
00828
00829
00831
00834 enum FBClusterMode {
00835 kFBClusterNormalize,
00836 kFBClusterAdditive,
00837 kFBClusterTotal100
00838 };
00839 FB_DEFINE_ENUM( FBSDK_DLL, ClusterMode );
00840
00841 __FB_FORWARD( FBCluster );
00842
00846 class FBSDK_DLL FBCluster : public FBComponent {
00847 __FBClassDeclare( FBCluster,FBComponent );
00848
00849 protected:
00853 FBCluster(FBModel* pModel);
00854 friend class DataFBModel;
00855
00856 public:
00857
00858
00863 int ClusterBegin(int pIndex = -1);
00864
00868 int ClusterEnd();
00869
00870
00875 void LinkSetName(const char *pName, int pLinkNumber);
00880 const char* LinkGetName(int pLinkNumber);
00884 void LinkRemove(int pLinkNumber);
00888 int LinkGetCount();
00892 void LinkSetModel(FBModel* pModel);
00897 FBModel* LinkGetModel(int pLinkNumber);
00902 FBModel* LinkGetAssociateModel(int pLinkNumber);
00906 void LinkClearUnused( double pThreshold = -1.0 );
00911 void LinkSetCurrentVertex(int pLinkIndex,int pPointIndex);
00916 int LinkGetVertexIndex(int pIndex);
00917
00918
00924 void VertexSetTransform(FBVector3d pPosition,FBVector3d pRotation, FBVector3d pScaling);
00930 void VertexGetTransform(FBVector3d& pPosition,FBVector3d& pRotation, FBVector3d& pScaling);
00935 void VertexAdd(int pVertexIndex,double pWeight);
00939 void VertexRemove(int pVertexIndex);
00943 int VertexGetCount();
00948 int VertexGetNumber(int pIndex);
00953 double VertexGetWeight(int pIndex);
00958 void VertexSetWeight(double pWeight,int pIndex);
00961 void VertexClear();
00962
00963 FBPropertyClusterMode ClusterMode;
00964 FBPropertyDouble ClusterAccuracy;
00965 };
00966
00968
00970 __FB_FORWARD( FBModelVertexData );
00971
00972 class FBSDK_DLL FBModelVertexData : public FBComponent {
00973 __FBClassDeclare( FBModelVertexData,FBComponent );
00974
00975 protected:
00976 FBModelVertexData(FBModel* pModel);
00977 friend class DataFBModel;
00978
00979 public:
00980
00982 bool IsDeformable();
00983
00988 bool IsDrawable();
00989
00991 int GetVertexCount();
00992
00997
00999 int GetSubPatchCount();
01000
01002 int GetSubPatchMaterialId(int pSubPatchIndex);
01003
01005 FBMaterial* GetSubPatchMaterial(int pSubPatchIndex);
01006
01013 FBGeometryPrimitiveType GetSubPatchPrimitiveType(int pSubPatchIndex, bool* pIsOptimized = NULL);
01014
01016 int GetSubPatchIndexOffset(int pSubPatchIndex);
01017
01019 int GetSubPatchIndexSize(int pSubPatchIndex);
01020
01025 void DrawSubPatch(int pSubPatchIndex, bool pWireFrame = false);
01026
01028
01034
01036 int GetSubRegionCount();
01037
01041 FBMaterial* GetSubRegionMaterial(int pSubRegionIndex);
01042
01047 void DrawSubRegion(int pSubRegionIndex, bool pWireFrame = false);
01048
01050
01056 void PushZDepthClipOverride();
01057
01062 void PopZDepthClipOverride();
01063
01070 void EnableOGLVertexData(bool pAfterdeform = true);
01071
01073 void DisableOGLVertexData();
01074
01080 void VertexArrayMappingRequest();
01081
01086 void VertexArrayMappingRelease();
01087
01097 const int* GetVertexArrayDuplicationMap(unsigned int& pDuplicatedVertexCound);
01098
01100 int* GetIndexArray();
01101
01103 unsigned int GetIndexArrayVBOId();
01104
01111 FBGeometryArrayElementType GetVertexArrayType(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
01112
01119 void* GetVertexArray(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
01120
01127 unsigned int GetVertexArrayVBOId(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
01128
01135 void* GetVertexArrayVBOOffset(FBGeometryArrayID pArrayId, bool pAfterDeform = true);
01136
01138
01145 void EnableOGLUVSet(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
01146
01148 void DisableOGLUVSet();
01149
01155 FBGeometryArrayElementType GetUVSetArrayFormat(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
01156
01162 void* GetUVSetArray(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
01163
01169 unsigned int GetUVSetVBOId(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
01170
01176 void* GetUVSetVBOOffset(FBTextureMapping pTextureMapping = kFBTextureMappingUV, const char* pUVSet = NULL);
01177
01179 };
01180
01182
01184
01195 enum FBDeformerType
01196 {
01197 kFBDeformerUnkown,
01198 kFBDeformerSkeleton,
01199 kFBDeformerPointCache
01200 };
01201
01202 FB_DEFINE_ENUM( FBSDK_DLL, DeformerType );
01203
01204 __FB_FORWARD( FBDeformer );
01205
01207 class FBSDK_DLL FBDeformer : public FBComponent {
01208 __FBClassDeclare( FBDeformer,FBComponent );
01209
01210 public:
01215 FBDeformer(const char* pName, HIObject pObject=NULL);
01216
01217 FBPropertyDeformerType DeformerType;
01218 };
01219
01221
01223 __FB_FORWARD( FBDeformerPointCache );
01224
01226 class FBSDK_DLL FBDeformerPointCache : public FBDeformer {
01227 __FBClassDeclare( FBDeformerPointCache,FBDeformer );
01228
01229 public:
01234 FBDeformerPointCache(const char* pName, HIObject pObject=NULL);
01235
01236 FBPropertyPointCacheFile PointCacheFile;
01237
01238 FBPropertyBool Active;
01239
01240 FBPropertyInt ChannelIndex;
01241 FBPropertyString ChannelName;
01242
01243 FBPropertyInt ChannelCount;
01244 FBPropertyTime ChannelStart;
01245 FBPropertyTime ChannelEnd;
01246 FBPropertyBool ChannelSampleRegular;
01247 FBPropertyDouble ChannelFrameRate;
01248 FBPropertyInt ChannelPointCount;
01249 };
01250
01252
01254 __FB_FORWARD( FBPointCacheFile );
01255
01257 class FBSDK_DLL FBPointCacheFile : public FBComponent {
01258 __FBClassDeclare( FBPointCacheFile,FBComponent );
01259
01260 public:
01265 FBPointCacheFile(const char* pName, HIObject pObject=NULL);
01266
01267 FBPropertyString CacheFileName;
01268 FBPropertyInt ChannelCount;
01269
01270 FBPropertyTime StartTime;
01271 FBPropertyTime StopTime;
01272 FBPropertyDouble PlaySpeed;
01273 FBPropertyTime Offset;
01274 FBPropertyBool FreeRunning;
01275 FBPropertyBool Loop;
01276 };
01277
01278 #ifdef FBSDKUseNamespace
01279 }
01280 #endif
01281 #endif