Gyoto
GyotoBlackBodySpectrum.h
Go to the documentation of this file.
1 
11 /*
12  Copyright 2011 Thibaut Paumard
13 
14  This file is part of Gyoto.
15 
16  Gyoto is free software: you can redistribute it and/or modify
17  it under the terms of the GNU General Public License as published by
18  the Free Software Foundation, either version 3 of the License, or
19  (at your option) any later version.
20 
21  Gyoto is distributed in the hope that it will be useful,
22  but WITHOUT ANY WARRANTY; without even the implied warranty of
23  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  GNU General Public License for more details.
25 
26  You should have received a copy of the GNU General Public License
27  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
28  */
29 
30 #ifndef __GyotoBlackBodySpectrum_H_
31 #define __GyotoBlackBodySpectrum_H_
32 #include <GyotoSpectrum.h>
33 
34 namespace Gyoto {
35  namespace Spectrum {
36  class BlackBody;
37  }
38 }
39 
48  friend class Gyoto::SmartPointer<Gyoto::Spectrum::BlackBody>;
49  protected:
50  double T_;
51  double cst_;
52  double Tm1_;
53 
54  public:
55  BlackBody();
56  BlackBody(double T, double scaling=1.);
57  // BlackBody(const Spectrum &);
58  virtual BlackBody * clone() const;
59 
60  double getTemperature() const;
61  void setTemperature(double);
62  double getScaling() const;
63  void setScaling(double);
64 
65  using Gyoto::Spectrum::Generic::operator();
66  virtual double operator()(double nu) const;
68 
69 #ifdef GYOTO_USE_XERCES
70 
76  virtual void fillElement(FactoryMessenger *fmp) const ;
78 #endif
79 };
80 
81 #ifdef GYOTO_USE_XERCES
82 namespace Gyoto {
83  namespace Spectrum {
85  BlackBodySubcontractor(Gyoto::FactoryMessenger* fmp = NULL);
86  void BlackBodyInit();
87  }
88 }
89 #endif
90 
91 #endif