28 #ifndef __GyotoPhoton_H_
29 #define __GyotoPhoton_H_
35 namespace Astrobj {
class Generic; }
62 double * transmission_;
78 Photon(Photon* orig, size_t i0, int dir, double step_max);
81 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
84 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
85 SmartPointer<Screen> screen, double d_alpha, double d_delta);
93 virtual double
getMass() const ;
95 void
setAstrobj(SmartPointer<Astrobj::Generic>);
97 void setSpectrometer(SmartPointer<Spectrometer> spr);
99 double getFreqObs() const;
106 void operator=(const Photon&) ;
120 void
setInitialCondition(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj, const double coord[8]) ;
136 void
setInitialCondition(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj, SmartPointer<Screen> screen, double d_alpha, double d_delta);
140 int
hit(Astrobj::Properties *data=NULL);
158 double
findMin(Functor::Double_constDoubleArray* object,
159 double t1, double t2, double &tmin,
160 double threshold = DBL_MIN) ;
176 void
findValue(Functor::Double_constDoubleArray* object,
178 double tinside, double &toutside) ;
180 #ifdef GYOTO_USE_XERCES
214 virtual void
transmit(size_t i, double t);
217 void _allocateTransmission();
247 virtual void transmit(
size_t i,
double t);
252 #ifdef GYOTO_USE_XERCES