# LightInfo.h

    00001 //***************************************************************************************
    00002 //
    00003 // File supervisor: Crosswalk team
    00004 //
    00005 // Copyright 2008 Autodesk, Inc.  All rights reserved.
    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
    00012 #ifndef _LIGHTINFO_H
    00013 #define _LIGHTINFO_H
    00014
    00015 #include "Template.h"
    00016
    00020 class XSIEXPORT CSLLightInfo
    00021     : public CSLTemplate
    00022 {
    00023 public:
    00024
    00026     enum EFallofMode
    00027     {
    00028         SI_LINEAR,
    00029         SI_EXPONENT,
    00030     };
    00037     CSLLightInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
    00038
    00042     virtual ~CSLLightInfo();
    00043
    00047     ETemplateType Type(){ return SI_LIGHT_INFO; }
    00048
    00049     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
    00050
    00051     virtual CSLAnimatableType*      ParameterFromType(EFCurveType in_Type, SI_Char *in_szName);
    00052
    00056     SI_Bool GetFallofActive();
    00057
    00062     SI_Void SetFallofActive( SI_Bool in_bActive );
    00063
    00067     EFallofMode GetFallofMode();
    00068
    00073     SI_Void SetFallofMode( EFallofMode in_Mode );
    00074
    00078     SI_Float GetStart();
    00079
    00083     SI_Void SetStart( SI_Float in_fStart);
    00084
    00088     SI_Float GetEnd();
    00089
    00093     SI_Void SetEnd( SI_Float in_fEnd);
    00094
    00098     SI_Bool GetShadowActive();
    00099
    00104     SI_Void SetShadowActive( SI_Bool in_bActive );
    00105
    00109     SI_Float GetUmbra();
    00110
    00114     SI_Void SetUmbra( SI_Float in_fUmbra = 0.75F);
    00115
    00120     SI_Bool GetLightAsEnergy();
    00121
    00126     SI_Void SetLightAsEnergy( SI_Bool in_bActive );
    00127
    00131     SI_Float GetPhotonFactor();
    00132
    00138     SI_Void SetPhotonFactor( SI_Float in_fPhotonFactor = 0.75F);
    00139
    00143     SI_Float GetIntensity();
    00149     SI_Void SetIntensity( SI_Float in_fIntensity );
    00150
    00151     CSLBoolProxy*                           GetFallofActiveProxy() {return &m_FallofActive; };
    00152     CSLEnumProxy<EFallofMode, SI_EXPONENT>* GetFallofModeProxy() {return &m_FallofMode; };
    00153     CSLFloatProxy*                          GetStartProxy() {return &m_Start; };
    00154     CSLFloatProxy*                          GetEndProxy() {return &m_End; };
    00155     CSLBoolProxy*                           GetShadowsActiveProxy() {return &m_ShadowsActive; };
    00156     CSLFloatProxy*                          GetUmbraProxy() {return &m_Umbra; };
    00157     CSLBoolProxy*                           GetLightAsEnergyProxy() {return &m_LightAsEnergy; };
    00158     CSLFloatProxy*                          GetPhotonFactorProxy() {return &m_PhotonFactor; };
    00159     CSLFloatProxy*                          GetIntensityProxy() {return &m_Intensity; };
    00160
    00161 private:
    00162     CSLBoolProxy m_FallofActive;
    00163     CSLEnumProxy<EFallofMode, SI_EXPONENT> m_FallofMode;
    00164     CSLFloatProxy m_Start;
    00165     CSLFloatProxy m_End;
    00166     CSLBoolProxy m_ShadowsActive;
    00167     CSLFloatProxy m_Umbra;
    00168     CSLBoolProxy m_LightAsEnergy;
    00169     CSLFloatProxy m_PhotonFactor;
    00170     CSLFloatProxy m_Intensity;
    00171
    00172     SI_Void* m_pReserved;
    00173 };
    00174
    00175 #endif