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 void Construct(const KFbxStreamOptionsMotionReader* pFrom);
00158 virtual bool ConstructProperties( bool pForceSet );
00159 private:
00160 KFbxAsfSceneInterface* mASFScene;
00161 KTime::ETimeMode mTimeMode;
00162
00163 #endif // DOXYGEN_SHOULD_SKIP_THIS
00164 };
00165
00166
00167
00168
00173 class KFBX_DLL KFbxStreamOptionsMotionWriter : public KFbxStreamOptions
00174 {
00175 KFBXOBJECT_DECLARE(KFbxStreamOptionsMotionWriter,KFbxStreamOptions);
00176 public:
00177
00180 void Reset();
00181
00182
00187 void SetTimeMode(KTime::ETimeMode pTimeMode, double pCustomFrameRate = 0.0);
00188
00192 KTime::ETimeMode GetTimeMode(){return mTimeMode;}
00193
00197 KTime GetStart() {return (KFbxGet <KTime> (this->GetOption(KFBXSTREAMOPT_MOTION_START)));}
00198
00202 int GetFrameCount() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT)));}
00203
00207 double GetFrameRate() {return (KFbxGet <int> (this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_RATE)));}
00208
00212 void SetStart(KTime pStartTime) {this->GetOption(KFBXSTREAMOPT_MOTION_START).Set(pStartTime);}
00213
00217 void SetFrameCount(int pFrameCount){this->GetOption(KFBXSTREAMOPT_MOTION_FRAME_COUNT).Set(pFrameCount);}
00218
00222 KTime GetFramePeriod();
00223
00224
00225 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00226 public:
00227 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00228
00233 void SetASFScene(KFbxAsfSceneInterface *pASFScene, bool pASFSceneOwned = false);
00234
00238 inline KFbxAsfSceneInterface *GetASFScene(){return mASFScene;}
00239
00240 protected:
00241 KFbxStreamOptionsMotionWriter(KFbxSdkManager& pManager, char const* pName);
00242 virtual void Construct(const KFbxStreamOptionsMotionWriter* pFrom);
00243 virtual bool ConstructProperties( bool pForceSet );
00244
00245 private:
00246 KFbxAsfSceneInterface *mASFScene;
00247 KTime::ETimeMode mTimeMode;
00248
00249 #endif // DOXYGEN_SHOULD_SKIP_THIS
00250 };
00251
00252
00253 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00254
00255 #endif // FBXFILESDK_KFBXIO_KFBXSTREAMOPTIONSMOTION_H
00256