fbxlight.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_SCENE_GEOMETRY_LIGHT_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_LIGHT_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxnodeattribute.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00022 class FbxTexture;
00023 
00027 class FBXSDK_DLL FbxLight : public FbxNodeAttribute
00028 {
00029     FBXSDK_OBJECT_DECLARE(FbxLight, FbxNodeAttribute);
00030 
00031 public:
00043         enum EType
00044         {
00045             ePoint, 
00046             eDirectional, 
00047             eSpot,
00048             eArea,
00049             eVolume
00050         };
00051 
00059         enum EDecayType
00060         {
00061             eNone,
00062             eLinear,
00063             eQuadratic,
00064             eCubic
00065         };
00066 
00071         enum EAreaLightShape
00072         {
00073             eRectangle,
00074             eSphere
00075         };
00076 
00080         void SetShadowTexture(FbxTexture* pTexture);
00081 
00085         FbxTexture* GetShadowTexture() const;
00087 
00096         FbxPropertyT<EType> LightType;
00097 
00102         FbxPropertyT<FbxBool> CastLight;
00103 
00108         FbxPropertyT<FbxBool> DrawVolumetricLight;
00109 
00114         FbxPropertyT<FbxBool> DrawGroundProjection;
00115 
00120         FbxPropertyT<FbxBool> DrawFrontFacingVolumetricLight;
00121 
00126         FbxPropertyT<FbxDouble3> Color;
00127 
00132         FbxPropertyT<FbxDouble> Intensity;
00133 
00138         FbxPropertyT<FbxDouble> InnerAngle;
00139 
00144         FbxPropertyT<FbxDouble> OuterAngle;
00145 
00150         FbxPropertyT<FbxDouble> Fog;
00151 
00156         FbxPropertyT<EDecayType> DecayType;
00157 
00162         FbxPropertyT<FbxDouble> DecayStart;
00163 
00168         FbxPropertyT<FbxString> FileName;
00169 
00174         FbxPropertyT<FbxBool> EnableNearAttenuation;
00175 
00180         FbxPropertyT<FbxDouble> NearAttenuationStart;
00181 
00186         FbxPropertyT<FbxDouble> NearAttenuationEnd;
00187 
00192         FbxPropertyT<FbxBool> EnableFarAttenuation;
00193 
00198         FbxPropertyT<FbxDouble> FarAttenuationStart;
00199 
00204         FbxPropertyT<FbxDouble> FarAttenuationEnd;
00205 
00210         FbxPropertyT<FbxBool> CastShadows;
00211 
00216         FbxPropertyT<FbxDouble3> ShadowColor;
00217 
00222         FbxPropertyT<EAreaLightShape> AreaLightShape;
00223 
00228         FbxPropertyT<FbxFloat> LeftBarnDoor;
00229 
00234         FbxPropertyT<FbxFloat> RightBarnDoor;
00235 
00240         FbxPropertyT<FbxFloat> TopBarnDoor;
00241 
00246         FbxPropertyT<FbxFloat> BottomBarnDoor;
00247 
00252         FbxPropertyT<FbxBool> EnableBarnDoor;
00254 
00255 /*****************************************************************************************************************************
00256 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00257 *****************************************************************************************************************************/
00258 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00259     virtual FbxNodeAttribute::EType GetAttributeType() const;
00260 
00261 protected:
00262     virtual void ConstructProperties(bool pForceSet);
00263     virtual FbxStringList   GetTypeFlags() const;
00264 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00265 };
00266 
00267 inline EFbxType FbxTypeOf(const FbxLight::EType&){ return eFbxEnum; }
00268 inline EFbxType FbxTypeOf(const FbxLight::EDecayType&){ return eFbxEnum; }
00269 inline EFbxType FbxTypeOf(const FbxLight::EAreaLightShape&){ return eFbxEnum; }
00270 
00271 #include <fbxsdk/fbxsdk_nsend.h>
00272 
00273 #endif /* _FBXSDK_SCENE_GEOMETRY_LIGHT_H_ */