LightInfo.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
00012 //***************************************************************************************
00013 
00014 #ifndef _LIGHTINFO_H
00015 #define _LIGHTINFO_H
00016 
00017 #include "Template.h"
00018 
00024 class XSIEXPORT CSLLightInfo
00025     : public CSLTemplate
00026 {
00027 public:
00028 
00030     enum EFallofMode
00031     {
00032         SI_LINEAR,      
00033         SI_EXPONENT,    
00034     };
00041     CSLLightInfo(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00042 
00045     virtual ~CSLLightInfo();
00046 
00050     ETemplateType Type(){ return SI_LIGHT_INFO; }
00051 
00056     virtual CSLAnimatableType*      ParameterFromName(SI_Char *in_szName);
00057 
00063     virtual CSLAnimatableType*      ParameterFromType(EFCurveType in_Type, SI_Char *in_szName);
00064 
00068     SI_Bool GetFallofActive();
00069 
00073     SI_Void SetFallofActive( SI_Bool in_bActive );
00074 
00078     EFallofMode GetFallofMode();
00079 
00083     SI_Void SetFallofMode( EFallofMode in_Mode );
00084 
00088     SI_Float GetStart();
00089 
00093     SI_Void SetStart( SI_Float in_fStart);
00094 
00098     SI_Float GetEnd();
00099 
00103     SI_Void SetEnd( SI_Float in_fEnd);
00104 
00108     SI_Bool GetShadowActive();
00109 
00113     SI_Void SetShadowActive( SI_Bool in_bActive );
00114 
00118     SI_Float GetUmbra();
00119 
00123     SI_Void SetUmbra( SI_Float in_fUmbra = 0.75F);
00124 
00129     SI_Bool GetLightAsEnergy();
00130 
00134     SI_Void SetLightAsEnergy( SI_Bool in_bActive );
00135 
00139     SI_Float GetPhotonFactor();
00140 
00145     SI_Void SetPhotonFactor( SI_Float in_fPhotonFactor = 0.75F);
00146 
00150     SI_Float GetIntensity();
00155     SI_Void SetIntensity( SI_Float in_fIntensity );
00156 
00157     CSLBoolProxy*                           GetFallofActiveProxy() {return &m_FallofActive; };
00158     CSLEnumProxy<EFallofMode, SI_EXPONENT>* GetFallofModeProxy() {return &m_FallofMode; };
00159     CSLFloatProxy*                          GetStartProxy() {return &m_Start; };
00160     CSLFloatProxy*                          GetEndProxy() {return &m_End; };
00161     CSLBoolProxy*                           GetShadowsActiveProxy() {return &m_ShadowsActive; };
00162     CSLFloatProxy*                          GetUmbraProxy() {return &m_Umbra; };
00163     CSLBoolProxy*                           GetLightAsEnergyProxy() {return &m_LightAsEnergy; };
00164     CSLFloatProxy*                          GetPhotonFactorProxy() {return &m_PhotonFactor; };
00165     CSLFloatProxy*                          GetIntensityProxy() {return &m_Intensity; };
00166 
00167 private:
00168     CSLBoolProxy m_FallofActive;
00169     CSLEnumProxy<EFallofMode, SI_EXPONENT> m_FallofMode;
00170     CSLFloatProxy m_Start;
00171     CSLFloatProxy m_End;
00172     CSLBoolProxy m_ShadowsActive;
00173     CSLFloatProxy m_Umbra;
00174     CSLBoolProxy m_LightAsEnergy;
00175     CSLFloatProxy m_PhotonFactor;
00176     CSLFloatProxy m_Intensity;
00177 
00178     SI_Void* m_pReserved;
00179 };
00180 
00181 #endif