// Dominique YVON, CEA/DAPNIA/SPP 02/2000 #ifndef AbsLightSource_H #define AbsLightSource_H #include #include "unitvector.h" #include "radspec.h" #include "lsrcradspec.h" #include "specresp.h" #define T_CMBR (2.726) // Kelvin class AbsLightSource { //friend class SigCalcTool; public: AbsLightSource() :PtSourceS(false), QPtSource(false), LScrFSep(false), IsLSrcMappedPower (false) { sprintf(Name, ""); } ~AbsLightSource() { } virtual double powSpecDens(double theta,double phi,double freq)=0; // Return power density at coordinates // (W/m2/Hz/St) LSrcRadSpec getPowerSpec(double theta,double phi); // return Object including power spectrum versus frequency in direction theta, phi // (W/m2/Hz/St) // Not recommended for intensive use. May Be inefficient or inaccurrate.. //virtual double powerDens(double theta,double phi)=0; // Return power Dens at coordinates, integrated over frequency // May Require initialisation // (Watt/m2/St) double LSrcResol() const { return resolution; // constructeur have to initialise res } inline bool IsPtSourceS() { return PtSourceS;} inline bool IsQPtSrc() { return QPtSource;} inline bool IsFreqSep() { return LScrFSep;} inline bool IsMappedPowerSrc() {return IsLSrcMappedPower;} // Optimisation pour calculs avec Lobes separables facon R. Teyssier virtual void print(ostream& OutStr) const; /* virtual void Reset(const SpectralResponse& Filtre) { cerr<<"you call reset function when not allowed: program exit"<