fbxsdk/fileio/fbxglobalsettings.h Source File
 
 
 
fbxsdk/fileio/fbxglobalsettings.h
Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
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 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
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 /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00309 };
00310 
00311 inline EFbxType FbxTypeOf(const FbxTime::EMode&){ return eFbxEnum; }
00312 
00313 #include <fbxsdk/fbxsdk_nsend.h>
00314 
00315 #endif /* _FBXSDK_FILEIO_GLOBAL_SETTINGS_H_ */