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