00001 #ifndef FBXFILESDK_KFBXIO_KFBXSTREAMOPTIONSMOTION_H
00002 #define FBXFILESDK_KFBXIO_KFBXSTREAMOPTIONSMOTION_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
00039
00040
00041
00042 #define KFBXSTREAMOPT_MOTION_TRANSLATION "TRANSLATION"
00043 #define KFBXSTREAMOPT_MOTION_ROTATION "ROTATION"
00044 #define KFBXSTREAMOPT_MOTION_SCALING "SCALING"
00045 #define KFBXSTREAMOPT_MOTION_UNUSED_SEGMENTS "UNUSED SEGMENTS"
00046 #define KFBXSTREAMOPT_MOTION_AS_OPTICAL_SEGMENTS "AS OPTICAL SEGMENTS"
00047 #define KFBXSTREAMOPT_MOTION_EXACT_ZERO_AS_OCCLUDED "EXACT ZERO AS OCCLUDED"
00048 #define KFBXSTREAMOPT_MOTION_SET_OCCLUDED_TO_LAST_VALID_POSITION "SET OCCLUDED TO LAST VALID POSITION"
00049 #define KFBXSTREAMOPT_MOTION_ACTOR_PREFIX "ACTOR PREFIX"
00050 #define KFBXSTREAMOPT_MOTION_CREATE_REFERENCE_NODE "CREATE REFERENCE NODE"
00051 #define KFBXSTREAMOPT_MOTION_DUMMY_NODES "DUMMY NODES"
00052 #define KFBXSTREAMOPT_MOTION_LIMITS "LIMITS"
00053 #define KFBXSTREAMOPT_MOTION_RENAME_DUPLICATE_NAMES "RENAME DUPLICATE NAMES"
00054 #define KFBXSTREAMOPT_MOTION_BASE_T_IN_OFFSET "BASE T IN OFFSET"
00055 #define KFBXSTREAMOPT_MOTION_BASE_R_IN_PREROTATION "BASE R IN PREROTATION"
00056 #define KFBXSTREAMOPT_MOTION_START "START"
00057 #define KFBXSTREAMOPT_MOTION_FRAME_RATE "FRAME RATE"
00058 #define KFBXSTREAMOPT_MOTION_ASF_SCENE_OWNED "ASF SCENE OWNED"
00059 #define KFBXSTREAMOPT_MOTION_GAPS_AS_VALID_DATA "GAPS AS VALID DATA"
00060 #define KFBXSTREAMOPT_MOTION_C3D_REAL_FORMAT "C3D REAL FORMAT"
00061 #define KFBXSTREAMOPT_MOTION_FROM_GLOBAL_POSITION "FROM GLOBAL POSITION"
00062 #define KFBXSTREAMOPT_MOTION_REQUIRE_SINGLE_ROOT_NODE "REQUIRE SINGLE ROOT NODE"
00063 #define KFBXSTREAMOPT_MOTION_FRAME_RATE_USED "FRAME RATE USED"
00064 #define KFBXSTREAMOPT_MOTION_FRAME_RANGE "FRAME RANGE"
00065 #define KFBXSTREAMOPT_MOTION_FRAME_COUNT "FRAME COUNT"
00066 #define KFBXSTREAMOPT_MOTION_TAKE_NAME "TAKE NAME"
00067
00068
00069
00070 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h>
00071 #include <fbxfilesdk/kfbxio/kfbxstreamoptions.h>
00072
00073 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00074
00075 class KFBX_DLL KFbxAsfSceneInterface
00076 {
00077 public:
00078 virtual void Destroy() = 0;
00079
00080 protected:
00081 virtual ~KFbxAsfSceneInterface() {}
00082 };
00083
00088 class KFBX_DLL KFbxStreamOptionsMotionReader : public KFbxStreamOptions
00089 {
00090 KFBXOBJECT_DECLARE(KFbxStreamOptionsMotionReader,KFbxStreamOptions);
00091 public:
00092
00095 void Reset();
00096
00101 void SetTimeMode(KTime::ETimeMode pTimeMode, double pCustomFrameRate = 0.0);
00102
00106 inline KTime::ETimeMode GetTimeMode(){return mTimeMode;}
00107
00111 inline KTime GetStart() {return (KFbxGet <KTime> (this->GetOption(KFBXSTREAMOPT_MOTION_START)));}
00112
00116 inline int GetFrameCount() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT)));}
00117
00121 inline double GetFrameRate() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_RATE)));}
00122
00126 inline void SetStart(KTime pStartTime) {this->GetOption(KFBXSTREAMOPT_MOTION_START).Set(pStartTime);}
00127
00131 inline void SetFrameCount(int pFrameCount){this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT).Set(pFrameCount);}
00132
00136 KTime GetFramePeriod();
00137
00138
00139 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00140
00141 public:
00142 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00143
00148 void SetASFScene(KFbxAsfSceneInterface *pASFScene, bool pASFSceneOwned = false);
00149
00153 inline KFbxAsfSceneInterface* GetASFScene(){return mASFScene;}
00154
00155 protected:
00156 KFbxStreamOptionsMotionReader(KFbxSdkManager& pManager, char const* pName);
00157 virtual ~KFbxStreamOptionsMotionReader();
00158 virtual void Construct(const KFbxStreamOptionsMotionReader* pFrom);
00159 virtual bool ConstructProperties( bool pForceSet );
00160 virtual void Destruct(bool pRecursive, bool pDependents);
00161
00162
00163 private:
00164 KFbxAsfSceneInterface* mASFScene;
00165 KTime::ETimeMode mTimeMode;
00166
00167 #endif // DOXYGEN_SHOULD_SKIP_THIS
00168 };
00169
00170
00171
00172
00177 class KFBX_DLL KFbxStreamOptionsMotionWriter : public KFbxStreamOptions
00178 {
00179 KFBXOBJECT_DECLARE(KFbxStreamOptionsMotionWriter,KFbxStreamOptions);
00180 public:
00181
00184 void Reset();
00185
00186
00191 void SetTimeMode(KTime::ETimeMode pTimeMode, double pCustomFrameRate = 0.0);
00192
00196 KTime::ETimeMode GetTimeMode(){return mTimeMode;}
00197
00201 KTime GetStart() {return (KFbxGet <KTime> (this->GetOption(KFBXSTREAMOPT_MOTION_START)));}
00202
00206 int GetFrameCount() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT)));}
00207
00211 double GetFrameRate() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_RATE)));}
00212
00216 void SetStart(KTime pStartTime) {this->GetOption(KFBXSTREAMOPT_MOTION_START).Set(pStartTime);}
00217
00221 void SetFrameCount(int pFrameCount){this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT).Set(pFrameCount);}
00222
00226 KTime GetFramePeriod();
00227
00228
00229 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00230 public:
00231 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00232
00237 void SetASFScene(KFbxAsfSceneInterface *pASFScene, bool pASFSceneOwned = false);
00238
00242 inline KFbxAsfSceneInterface *GetASFScene(){return mASFScene;}
00243
00244 protected:
00245 KFbxStreamOptionsMotionWriter(KFbxSdkManager& pManager, char const* pName);
00246 virtual ~KFbxStreamOptionsMotionWriter();
00247 virtual void Construct(const KFbxStreamOptionsMotionWriter* pFrom);
00248 virtual bool ConstructProperties( bool pForceSet );
00249 virtual void Destruct(bool pRecursive, bool pDependents);
00250
00251 private:
00252 KFbxAsfSceneInterface *mASFScene;
00253 KTime::ETimeMode mTimeMode;
00254
00255 #endif // DOXYGEN_SHOULD_SKIP_THIS
00256 };
00257
00258
00259 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00260
00261 #endif // FBXFILESDK_KFBXIO_KFBXSTREAMOPTIONSMOTION_H
00262