fbxgloballightsettings.h

Go to the documentation of this file.
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_LIGHT_SETTINGS_H_
00014 #define _FBXSDK_FILEIO_GLOBAL_LIGHT_SETTINGS_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/base/fbxarray.h>
00019 #include <fbxsdk/core/base/fbxerror.h>
00020 #include <fbxsdk/core/math/fbxvector4.h>
00021 #include <fbxsdk/core/fbxpropertytypes.h>
00022 
00023 #include <fbxsdk/fbxsdk_nsbegin.h>
00024 
00025 class FbxGlobalLightSettingsProperties;
00026 
00033 class FBXSDK_DLL FbxGlobalLightSettings
00034 {
00035 
00036 public:
00037     FBXSDK_FRIEND_NEW();
00042 
00047     void SetAmbientColor(FbxColor pAmbientColor);
00048 
00052     FbxColor GetAmbientColor() const;
00053 
00055 
00060 
00064     void SetFogEnable(bool pEnable);
00065 
00069     bool GetFogEnable() const;
00070 
00075     void SetFogColor(FbxColor pColor);
00076 
00081     FbxColor GetFogColor() const;
00082 
00085     enum EFogMode
00086     {
00087         eLinear,                
00088         eExponential,           
00089         eExponentialSquareRoot  
00090     };
00091 
00095     void SetFogMode(EFogMode pMode);
00096 
00100     EFogMode GetFogMode() const;
00101 
00107     void SetFogDensity(double pDensity);
00108 
00113     double GetFogDensity() const;
00114 
00119     void SetFogStart(double pStart);
00120 
00125     double GetFogStart() const;
00126 
00131     void SetFogEnd(double pEnd);
00132 
00137     double GetFogEnd() const;
00138 
00140 
00147 
00150     struct FBXSDK_DLL ShadowPlane
00151     {
00153         ShadowPlane();
00154 
00156         bool mEnable;
00157 
00159         FbxVector4 mOrigin;
00160 
00162         FbxVector4 mNormal; 
00163     };
00164 
00168     void SetShadowEnable(bool pShadowEnable);
00169 
00173     bool GetShadowEnable() const;
00174 
00179     void SetShadowIntensity(double pShadowIntensity);
00180 
00185     double GetShadowIntensity() const;
00186 
00190     int GetShadowPlaneCount() const;
00191 
00197     ShadowPlane* GetShadowPlane(int pIndex);
00198 
00202     void AddShadowPlane(ShadowPlane pShadowPlane);
00203 
00205     void RemoveAllShadowPlanes();
00206 
00208 
00213 
00217     FbxError& GetError();
00218 
00223     enum EErrorCode
00224     {
00225         eIndexOutOfRange,   
00226         eErrorCount         
00227     };
00228 
00232     EErrorCode GetLastErrorID() const;
00233 
00237     const char* GetLastErrorString() const;
00238 
00240 
00242     void RestoreDefaultSettings();
00243 
00247     const FbxGlobalLightSettings& operator=(const FbxGlobalLightSettings& pGlobalLightSettings);
00248 
00249 
00251 //
00252 //  WARNING!
00253 //
00254 //  Anything beyond these lines may not be documented accurately and is
00255 //  subject to change without notice.
00256 //
00258 
00259 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00260 
00261 private:
00262 
00263     FbxGlobalLightSettings();
00264     ~FbxGlobalLightSettings();
00265 
00266     FbxGlobalLightSettingsProperties* mPH;
00267 
00268     friend class FbxScene;
00269 
00270 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00271 
00272 };
00273 
00274 #include <fbxsdk/fbxsdk_nsend.h>
00275 
00276 #endif /* _FBXSDK_FILEIO_GLOBAL_LIGHT_SETTINGS_H_ */