26#ifndef __GyotoProperty_H_
27#define __GyotoProperty_H_
40 namespace Metric {
class Generic; }
41 namespace Astrobj {
class Generic; }
42 namespace Spectrum {
class Generic; }
43 namespace Spectrometer {
class Generic; }
45 template <
class T>
class SmartPointer;
52#define GYOTO_PROPERTY_THREAD_UNSAFE(class) \
53 bool class::isThreadSafe() const {return false;}
60#define GYOTO_PROPERTY_ACCESSORS(class, type, member, method) \
61 void class::method(type v) {member=v;} \
62 type class::method() const {return member;}
73#define GYOTO_PROPERTY_ACCESSORS_SPECIAL(class, type, member, method, set, get) \
74 void class::method(type v) {member=v; set } \
75 type class::method() const {get ; return member;}
88#define GYOTO_PROPERTY_ACCESSORS_GEOMETRICAL(class, member, method, metric) \
89 GYOTO_PROPERTY_ACCESSORS(class, double, member, method) \
90 void class::method(double v, std::string const &u) { \
91 member=Units::ToGeometrical(v, u, metric); \
93 double class::method(std::string const &u) const { \
94 return Units::FromGeometrical(member, u, metric); \
108#define GYOTO_PROPERTY_ACCESSORS_GEOMETRICAL_SPECIAL(class, member, method, metric, set, get) \
109 GYOTO_PROPERTY_ACCESSORS_SPECIAL(class, double, member, method, set, get) \
110 void class::method(double v, std::string const &u) { \
111 member=Units::ToGeometrical(v, u, metric); \
113 double class::method(std::string const &u) const { \
114 return Units::FromGeometrical(member, u, metric); \
127#define GYOTO_PROPERTY_ACCESSORS_UNIT(class, member, method, unit) \
128 GYOTO_PROPERTY_ACCESSORS(class, double, member, method) \
129 void class::method(double v, std::string const &u) { \
130 method(Units::Converter(u, unit)(v)); \
132 double class::method(std::string const &u) const { \
133 return Units::Converter(unit, u)(method()); \
141#define GYOTO_PROPERTY_START(...) \
142 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
143 "wrong number of arguments", \
144 "wrong number of arguments", \
145 "wrong number of arguments", \
146 "wrong number of arguments", \
147 GYOTO_PROPERTY_START_DOC(__VA_ARGS__), \
148 GYOTO_PROPERTY_START_NODOC(__VA_ARGS__), \
149 "wrong number of arguments" \
164#define GYOTO_PROPERTY_BOOL(...) \
165 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
166 "wrong number of arguments", \
167 GYOTO_PROPERTY_BOOL_DOC(__VA_ARGS__), \
168 GYOTO_PROPERTY_BOOL_NODOC(__VA_ARGS__), \
169 "wrong number of arguments", \
170 "wrong number of arguments", \
171 "wrong number of arguments", \
172 "wrong number of arguments" \
185#define GYOTO_PROPERTY_DOUBLE(...) \
186 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
189 GYOTO_PROPERTY_DOUBLE_DOC(__VA_ARGS__), \
190 GYOTO_PROPERTY_DOUBLE_NODOC(__VA_ARGS__), \
207#define GYOTO_PROPERTY_DOUBLE_UNIT(...) \
208 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
211 GYOTO_PROPERTY_DOUBLE_UNIT_DOC(__VA_ARGS__), \
212 GYOTO_PROPERTY_DOUBLE_UNIT_NODOC(__VA_ARGS__), \
228#define GYOTO_PROPERTY_VECTOR_DOUBLE(...) \
229 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
232 GYOTO_PROPERTY_VECTOR_DOUBLE_DOC(__VA_ARGS__), \
233 GYOTO_PROPERTY_VECTOR_DOUBLE_NODOC(__VA_ARGS__), \
249#define GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT(...) \
250 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
253 GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT_DOC(__VA_ARGS__), \
254 GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT_NODOC(__VA_ARGS__), \
270#define GYOTO_PROPERTY_STRING(...) \
271 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
274 GYOTO_PROPERTY_STRING_DOC(__VA_ARGS__), \
275 GYOTO_PROPERTY_STRING_NODOC(__VA_ARGS__), \
291#define GYOTO_PROPERTY_FILENAME(...) \
292 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
295 GYOTO_PROPERTY_FILENAME_DOC(__VA_ARGS__), \
296 GYOTO_PROPERTY_FILENAME_NODOC(__VA_ARGS__), \
312#define GYOTO_PROPERTY_LONG(...) \
313 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
316 GYOTO_PROPERTY_LONG_DOC(__VA_ARGS__), \
317 GYOTO_PROPERTY_LONG_NODOC(__VA_ARGS__), \
333#define GYOTO_PROPERTY_UNSIGNED_LONG(...) \
334 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
337 GYOTO_PROPERTY_UNSIGNED_LONG_DOC(__VA_ARGS__), \
338 GYOTO_PROPERTY_UNSIGNED_LONG_NODOC(__VA_ARGS__), \
354#define GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG(...) \
355 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
358 GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG_DOC(__VA_ARGS__), \
359 GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG_NODOC(__VA_ARGS__), \
375#define GYOTO_PROPERTY_SIZE_T(...) \
376 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
379 GYOTO_PROPERTY_SIZE_T_DOC(__VA_ARGS__), \
380 GYOTO_PROPERTY_SIZE_T_NODOC(__VA_ARGS__), \
396#define GYOTO_PROPERTY_METRIC(...) \
397 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
400 GYOTO_PROPERTY_METRIC_DOC(__VA_ARGS__), \
401 GYOTO_PROPERTY_METRIC_NODOC(__VA_ARGS__), \
418#define GYOTO_PROPERTY_SPECTRUM(...) \
419 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
422 GYOTO_PROPERTY_SPECTRUM_DOC(__VA_ARGS__), \
423 GYOTO_PROPERTY_SPECTRUM_NODOC(__VA_ARGS__), \
440#define GYOTO_PROPERTY_ASTROBJ(...) \
441 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
444 GYOTO_PROPERTY_ASTROBJ_DOC(__VA_ARGS__), \
445 GYOTO_PROPERTY_ASTROBJ_NODOC(__VA_ARGS__), \
462#define GYOTO_PROPERTY_SCREEN(...) \
463 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
466 GYOTO_PROPERTY_SCREEN_DOC(__VA_ARGS__), \
467 GYOTO_PROPERTY_SCREEN_NODOC(__VA_ARGS__), \
484#define GYOTO_PROPERTY_SPECTROMETER(...) \
485 GYOTO_PROPERTY_CHOOSER(,##__VA_ARGS__, \
488 GYOTO_PROPERTY_SPECTROMETER_DOC(__VA_ARGS__), \
489 GYOTO_PROPERTY_SPECTROMETER_NODOC(__VA_ARGS__), \
496#define GYOTO_PROPERTY_END(class, next) \
498 Gyoto::Property const * class::getProperties() const { \
499 return class::properties; \
501 const std::string class::builtinPluginValue ( GYOTO_STRINGIFY(GYOTO_PLUGIN) ); \
502 std::vector<std::string> class::plugins() const { \
503 if (plugins_.size() == 0) { \
504 std::vector<std::string> p; \
505 p.push_back(class::builtinPluginValue); \
510 void class::plugins(std::vector<std::string> const & plugname) { \
677 std::string
const &unit);
828 operator bool()
const ;
837 Property(std::string classname, std::string doc=
"");
950#define GYOTO_PROPERTY_CHOOSER(x, A, B, C, D, E, F, FUNC, ...) FUNC
952#define GYOTO_PROPERTY_START_DOC(class, doc) \
953 Property const class::properties[] = { \
954 Property (#class, doc),
956#define GYOTO_PROPERTY_START_NODOC(class) \
957 GYOTO_PROPERTY_START_DOC(class, "")
960#define GYOTO_PROPERTY_BOOL_DOC(class, name, namef, fname, doc) \
964 (Gyoto::Property::set_bool_t)&class :: fname, \
965 (Gyoto::Property::get_bool_t)&class :: fname, \
967#define GYOTO_PROPERTY_BOOL_NODOC(class, name, namef, fname) \
968 GYOTO_PROPERTY_BOOL_DOC(class, name, namef, fname, "")
970#define GYOTO_PROPERTY_DOUBLE_DOC(class, name, fname, doc) \
973 (Gyoto::Property::set_double_t)&class::fname, \
974 (Gyoto::Property::get_double_t)&class::fname, \
976#define GYOTO_PROPERTY_DOUBLE_NODOC(class, name, fname) \
977 GYOTO_PROPERTY_DOUBLE_DOC(class, name, fname, "")
979#define GYOTO_PROPERTY_LONG_DOC(class, name, fname, doc) \
982 (Gyoto::Property::set_long_t)&class::fname, \
983 (Gyoto::Property::get_long_t)&class::fname, \
985#define GYOTO_PROPERTY_LONG_NODOC(class, name, fname) \
986 GYOTO_PROPERTY_LONG_DOC(class, name, fname, "")
988#define GYOTO_PROPERTY_UNSIGNED_LONG_DOC(class, name, fname, doc) \
991 (Gyoto::Property::set_unsigned_long_t)&class::fname, \
992 (Gyoto::Property::get_unsigned_long_t)&class::fname, \
994#define GYOTO_PROPERTY_UNSIGNED_LONG_NODOC(class, name, fname) \
995 GYOTO_PROPERTY_UNSIGNED_LONG_DOC(class, name, fname, "")
997#define GYOTO_PROPERTY_SIZE_T_DOC(class, name, fname, doc) \
1000 (Gyoto::Property::set_size_t_t)&class::fname, \
1001 (Gyoto::Property::get_size_t_t)&class::fname, \
1004#define GYOTO_PROPERTY_SIZE_T_NODOC(class, name, fname) \
1005 GYOTO_PROPERTY_SIZE_T_DOC(class, name, fname, "")
1007#define GYOTO_PROPERTY_DOUBLE_UNIT_DOC(class, name, fname, doc) \
1010 (Gyoto::Property::set_double_t)&class::fname, \
1011 (Gyoto::Property::get_double_t)&class::fname, \
1012 (Gyoto::Property::set_double_unit_t)&class::fname, \
1013 (Gyoto::Property::get_double_unit_t)&class::fname, \
1015#define GYOTO_PROPERTY_DOUBLE_UNIT_NODOC(class, name, fname) \
1016 GYOTO_PROPERTY_DOUBLE_UNIT_DOC(class, name, fname, "")
1018#define GYOTO_PROPERTY_FILENAME_DOC(class, name, fname, doc) \
1021 (Gyoto::Property::set_string_t)&class::fname, \
1022 (Gyoto::Property::get_string_t)&class::fname, \
1024#define GYOTO_PROPERTY_FILENAME_NODOC(class, name, fname) \
1025 GYOTO_PROPERTY_FILENAME_DOC(class, name, fname, "")
1027#define GYOTO_PROPERTY_STRING_DOC(class, name, fname, doc) \
1030 (Gyoto::Property::set_string_t)&class::fname, \
1031 (Gyoto::Property::get_string_t)&class::fname, \
1033#define GYOTO_PROPERTY_STRING_NODOC(class, name, fname) \
1034 GYOTO_PROPERTY_STRING_DOC(class, name, fname, "")
1036#define GYOTO_PROPERTY_VECTOR_DOUBLE_DOC(class, name, fname, doc) \
1039 (Gyoto::Property::set_vector_double_t)&class::fname, \
1040 (Gyoto::Property::get_vector_double_t)&class::fname, \
1042#define GYOTO_PROPERTY_VECTOR_DOUBLE_NODOC(class, name, fname) \
1043 GYOTO_PROPERTY_VECTOR_DOUBLE_DOC(class, name, fname, "")
1045#define GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT_DOC(class, name, fname, doc) \
1048 (Gyoto::Property::set_vector_double_t)&class::fname, \
1049 (Gyoto::Property::get_vector_double_t)&class::fname, \
1050 (Gyoto::Property::set_vector_double_unit_t)&class::fname, \
1051 (Gyoto::Property::get_vector_double_unit_t)&class::fname, \
1053#define GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT_NODOC(class, name, fname) \
1054 GYOTO_PROPERTY_VECTOR_DOUBLE_UNIT_DOC(class, name, fname, "")
1056#define GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG_DOC(class, name, fname, doc) \
1059 (Gyoto::Property::set_vector_unsigned_long_t)&class::fname, \
1060 (Gyoto::Property::get_vector_unsigned_long_t)&class::fname, \
1062#define GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG_NODOC(class, name, fname) \
1063 GYOTO_PROPERTY_VECTOR_UNSIGNED_LONG_DOC(class, name, fname, "")
1065#define GYOTO_PROPERTY_METRIC_DOC(class, name, fname, doc) \
1068 (Gyoto::Property::set_metric_t)&class::fname, \
1069 (Gyoto::Property::get_metric_t)&class::fname, \
1071#define GYOTO_PROPERTY_METRIC_NODOC(class, name, fname) \
1072 GYOTO_PROPERTY_METRIC_DOC(class, name, fname, "")
1074#define GYOTO_PROPERTY_SCREEN_DOC(class, name, fname, doc) \
1077 (Gyoto::Property::set_screen_t)&class::fname, \
1078 (Gyoto::Property::get_screen_t)&class::fname, \
1080#define GYOTO_PROPERTY_SCREEN_NODOC(class, name, fname) \
1081 GYOTO_PROPERTY_SCREEN_DOC(class, name, fname, "")
1083#define GYOTO_PROPERTY_ASTROBJ_DOC(class, name, fname, doc) \
1086 (Gyoto::Property::set_astrobj_t)&class::fname, \
1087 (Gyoto::Property::get_astrobj_t)&class::fname, \
1089#define GYOTO_PROPERTY_ASTROBJ_NODOC(class, name, fname) \
1090 GYOTO_PROPERTY_ASTROBJ_DOC(class, name, fname, "")
1092#define GYOTO_PROPERTY_SPECTRUM_DOC(class, name, fname, doc) \
1095 (Gyoto::Property::set_spectrum_t)&class::fname, \
1096 (Gyoto::Property::get_spectrum_t)&class::fname, \
1098#define GYOTO_PROPERTY_SPECTRUM_NODOC(class, name, fname) \
1099 GYOTO_PROPERTY_SPECTRUM_DOC(class, name, fname, "")
1101#define GYOTO_PROPERTY_SPECTROMETER_DOC(class, name, fname, doc) \
1104 (Gyoto::Property::set_spectrometer_t)&class::fname, \
1105 (Gyoto::Property::get_spectrometer_t)&class::fname, \
1107#define GYOTO_PROPERTY_SPECTROMETER_NODOC(class, name, fname) \
1108 GYOTO_PROPERTY_SPECTROMETER_DOC(class, name, fname, "")
Compile-time configuration.
#define size_t
If not defined in <sys/types.h>.
Definition: GyotoConfig.h:390
Object with properties.
Definition: GyotoObject.h:152
Property that can be set and got using standard methods.
Definition: GyotoProperty.h:608
void(Object::* set_long_t)(long val)
Prototype for an accessor to set a long.
Definition: GyotoProperty.h:681
void(Object::* set_size_t_t)(size_t val)
Prototype for an accessor to set a size_t.
Definition: GyotoProperty.h:689
void(Object::* set_metric_t)(Gyoto::SmartPointer< Gyoto::Metric::Generic >)
Prototype for an accessor to set a Gyoto::SmartPointer<Gyoto::Metric::Generic>
Definition: GyotoProperty.h:719
void(Object::* set_spectrometer_t)(Gyoto::SmartPointer< Gyoto::Spectrometer::Generic >)
Prototype for an accessor to set a Gyoto::SmartPointer<Gyoto::Spectrometer::Generic>
Definition: GyotoProperty.h:747
size_t(Object::* get_size_t_t)() const
Prototype for an accessor to get a size_t.
Definition: GyotoProperty.h:691
std::string(Object::* get_string_t)() const
Prototype for an accessor to get a string.
Definition: GyotoProperty.h:699
std::vector< double >(Object::* get_vector_double_t)() const
Prototype for an accessor to get a std::vector<double>
Definition: GyotoProperty.h:707
Gyoto::SmartPointer< Gyoto::Spectrum::Generic >(Object::* get_spectrum_t)() const
Prototype for an accessor to get a Gyoto::SmartPointer<Gyoto::Spectrum::Generic>
Definition: GyotoProperty.h:743
setter_t setter
Pointer to the setter method.
Definition: GyotoProperty.h:808
Gyoto::SmartPointer< Gyoto::Metric::Generic >(Object::* get_metric_t)() const
Prototype for an accessor to get a Gyoto::SmartPointer<Gyoto::Metric::Generic>
Definition: GyotoProperty.h:722
Property(std::string name, set_spectrum_t set_spectrum, get_spectrum_t get_spectrum, std::string doc)
Constructor for type==spectrum_t.
unsigned long(Object::* get_unsigned_long_t)() const
Prototype for an accessor to get an unsigned long.
Definition: GyotoProperty.h:687
void(Object::* set_spectrum_t)(Gyoto::SmartPointer< Gyoto::Spectrum::Generic >)
Prototype for an accessor to set a Gyoto::SmartPointer<Gyoto::Spectrum::Generic>
Definition: GyotoProperty.h:740
void(Object::* set_vector_double_t)(std::vector< double > const &)
Prototype for an accessor to set a std::vector<double>
Definition: GyotoProperty.h:705
Property(std::string name, set_vector_double_t set_vdouble, get_vector_double_t get_vdouble, std::string doc)
Constructor for type==vector_double_t, without unit support.
void(Object::* set_vector_double_unit_t)(std::vector< double > const &, std::string const &)
Prototype for an accessor to set a std::vector<double>, with unit.
Definition: GyotoProperty.h:709
Property(std::string name, set_astrobj_t set_astrobj, get_astrobj_t get_astrobj, std::string doc)
Constructor for type==astrobj_t.
Property(Property const *const ancestor)
Constructor for type==empty_t.
double(Object::* get_double_unit_t)(std::string const &unit) const
Prototype for an accessor to get a double, with unit.
Definition: GyotoProperty.h:679
void(Object::* set_double_t)(double val)
Prototype for an accessor to set a double.
Definition: GyotoProperty.h:672
long(Object::* get_long_t)() const
Prototype for an accessor to get a long.
Definition: GyotoProperty.h:683
Property(std::string classname, std::string doc="")
Constructor for class name pseudo-property.
Gyoto::SmartPointer< Gyoto::Astrobj::Generic >(Object::* get_astrobj_t)() const
Prototype for an accessor to get a Gyoto::SmartPointer<Gyoto::Astrobj::Generic>
Definition: GyotoProperty.h:736
void(Object::* set_unsigned_long_t)(unsigned long val)
Prototype for an accessor to set an unsigned long.
Definition: GyotoProperty.h:685
bool(Object::* get_bool_t)() const
Prototype for an accessor to get a bool.
Definition: GyotoProperty.h:695
Property(std::string name, set_vector_double_t set_vdouble, get_vector_double_t get_vdouble, set_vector_double_unit_t set_vdouble_unit, get_vector_double_unit_t get_vdouble_unit, std::string doc)
Constructor for type==vector_double_t, with unit support.
getter_t getter
Pointer to the getter method.
Definition: GyotoProperty.h:813
void(Object::* set_string_t)(std::string const &)
Prototype for an accessor to set a string.
Definition: GyotoProperty.h:697
type_e
Possible type of a Property instance.
Definition: GyotoProperty.h:616
@ size_t_t
Type is size_t (only if distinct from unsigned long)
Definition: GyotoProperty.h:624
@ vector_unsigned_long_t
Type is std::vector<unsigned long>
Definition: GyotoProperty.h:642
@ double_t
Type is double.
Definition: GyotoProperty.h:618
@ metric_t
Type is Gyoto::SmartPointer<Gyoto::Metric::Generic>
Definition: GyotoProperty.h:644
@ bool_t
Type is bool.
Definition: GyotoProperty.h:626
@ astrobj_t
Type is Gyoto::SmartPointer<Gyoto::Astrobj::Generic>
Definition: GyotoProperty.h:648
@ filename_t
Type is std::string and holds a file name.
Definition: GyotoProperty.h:638
@ spectrometer_t
Type is Gyoto::SmartPointer<Gyoto::Spectrometer::Generic>
Definition: GyotoProperty.h:652
@ empty_t
Property is empty.
Definition: GyotoProperty.h:661
@ spectrum_t
Type is Gyoto::SmartPointer<Gyoto::Spectrum::Generic>
Definition: GyotoProperty.h:650
@ string_t
Type is std::string.
Definition: GyotoProperty.h:628
@ unsigned_long_t
Type is unsigned long (a.k.a. size_t)
Definition: GyotoProperty.h:622
@ screen_t
Type is Gyoto::SmartPointer<Gyoto::Screen::Generic>
Definition: GyotoProperty.h:646
@ long_t
Type is long.
Definition: GyotoProperty.h:620
@ vector_double_t
Type is std::vector<double>
Definition: GyotoProperty.h:640
Property(std::string name, set_double_t set_double, get_double_t get_double, set_double_unit_t set_double_unit, get_double_unit_t get_double_unit, std::string doc)
Constructor for type==double_t, with unit support.
Property(std::string name, set_screen_t set_screen, get_screen_t get_screen, std::string doc)
Constructor for type==screen_t.
Property(std::string name, std::string name_false, set_bool_t set_bool, get_bool_t get_bool, std::string doc)
Constructor for type==bool_t.
void(Object::* set_screen_t)(Gyoto::SmartPointer< Gyoto::Screen >)
Prototype for an accessor to set a Gyoto::SmartPointer<Gyoto::Screen>
Definition: GyotoProperty.h:726
setter_unit_t setter_unit
Pointer to the setter (with unit) method.
Definition: GyotoProperty.h:818
std::vector< double >(Object::* get_vector_double_unit_t)(std::string const &) const
Prototype for an accessor to get a std::vector<double>, with unit.
Definition: GyotoProperty.h:711
Property(std::string name, set_long_t set_long, get_long_t get_long, std::string doc)
Constructor for type==long_t.
Gyoto::SmartPointer< Gyoto::Spectrometer::Generic >(Object::* get_spectrometer_t)() const
Prototype for an accessor to get a Gyoto::SmartPointer<Gyoto::Spectrometer::Generic>
Definition: GyotoProperty.h:750
Property(std::string name, set_string_t set_string, get_string_t get_string, bool is_filename, std::string doc)
Constructor for type==string_t or filename_t.
void(Object::* set_fname_t)(std::string const &)
Prototype for an accessor to set a filename.
Definition: GyotoProperty.h:701
Property(std::string name, set_metric_t set_metric, get_metric_t get_metric, std::string doc)
Constructor for type==metric_t.
void(Object::* set_double_unit_t)(double val, std::string const &unit)
Prototype for an accessor to set a double, with unit.
Definition: GyotoProperty.h:676
std::string name
Name of this instance.
Definition: GyotoProperty.h:663
Property const *const parent
If type is empty_t, link to another Property list.
Definition: GyotoProperty.h:831
Property(std::string name, set_vector_unsigned_long_t set_vulong, get_vector_unsigned_long_t get_vulong, std::string doc)
Constructor for type==vector_unsigned_long_t.
std::string(Object::* get_fname_t)() const
Prototype for an accessor to get a filename.
Definition: GyotoProperty.h:703
std::string name_false
Name if false.
Definition: GyotoProperty.h:668
Property(std::string name, set_double_t set_double, get_double_t get_double, std::string doc)
Constructor for type==double_t, without unit support.
void(Object::* set_bool_t)(bool val)
Prototype for an accessor to set a bool.
Definition: GyotoProperty.h:693
std::vector< unsigned long >(Object::* get_vector_unsigned_long_t)() const
Prototype for an accessor to get a std::vector<unsigned long>
Definition: GyotoProperty.h:715
double(Object::* get_double_t)() const
Prototype for an accessor to get a double.
Definition: GyotoProperty.h:674
Gyoto::SmartPointer< Gyoto::Screen >(Object::* get_screen_t)() const
Prototype for an accessor to get a Gyoto::SmartPointer<Gyoto::Screen>
Definition: GyotoProperty.h:729
getter_unit_t getter_unit
Pointer to the getter (with unit) method.
Definition: GyotoProperty.h:823
Property(std::string name, set_size_t_t set_size_t, get_size_t_t get_size_t, int dummy, std::string doc)
Constructor for type==size_t_t.
Property(std::string name, set_unsigned_long_t set_unsigned_long, get_unsigned_long_t get_unsigned_long, std::string doc)
Constructor for type==unsigned_long_t.
Property(std::string name, set_spectrometer_t set_spectrometer, get_spectrometer_t get_spectrometer, std::string doc)
Constructor for type==spectrometer_t.
void(Object::* set_astrobj_t)(Gyoto::SmartPointer< Gyoto::Astrobj::Generic >)
Prototype for an accessor to set a Gyoto::SmartPointer<Gyoto::Astrobj::Generic>
Definition: GyotoProperty.h:733
void(Object::* set_vector_unsigned_long_t)(std::vector< unsigned long > const &)
Prototype for an accessor to set a std::vector<unsigned long>
Definition: GyotoProperty.h:713
int type
Type of this instance.
Definition: GyotoProperty.h:670
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Union holding an accessor to get any type.
Definition: GyotoProperty.h:775
Union holding an accessor to get double or vector<double> with unit.
Definition: GyotoProperty.h:799
Union holding an accessor to set any type.
Definition: GyotoProperty.h:756
Union holding an accessor to set double or vector<double> with unit.
Definition: GyotoProperty.h:794