fbxsdk/scene/geometry/fbxlight.h Source File
 
 
 
fbxsdk/scene/geometry/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_ */