28 #ifndef __GyotoPhoton_H_
29 #define __GyotoPhoton_H_
35 namespace Astrobj {
class Generic; }
103 Photon(Photon* orig, size_t i0, int dir, double step_max);
107 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
111 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
112 SmartPointer<Screen> screen, double d_alpha, double d_delta);
116 virtual double
getMass() const ;
119 void
setAstrobj(SmartPointer<Astrobj::Generic>);
138 void operator=(const Photon&) ;
152 SmartPointer<Astrobj::Generic> obj,
153 const double coord[8]) ;
166 SmartPointer<Astrobj::Generic> obj,
167 SmartPointer<Screen> screen,
177 int
hit(Astrobj::Properties *data=NULL);
197 double
findMin(Functor::Double_constDoubleArray* object,
198 double t1, double t2, double &tmin,
199 double threshold = DBL_MIN) ;
214 void
findValue(Functor::Double_constDoubleArray* object,
216 double tinside, double &toutside) ;
218 #ifdef GYOTO_USE_XERCES
263 virtual void
transmit(size_t i, double t);
301 virtual void transmit(
size_t i,
double t);