- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# 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_ */