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