Gyoto
GyotoFixedStar.h
Go to the documentation of this file.
1 
8 /*
9  Copyright 2011 Frederic Vincent, Thibaut Paumard
10 
11  This file is part of Gyoto.
12 
13  Gyoto is free software: you can redistribute it and/or modify
14  it under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  Gyoto is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  GNU General Public License for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
25  */
26 
27 
28 #ifndef __GyotoFixedStar_H_
29 #define __GyotoFixedStar_H_
30 
31 #include <iostream>
32 #include <fstream>
33 #include <iomanip>
34 
35 namespace Gyoto{
36  namespace Astrobj { class FixedStar; }
37 }
38 
39 #include <GyotoUniformSphere.h>
40 #include <GyotoMetric.h>
41 
49  friend class Gyoto::SmartPointer<Gyoto::Astrobj::FixedStar>;
50 
51  // Data :
52  // -----
53 
54  protected:
55 
56  double pos_[3];
57 
58  // Constructors - Destructor
59  // -------------------------
60  public:
61 
66  FixedStar();
67 
68  FixedStar(const FixedStar& orig);
69  virtual FixedStar* clone() const;
70 
71  FixedStar(SmartPointer<Gyoto::Metric::Generic> gg, double StPsn[3], double radius);
73 
74  virtual ~FixedStar() ;
75 
76  public:
77  // Accessors
78  // ---------
79  public:
80  double const * getPos() const;
81  void getPos(double* dst) const;
82  using Generic::metric;
83  virtual void metric(SmartPointer<Metric::Generic> metric) ;
85  virtual void radius(double radius);
86  void setPos(const double[3]);
87  // void setCoordSys(int); ///< set coordinate system
88 
89  virtual int setParameter(std::string name,
90  std::string content,
91  std::string unit);
92 
93  public:
94 #ifdef GYOTO_USE_XERCES
95  virtual void fillElement(FactoryMessenger *fmp) const ;
96 #endif
97 
98  // Outputs
99  // -------
100  protected:
101  virtual void getCartesian(double const * const dates, size_t const n_dates,
102  double * const x, double * const y,
103  double * const z, double * const xprime=NULL,
104  double * const yprime=NULL, double * const zprime=NULL) ;
105  virtual void getVelocity(double const pos[4], double vel[4]) ;
106 
107 
108 };
109 
110 
111 #endif
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
Optically thick or thin, spherical objects.
Definition: GyotoUniformSphere.h:89
double radius() const
Get radius_ in geometrical units.
double pos_[3]
x, y, z or r, theta, phi
Definition: GyotoFixedStar.h:56
void setPos(const double[3])
Set pos_ array.
virtual void getCartesian(double const *const dates, size_t const n_dates, double *const x, double *const y, double *const z, double *const xprime=NULL, double *const yprime=NULL, double *const zprime=NULL)
Yield the Cartesian coordinates of the center of the sphere.
Base class for metric description.
Optically thick or thin, spherical objects.
virtual FixedStar * clone() const
Cloner.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:42
double const * getPos() const
Get const pointer to pos_.
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Fixed (i.e. non-moving) star (or spherical blob)
Definition: GyotoFixedStar.h:48
virtual void getVelocity(double const pos[4], double vel[4])
Yield velocity of the center of the sphere.
virtual void fillElement(FactoryMessenger *fmp) const
Fill the generic XML bits.