Gyoto
GyotoStarTrace.h
Go to the documentation of this file.
1 
12 /*
13  Copyright 2013-2015 Thibaut Paumard
14 
15  This file is part of Gyoto.
16 
17  Gyoto is free software: you can redistribute it and/or modify
18  it under the terms of the GNU General Public License as published by
19  the Free Software Foundation, either version 3 of the License, or
20  (at your option) any later version.
21 
22  Gyoto is distributed in the hope that it will be useful,
23  but WITHOUT ANY WARRANTY; without even the implied warranty of
24  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  GNU General Public License for more details.
26 
27  You should have received a copy of the GNU General Public License
28  along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
29  */
30 
31 
32 #ifndef __GyotoStarTrace_H_
33 #define __GyotoStarTrace_H_
34 
35 namespace Gyoto{
36  namespace Astrobj { class StarTrace; }
37 }
38 
39 #include <GyotoStar.h>
40 
70  public Gyoto::Astrobj::Star {
71  friend class Gyoto::SmartPointer<Gyoto::Astrobj::StarTrace>;
72 
73  // Data :
74  // -----
75  protected:
76  double tmin_;
77  double tmax_;
78  double * x_;
79  double * y_;
80  double * z_;
81 
82  // Constructors - Destructor
83  // -------------------------
84  public:
86 
94  StarTrace(SmartPointer<Metric::Generic> gg, double radius,
95  double pos[4], double v[3]) ;
96 
103  StarTrace();
104 
105  StarTrace(const StarTrace& orig);
106 
107 
109  StarTrace(const Star& o, double tmin, double tmax);
110 
111  virtual StarTrace * clone() const ;
112 
113  virtual ~StarTrace() ;
114 
115  using Star::xAllocate;
116  void xAllocate(size_t);
117  void xAllocateXYZ();
118  using Star::xExpand;
119  size_t xExpand(int);
120 
121  void computeXYZ(size_t i);
122  void computeXYZ();
123 
124  using Star::setInitCoord;
125  virtual void setInitCoord(const double coord[8], int dir = 0);
126 
127  using Generic::metric;
128  virtual void metric(SmartPointer<Metric::Generic> gg);
129 
130  virtual void xStore(size_t ind, double coord[8]) ;
131 
132  // Accessors
133  // ---------
134  public:
135  virtual std::string className() const ;
136  virtual std::string className_l() const ;
137 
138  double TMin()const;
139  void TMin(double);
140  double TMax()const;
141  void TMax(double);
142 
143  virtual void setInitialCondition(double coord[8]);
144 
145  virtual double operator()(double const coord[4]) ;
146 
147 };
148 
149 
150 #endif
Mass-less, spherical object following a timelike geodesic.
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
Pointers performing reference counting.
Definition: GyotoProperty.h:41
double tmax_
Maximum date to consider on the underlying Star orbit.
Definition: GyotoStarTrace.h:77
virtual void setInitialCondition(double coord[8])
Same as Worldline::setInitialCondition(gg, coord, sys,1)
size_t xExpand(int)
Expand x0, x1 etc... to hold more elements.
double * y_
Cartesian y.
Definition: GyotoStarTrace.h:79
double tmin_
Minimum date to consider on the underlying Star orbit.
Definition: GyotoStarTrace.h:76
virtual std::string className_l() const
"startrace"
#define size_t
If not defined in .
Definition: GyotoConfig.h:357
Like a Star that would be on all points of its orbit at all time.
Definition: GyotoStarTrace.h:69
virtual StarTrace * clone() const
Cloner.
virtual std::string className() const
"StarTrace"
void computeXYZ()
Compute (and cache) x_, y_ and z_.
double * x_
Cartesian x.
Definition: GyotoStarTrace.h:78
virtual void setInitCoord(const double coord[8], int dir=0)
Set Initial coordinate.
double TMin() const
Get tmin_.
double * z_
Cartesian z.
Definition: GyotoStarTrace.h:80
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
Mass-less, spherical object following a timelike geodesic.
Definition: GyotoStar.h:93
virtual size_t xExpand(int dir)
Expand x0, x1 etc... to hold more elements.
virtual SmartPointer< Metric::Generic > metric() const
Get the Metric gg_.
virtual void setInitCoord(const double coord[8], int dir=0)
Set Initial coordinate.
virtual void xStore(size_t ind, double coord[8])
Store coord at index ind.
virtual void xAllocate()
Allocate x0, x1 etc. with default size.
double TMax() const
Get tmax_.
void xAllocateXYZ()
Allocate x_, y_, z_.