Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
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 FbxColor;
00023 class FbxManager;
00024 class FbxTexture;
00025
00029 class FBXSDK_DLL FbxLight : public FbxNodeAttribute
00030 {
00031 FBXSDK_OBJECT_DECLARE(FbxLight, FbxNodeAttribute);
00032
00033 public:
00045 enum EType
00046 {
00047 ePoint,
00048 eDirectional,
00049 eSpot,
00050 eArea,
00051 eVolume
00052 };
00053
00061 enum EDecayType
00062 {
00063 eNone,
00064 eLinear,
00065 eQuadratic,
00066 eCubic
00067 };
00068
00073 enum EAreaLightShape
00074 {
00075 eRectangle,
00076 eSphere
00077 };
00078
00082 void SetShadowTexture(FbxTexture* pTexture);
00083
00087 FbxTexture* GetShadowTexture() const;
00089
00098 FbxPropertyT<EType> LightType;
00099
00104 FbxPropertyT<FbxBool> CastLight;
00105
00110 FbxPropertyT<FbxBool> DrawVolumetricLight;
00111
00116 FbxPropertyT<FbxBool> DrawGroundProjection;
00117
00122 FbxPropertyT<FbxBool> DrawFrontFacingVolumetricLight;
00123
00128 FbxPropertyT<FbxDouble3> Color;
00129
00134 FbxPropertyT<FbxDouble> Intensity;
00135
00140 FbxPropertyT<FbxDouble> InnerAngle;
00141
00146 FbxPropertyT<FbxDouble> OuterAngle;
00147
00152 FbxPropertyT<FbxDouble> Fog;
00153
00158 FbxPropertyT<EDecayType> DecayType;
00159
00164 FbxPropertyT<FbxDouble> DecayStart;
00165
00170 FbxPropertyT<FbxString> FileName;
00171
00176 FbxPropertyT<FbxBool> EnableNearAttenuation;
00177
00182 FbxPropertyT<FbxDouble> NearAttenuationStart;
00183
00188 FbxPropertyT<FbxDouble> NearAttenuationEnd;
00189
00194 FbxPropertyT<FbxBool> EnableFarAttenuation;
00195
00200 FbxPropertyT<FbxDouble> FarAttenuationStart;
00201
00206 FbxPropertyT<FbxDouble> FarAttenuationEnd;
00207
00212 FbxPropertyT<FbxBool> CastShadows;
00213
00218 FbxPropertyT<FbxDouble3> ShadowColor;
00219
00224 FbxPropertyT<EAreaLightShape> AreaLightShape;
00225
00230 FbxPropertyT<FbxFloat> LeftBarnDoor;
00231
00236 FbxPropertyT<FbxFloat> RightBarnDoor;
00237
00242 FbxPropertyT<FbxFloat> TopBarnDoor;
00243
00248 FbxPropertyT<FbxFloat> BottomBarnDoor;
00249
00254 FbxPropertyT<FbxBool> EnableBarnDoor;
00256
00258
00259
00260
00261
00262
00263
00265 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00266 virtual FbxNodeAttribute::EType GetAttributeType() const;
00267
00268 protected:
00269 FbxLight(FbxManager& pManager, char const* pName);
00270 virtual bool ConstructProperties(bool pForceSet);
00271 virtual FbxStringList GetTypeFlags() const;
00272 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00273 };
00274
00275 inline EFbxType FbxTypeOf(const FbxLight::EType&){ return eFbxEnum; }
00276 inline EFbxType FbxTypeOf(const FbxLight::EDecayType&){ return eFbxEnum; }
00277 inline EFbxType FbxTypeOf(const FbxLight::EAreaLightShape&){ return eFbxEnum; }
00278
00279 #include <fbxsdk/fbxsdk_nsend.h>
00280
00281 #endif