28 #ifndef __GyotoAstrobj_H_ 29 #define __GyotoAstrobj_H_ 78 #ifdef GYOTO_USE_XERCES 79 if (fmp) ao -> setParameters(fmp);
216 bool flag_radtransf_;
262 virtual Generic* clone() const = 0 ;
277 virtual void metric(SmartPointer<Metric::Generic>) ;
290 virtual double rMax();
291 virtual double rMax() const;
299 virtual double rMax(std::string const &unit);
300 virtual double rMax(std::string const &unit) const;
307 virtual double deltaMax(double coord[8]);
309 const std::string kind() const;
317 virtual void rMax(double val);
326 virtual void rMax(double val, std::string const &unit);
333 void opticallyThin(bool flag);
338 bool opticallyThin() const ;
341 void radiativeQ(bool flag);
342 bool radiativeQ() const ;
344 void showshadow(bool flag);
345 bool showshadow() const ;
347 void redshift(bool flag);
348 bool redshift() const ;
362 #ifdef GYOTO_USE_XERCES 384 virtual void setParameters(FactoryMessenger *fmp);
423 virtual int Impact(Gyoto::Photon* ph, size_t index,
424 Astrobj::Properties *data=NULL) = 0 ;
439 virtual void processHitQuantities(Photon* ph, double* coord_ph_hit,
440 double* coord_obj_hit, double dt,
441 Astrobj::Properties* data) const;
492 virtual double emission(double nu_em, double dsem, double coord_ph[8],
493 double coord_obj[8]=NULL)
518 virtual void emission(double Inu[], double nu_em[], size_t nbnu,
519 double dsem, double coord_ph[8],
520 double coord_obj[8]=NULL) const ;
523 virtual void radiativeQ(double Inu[], double Taunu[],
524 double nu_em[], size_t nbnu,
525 double dsem, double coord_ph[8],
526 double coord_obj[8]=NULL) const ;
539 virtual double integrateEmission(double nu1, double nu2, double dsem,
540 double c_ph[8], double c_obj[8]=NULL) const;
548 virtual void integrateEmission(double * I, double const * boundaries,
549 size_t const * chaninds, size_t nbnu,
550 double dsem, double *cph, double *co) const;
562 virtual double transmission(double nuem, double dsem, double coord[8]) const ;
618 int first_dmin_found;
647 double * impactcoords;
711 void
init(size_t nbnuobs=0);
732 void intensityConverter(Gyoto::SmartPointer<Gyoto::Units::Converter>);
734 void intensityConverter(std::string);
736 void spectrumConverter(Gyoto::SmartPointer<Gyoto::Units::Converter>);
738 void spectrumConverter(std::string);
740 void binSpectrumConverter(Gyoto::SmartPointer<Gyoto::Units::Converter>);
742 void binSpectrumConverter(std::string);
#define GYOTO_OBJECT
Declare class::properties and class::getProperties()
Definition: GyotoObject.h:83
A null geodesic transporting light.
Definition: GyotoPhoton.h:52
Base class for metrics.
Definition: GyotoMetric.h:148
Reference-counting pointers.
void Register(std::string name, Gyoto::Astrobj::Subcontractor_t *scp)
Make an Astrobj kind known to the Factory.
SmartPointer< Astrobj::Generic > Subcontractor(FactoryMessenger *fmp)
A template for Subcontractor_t functions.
Definition: GyotoAstrobj.h:76
Factory / SmartPointee::Subcontractor_t interface.
Definition: GyotoFactoryMessenger.h:92
void init(char const *pluglist=NULL)
Initialise the various registers.
Gyoto ubiquitous macros and typedefs.
Compile-time configuration.
Gyoto::Register::Entry * Register_
The Astrobj register.
void initRegister()
Empty the Astrobj register.
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
unsigned int Quantity_t
Type for observabke quantities.
Definition: GyotoDefs.h:73
SmartPointer< Gyoto::Astrobj::Generic > Subcontractor_t(Gyoto::FactoryMessenger *)
A function to build instances of a specific Astrobj::Generic sub-class.
Definition: GyotoAstrobj.h:62
Can be pointed to by a SmartPointer.
Definition: GyotoSmartPointer.h:78
Base class for astronomical object.
Definition: GyotoAstrobj.h:188
Object with properties.
Definition: GyotoObject.h:136
Gyoto::Astrobj::Subcontractor_t * getSubcontractor(std::string name, int errmode=0)
Query the Astrobj register.
Observable properties of an Astronomical object.
Definition: GyotoAstrobj.h:595
Entry in a register (or a full register)
Definition: GyotoRegister.h:92