28 #ifndef __GyotoPhoton_H_ 29 #define __GyotoPhoton_H_ 35 namespace Astrobj {
class Generic; }
78 double transmission_freqobs_;
92 double * transmission_;
100 virtual std::string className() const ;
101 virtual std::string className_l() const ;
110 Photon(Photon* orig, size_t i0, int dir, double step_max);
114 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
118 Photon(SmartPointer<Metric::Generic> gg, SmartPointer<Astrobj::Generic> obj,
119 SmartPointer<Screen> screen, double d_alpha, double d_delta);
123 virtual double getMass() const ;
126 void astrobj(SmartPointer<Astrobj::Generic>);
132 void metric(SmartPointer<Metric::Generic>);
136 void spectrometer(SmartPointer<Spectrometer::Generic> spr);
138 SmartPointer<Spectrometer::Generic> spectrometer() const ;
141 void freqObs(double);
143 double freqObs() const;
161 void setInitialCondition(SmartPointer<Metric::Generic> gg,
162 SmartPointer<Astrobj::Generic> obj,
163 const double coord[8]) ;
175 void setInitialCondition(SmartPointer<Metric::Generic> gg,
176 SmartPointer<Astrobj::Generic> obj,
177 SmartPointer<Screen> screen,
187 int hit(Astrobj::Properties *data=NULL);
207 double findMin(Functor::Double_constDoubleArray* object,
208 double t1, double t2, double &tmin,
209 double threshold = DBL_MIN) ;
224 void findValue(Functor::Double_constDoubleArray* object,
226 double tinside, double &toutside) ;
228 #ifdef GYOTO_USE_XERCES 229 virtual void setParameters(FactoryMessenger *fmp) ;
236 void resetTransmission() ;
246 double getTransmission(size_t i) const ;
255 double getTransmissionMax() const ;
261 double const * getTransmission() const ;
270 virtual void transmit(size_t i, double t);
274 void _allocateTransmission();
308 virtual void transmit(
size_t i,
double t);
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
Timelike or null geodesics.
Definition: GyotoWorldline.h:219
A null geodesic transporting light.
Definition: GyotoPhoton.h:52
Classes with an operator() method.
SmartPointer< Astrobj::Generic > Subcontractor(FactoryMessenger *fmp)
A template for Subcontractor_t functions.
Definition: GyotoAstrobj.h:76
Photon * parent_
Parent Photon.
Definition: GyotoPhoton.h:304
Refine last step of integration in a Photon.
Definition: GyotoPhoton.h:302
Gyoto ubiquitous macros and typedefs.
Timelike or null geodesics.
Base class for metric description.
#define GYOTO_WORLDLINE
Declare the Worldline interface wrappers.
Definition: GyotoWorldline.h:151
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:41
Can be pointed to by a SmartPointer.
Definition: GyotoSmartPointer.h:78
Object with properties.
Definition: GyotoObject.h:136
Description of the observer screen.
SmartPointer< Metric::Generic > metric() const
Get metric.