00001 /**************************************************************************************** 00002 00003 Copyright (C) 2012 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/base/fbxstring.h> 00019 #include <fbxsdk/core/base/fbxarray.h> 00020 #include <fbxsdk/core/base/fbxtime.h> 00021 #include <fbxsdk/core/base/fbxerror.h> 00022 00023 #include <fbxsdk/scene/fbxaxissystem.h> 00024 #include <fbxsdk/core/fbxsystemunit.h> 00025 #include <fbxsdk/core/fbxobject.h> 00026 00027 #include <fbxsdk/fbxsdk_nsbegin.h> 00028 00032 class FBXSDK_DLL FbxGlobalSettings : public FbxObject 00033 { 00034 FBXSDK_OBJECT_DECLARE(FbxGlobalSettings,FbxObject); 00035 00036 public: 00041 00045 void SetAxisSystem(const FbxAxisSystem& pAxisSystem); 00046 00050 FbxAxisSystem GetAxisSystem(); 00052 00056 void SetOriginalUpAxis(const FbxAxisSystem& pAxisSystem); 00057 00061 int GetOriginalUpAxis() const; 00063 00068 00072 void SetSystemUnit(const FbxSystemUnit& pOther); 00073 00077 FbxSystemUnit GetSystemUnit() const; 00078 00082 void SetOriginalSystemUnit(const FbxSystemUnit& pOther); 00083 00087 FbxSystemUnit GetOriginalSystemUnit() const; 00089 00090 00095 00100 void SetAmbientColor(FbxColor pAmbientColor); 00101 00105 FbxColor GetAmbientColor() const; 00106 00108 00113 00115 static const char* ePRODUCER_PERSPECTIVE; 00116 00118 static const char* ePRODUCER_TOP; 00119 00121 static const char* ePRODUCER_FRONT; 00122 00124 static const char* ePRODUCER_BACK; 00125 00127 static const char* ePRODUCER_RIGHT; 00128 00130 static const char* ePRODUCER_LEFT; 00131 00133 static const char* ePRODUCER_BOTTOM; 00134 00142 bool SetDefaultCamera(const char* pCameraName); 00143 00147 FbxString GetDefaultCamera() const; 00149 00157 void SetTimeMode(FbxTime::EMode pTimeMode); 00158 00162 FbxTime::EMode GetTimeMode() const; 00163 00167 void SetTimelineDefaultTimeSpan(const FbxTimeSpan& pTimeSpan); 00168 00172 void GetTimelineDefaultTimeSpan(FbxTimeSpan& pTimeSpan) const; 00173 00177 void SetCustomFrameRate(double pCustomFrameRate); 00178 00182 double GetCustomFrameRate() const; 00184 00186 // 00187 // WARNING! 00188 // 00189 // Anything beyond these lines may not be documented accurately and is 00190 // subject to change without notice. 00191 // 00193 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00194 public: 00195 virtual FbxObject& Copy(const FbxObject& pObject); 00196 00197 protected: 00198 00203 FbxPropertyT<FbxInt> UpAxis; 00204 FbxPropertyT<FbxInt> UpAxisSign; 00205 00206 FbxPropertyT<FbxInt> FrontAxis; 00207 FbxPropertyT<FbxInt> FrontAxisSign; 00208 00209 FbxPropertyT<FbxInt> CoordAxis; 00210 FbxPropertyT<FbxInt> CoordAxisSign; 00211 00212 FbxPropertyT<FbxInt> OriginalUpAxis; 00213 FbxPropertyT<FbxInt> OriginalUpAxisSign; 00214 00215 FbxPropertyT<FbxDouble> UnitScaleFactor; 00216 FbxPropertyT<FbxDouble> OriginalUnitScaleFactor; 00217 00218 FbxPropertyT<FbxDouble3> AmbientColor; 00219 FbxPropertyT<FbxString> DefaultCamera; 00220 FbxPropertyT<FbxEnum> TimeMode; 00221 FbxPropertyT<FbxTime> TimeSpanStart; 00222 FbxPropertyT<FbxTime> TimeSpanStop; 00223 FbxPropertyT<FbxDouble> CustomFrameRate; 00225 00226 protected: 00227 virtual void Construct(const FbxGlobalSettings* pFrom); 00228 virtual bool ConstructProperties(bool pForceSet); 00229 00230 private: 00231 FbxGlobalSettings(FbxManager& pManager, char const* pName); 00232 00233 void AxisSystemToProperties(); 00234 void PropertiesToAxisSystem(); 00235 00236 void Init(); 00237 00238 FbxAxisSystem mAxisSystem; 00239 friend class FbxScene; 00240 00241 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 00242 }; 00243 00244 inline EFbxType FbxTypeOf(const FbxTime::EMode&){ return eFbxEnum; } 00245 00246 #include <fbxsdk/fbxsdk_nsend.h> 00247 00248 #endif /* _FBXSDK_FILEIO_GLOBAL_SETTINGS_H_ */