27 #ifndef __GyotoScenery_H_
28 #define __GyotoScenery_H_
192 Scenery(SmartPointer<Metric::Generic>, SmartPointer<Screen>, SmartPointer<Astrobj::Generic>);
205 void
setMetric(SmartPointer<Metric::Generic>);
216 void
setAstrobj(SmartPointer<Astrobj::Generic>);
218 double
getDelta(const std::string &unit) const ;
220 void
setDelta(double, const std::string &unit);
250 double
getTmin(const std::string &unit) const ;
254 void
setTmin(double, const std::string &unit);
323 void
rayTrace(size_t imin, size_t imax, size_t jmin, size_t jmax,
324 Astrobj::Properties* data, double * impactcoords = NULL);
335 void operator() (size_t i, size_t j, Astrobj::Properties *data,
336 double * impactcoords = NULL, Photon * ph = NULL);
338 #ifdef GYOTO_USE_XERCES
bool adaptive() const
Get Scenery::adaptive_.
size_t getNThreads() const
Get nthreads_;.
void setDelta(double)
set default step in geometrical units
Astronomical objects (light emitters)
void setBinSpectrumConverter(std::string unit)
Set Scenery::binspectrum_converter_.
void setIntensityConverter(std::string unit)
Set Scenery::intensity_converter_.
void setMetric(SmartPointer< Metric::Generic >)
Set Scenery::gg_.
A null geodesic transporting light.
Definition: GyotoPhoton.h:51
Ray-tracing scene.
Definition: GyotoScenery.h:110
Reference-counting pointers.
void setTmin(double)
Set Scenery::tmin_.
static SmartPointer< Scenery > Subcontractor(Gyoto::FactoryMessenger *)
Instanciate Scenery from an XML description.
size_t nthreads_
Number of parallel threads to use in rayTrace()
Definition: GyotoScenery.h:167
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:293
Gyoto::Photon ph_
Cached Photon.
Definition: GyotoScenery.h:151
void setAstrobj(SmartPointer< Astrobj::Generic >)
Set Scenery::obj_.
Gyoto::Quantity_t quantities_
Quantities to compute.
Definition: GyotoScenery.h:146
std::string getRequestedQuantitiesString() const
Get a string representation of Scenery::quantities_.
void rayTrace(size_t imin, size_t imax, size_t jmin, size_t jmax, Astrobj::Properties *data, double *impactcoords=NULL)
Perform ray-tracing for a square area on Screen.
void setScreen(SmartPointer< Screen >)
Set Scenery::screen_.
Gyoto::SmartPointer< Gyoto::Units::Converter > binspectrum_converter_
See Astrobj::Properties::intensity_converter_.
Definition: GyotoScenery.h:175
size_t maxiter() const
Get Scenery::maxiter_.
Gyoto::SmartPointer< Gyoto::Units::Converter > intensity_converter_
See Astrobj::Properties::intensity_converter_.
Definition: GyotoScenery.h:171
void setSpectrumConverter(std::string unit)
Set Scenery::spectrum_converter_.
Gyoto ubiquitous macros and typedefs.
Base class for metric description.
SmartPointer< Astrobj::Generic > obj_
Definition: GyotoScenery.h:130
double getTmin() const
Get Scenery::tmin_.
size_t maxiter_
Maximum number of iterations when integrating.
Definition: GyotoScenery.h:178
void fillElement(FactoryMessenger *fmp)
Fill XML section.
Quantity_t getRequestedQuantities() const
Get Scenery::quantities_.
Gyoto::SmartPointer< Gyoto::Units::Converter > spectrum_converter_
See Astrobj::Properties::intensity_converter_.
Definition: GyotoScenery.h:173
SmartPointer< Metric::Generic > getMetric()
Get Scenery::gg_.
size_t getScalarQuantitiesCount() const
Get number of requested quantities of scalar nature.
void setNThreads(size_t)
Set nthreads_;.
unsigned int Quantity_t
Type for observabke quantities.
Definition: GyotoDefs.h:72
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
Can be pointed to by a SmartPointer.
Definition: GyotoSmartPointer.h:79
void setPropertyConverters(Gyoto::Astrobj::Properties *prop)
Copy converters to Astrobj::Properties instance.
SmartPointer< Astrobj::Generic > getAstrobj()
Get Scenery::obj_.
Scenery * clone() const
Cloner.
double getDelta() const
Get default step in geometrical units.
Description of the observer screen.
double delta_
Definition: GyotoScenery.h:137
void setRequestedQuantities(Quantity_t quant)
Set Scenery::quantities_.
SmartPointer< Screen > screen_
Definition: GyotoScenery.h:125
bool adaptive_
Whether integration should use adaptive delta.
Definition: GyotoScenery.h:132
SmartPointer< Screen > getScreen()
Get Scenery::screen_.
double tmin_
Time limit for the integration (geometrical units)
Definition: GyotoScenery.h:160
SmartPointer< Metric::Generic > gg_
Definition: GyotoScenery.h:120