Gyoto
GyotoSimThinDisk.h
Go to the documentation of this file.
1 
6 /*
7  Copyright 2024 Irene Urso
8 
9 
10  Gyoto is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  Gyoto is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 
25 #ifndef __GyotoSimThinDisk_H_
26 #define __GyotoSimThinDisk_H_
27 
28 namespace Gyoto{
29  namespace Astrobj { class SimThinDisk; }
30 }
31 
32 #include <GyotoSimBridge.h>
33 
34 #ifdef GYOTO_USE_XERCES
35 #include <GyotoRegister.h>
36 #endif
37 
38 #include <string>
39 
43 
44  public:
45  GYOTO_OBJECT; // This object has a (non-inherited) Property list
46 
47  SimThinDisk();
48 
49  SimThinDisk(const SimThinDisk& orig);
50  SimThinDisk * clone() const ;
51 
52  protected:
53  double rin_ ;
54  double rout_ ;
55 
61  double thickness_;
62 
63  public:
64  ~SimThinDisk() ;
65 
66  virtual std::string className() const ;
67  virtual std::string className_l() const ;
68 
69  virtual double innerRadius() const ;
70  virtual double innerRadius(std::string const &) const ;
71  virtual void innerRadius(double);
72  virtual void innerRadius(double, std::string const &);
73  virtual double outerRadius() const ;
74  virtual double outerRadius(std::string const &) const ;
75  virtual void outerRadius(double);
76  virtual void outerRadius(double, std::string const &);
77  virtual double thickness() const ;
78  virtual double thickness(std::string const &) const ;
79  virtual void thickness(double);
80  virtual void thickness(double, std::string const&);
81 
82  virtual double operator()(double const coord[4]);
83 
84  virtual double projectedRadius(double const coord[]) const ;
85 
86  virtual int Impact(Gyoto::Photon* ph, size_t index, Astrobj::Properties *data=NULL) ;
87 
88 };
89 #endif
virtual double projectedRadius(double const coord[]) const
Projected radius of position coord on the equatorial plane.
virtual std::string className_l() const
"simThindisk"
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:84
double thickness_
disk thickness
Definition: GyotoSimThinDisk.h:61
Object that read physical quantities from a set of FITS files comming from numerical simulations...
Definition: GyotoSimBridge.h:97
Gyoto registers.
SimThinDisk * clone() const
Cloner.
virtual std::string className() const
"SimThinDisk"
Definition: GyotoSimThinDisk.h:40
virtual int Impact(Gyoto::Photon *ph, size_t index, Astrobj::Properties *data=NULL)
Does a photon at these coordinates impact the object?
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:46
Pointers performing reference counting.
Definition: GyotoProperty.h:45
double rin_
disk inner radius in geometrical units
Definition: GyotoSimThinDisk.h:53
double rout_
disk outer radius in geometrical units
Definition: GyotoSimThinDisk.h:54
virtual double innerRadius() const
Get rin_.
virtual double outerRadius() const
Get rout_.
virtual double thickness() const
Get thickness_.
Object which computes radiative quantities from numerical simulations files.