Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_FILEIO_GLOBAL_SETTINGS_H_
00014 #define _FBXSDK_FILEIO_GLOBAL_SETTINGS_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/fbxobject.h>
00019 #include <fbxsdk/core/base/fbxstatus.h>
00020 #include <fbxsdk/scene/fbxaxissystem.h>
00021
00022 #include <fbxsdk/fbxsdk_nsbegin.h>
00023
00027 class FBXSDK_DLL FbxGlobalSettings : public FbxObject
00028 {
00029 FBXSDK_OBJECT_DECLARE(FbxGlobalSettings, FbxObject);
00030
00031 public:
00036
00040 void SetAxisSystem(const FbxAxisSystem& pAxisSystem);
00041
00045 FbxAxisSystem GetAxisSystem();
00047
00051 void SetOriginalUpAxis(const FbxAxisSystem& pAxisSystem);
00052
00056 int GetOriginalUpAxis() const;
00058
00063
00067 void SetSystemUnit(const FbxSystemUnit& pOther);
00068
00072 FbxSystemUnit GetSystemUnit() const;
00073
00077 void SetOriginalSystemUnit(const FbxSystemUnit& pOther);
00078
00082 FbxSystemUnit GetOriginalSystemUnit() const;
00084
00085
00090
00095 void SetAmbientColor(FbxColor pAmbientColor);
00096
00100 FbxColor GetAmbientColor() const;
00101
00103
00115 bool SetDefaultCamera(const char* pCameraName);
00116
00120 FbxString GetDefaultCamera() const;
00122
00130 void SetTimeMode(FbxTime::EMode pTimeMode);
00131
00135 FbxTime::EMode GetTimeMode() const;
00136
00140 void SetTimeProtocol(FbxTime::EProtocol pTimeProtocol);
00141
00145 FbxTime::EProtocol GetTimeProtocol() const;
00146
00149 enum ESnapOnFrameMode
00150 {
00151 eNoSnap,
00152 eSnapOnFrame,
00153 ePlayOnFrame,
00154 eSnapAndPlayOnFrame
00155 };
00156
00160 void SetSnapOnFrameMode(ESnapOnFrameMode pSnapOnFrameMode);
00161
00165 ESnapOnFrameMode GetSnapOnFrameMode() const;
00166
00170 void SetTimelineDefaultTimeSpan(const FbxTimeSpan& pTimeSpan);
00171
00175 void GetTimelineDefaultTimeSpan(FbxTimeSpan& pTimeSpan) const;
00176
00180 void SetCustomFrameRate(double pCustomFrameRate);
00181
00185 double GetCustomFrameRate() const;
00187
00192 struct FBXSDK_DLL TimeMarker
00193 {
00195 TimeMarker();
00196
00200 TimeMarker(const TimeMarker& pTimeMarker);
00201
00205 TimeMarker& operator=(const TimeMarker& pTimeMarker);
00206
00208 FbxString mName;
00209
00211 FbxTime mTime;
00212
00214 bool mLoop;
00215 };
00216
00220 int GetTimeMarkerCount() const;
00221
00227 TimeMarker GetTimeMarker(int pIndex, FbxStatus* pStatus=NULL) const;
00228
00233 void AddTimeMarker(const TimeMarker& pTimeMarker, FbxStatus* pStatus=NULL);
00234
00240 void ReplaceTimeMarker(int pIndex, const TimeMarker& pTimeMarker, FbxStatus* pStatus=NULL);
00241
00243 void RemoveAllTimeMarkers();
00244
00250 bool SetCurrentTimeMarker(int pIndex, FbxStatus* pStatus=NULL);
00251
00255 int GetCurrentTimeMarker() const;
00257
00258
00259
00260
00261 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00262 virtual FbxObject& Copy(const FbxObject& pObject);
00263
00264 protected:
00265 FbxPropertyT<FbxInt> UpAxis;
00266 FbxPropertyT<FbxInt> UpAxisSign;
00267
00268 FbxPropertyT<FbxInt> FrontAxis;
00269 FbxPropertyT<FbxInt> FrontAxisSign;
00270
00271 FbxPropertyT<FbxInt> CoordAxis;
00272 FbxPropertyT<FbxInt> CoordAxisSign;
00273
00274 FbxPropertyT<FbxInt> OriginalUpAxis;
00275 FbxPropertyT<FbxInt> OriginalUpAxisSign;
00276
00277 FbxPropertyT<FbxDouble> UnitScaleFactor;
00278 FbxPropertyT<FbxDouble> OriginalUnitScaleFactor;
00279
00280 FbxPropertyT<FbxDouble3> AmbientColor;
00281 FbxPropertyT<FbxString> DefaultCamera;
00282 FbxPropertyT<FbxEnum> TimeMode;
00283 FbxPropertyT<FbxEnum> TimeProtocol;
00284 FbxPropertyT<FbxEnum> SnapOnFrameMode;
00285 FbxPropertyT<FbxTime> TimeSpanStart;
00286 FbxPropertyT<FbxTime> TimeSpanStop;
00287 FbxPropertyT<FbxDouble> CustomFrameRate;
00288
00289 protected:
00290 virtual void Construct(const FbxGlobalSettings* pFrom);
00291 virtual void ConstructProperties(bool pForceSet);
00292
00293 private:
00294 void AxisSystemToProperties();
00295 void PropertiesToAxisSystem();
00296
00297 void Init();
00298
00299 FbxAxisSystem mAxisSystem;
00300 int mNbTimeMarkers;
00301
00302 friend class FbxWriterFbx6;
00303
00304 FbxProperty mTimeMarkers;
00305 FbxPropertyT<FbxInt> mCurrentTimeMarker;
00306 void AddSetTimeMarker(int pIndex, const TimeMarker& pTimeMarker, FbxStatus* pStatus, bool pAdd);
00307
00308 #endif
00309 };
00310
00311 inline EFbxType FbxTypeOf(const FbxTime::EMode&){ return eFbxEnum; }
00312
00313 #include <fbxsdk/fbxsdk_nsend.h>
00314
00315 #endif