[Debian-astro-commits] [gyoto] 134/221: Start converting Scenery to Object/Property
Thibaut Jean-Claude Paumard
thibaut at moszumanska.debian.org
Fri May 22 20:52:40 UTC 2015
This is an automated email from the git hooks/post-receive script.
thibaut pushed a commit to branch master
in repository gyoto.
commit 59c4103f87cb6e920b90ada84fa4047c9f1b8a9b
Author: Thibaut Paumard <paumard at users.sourceforge.net>
Date: Mon Dec 8 10:28:18 2014 +0100
Start converting Scenery to Object/Property
---
include/GyotoScenery.h | 6 ++++++
lib/Scenery.C | 45 +++++++++++++++++++--------------------------
2 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/include/GyotoScenery.h b/include/GyotoScenery.h
index 4f6b4ac..f6385ab 100644
--- a/include/GyotoScenery.h
+++ b/include/GyotoScenery.h
@@ -255,6 +255,8 @@ class Gyoto::Scenery
// Constructors - Destructor
// -------------------------
public:
+ GYOTO_OBJECT;
+ GYOTO_WORLDLINE;
Scenery(); ///< Set everything to defaults
Scenery (const Scenery& o); ///< Copy constructor
Scenery * clone() const; ///< Cloner
@@ -298,6 +300,10 @@ class Gyoto::Scenery
void delta(double); ///< set default step in geometrical units
void delta(double, const std::string &unit); ///< set default step in specified units
+ void initCoord(std::vector<double> c);
+ std::vector<double> initCoord() const;
+
+
/// Set Scenery::quantities_
/**
* \param quant Bitwise OR of desired quantities, e.g. \code GYOTO_QUANTITY_SPECTRUM | GYOTO_QUANTITY_MIN_DISTANCE \endcode
diff --git a/lib/Scenery.C b/lib/Scenery.C
index b7d6cb9..2e4a84f 100644
--- a/lib/Scenery.C
+++ b/lib/Scenery.C
@@ -49,6 +49,14 @@ namespace mpi = boost::mpi;
using namespace Gyoto;
using namespace std;
+/// Properties
+
+#include "GyotoProperty.h"
+GYOTO_PROPERTY_START(Scenery)
+GYOTO_WORLDLINE_PROPERTY_END(Scenery, Object::properties)
+
+///
+
Scenery::Scenery() :
screen_(NULL), delta_(GYOTO_DEFAULT_DELTA),
quantities_(0), ph_(), nthreads_(0), nprocesses_(0)
@@ -125,6 +133,9 @@ void Scenery::delta(double d, const string &unit) {
delta(Units::ToGeometrical(d, unit, metric()));
}
+void Scenery::initCoord(std::vector<double> c) { ph_ . initCoord(c); }
+std::vector<double> Scenery::initCoord() const { return ph_.initCoord();}
+
void Scenery::nThreads(size_t n) { nthreads_ = n; }
size_t Scenery::nThreads() const { return nthreads_; }
@@ -824,25 +835,17 @@ size_t Scenery::maxiter() const { return ph_.maxiter(); }
#ifdef GYOTO_USE_XERCES
void Scenery::fillElement(FactoryMessenger *fmp) {
if (metric()) fmp -> metric (metric()) ;
- if (screen_) fmp -> screen (screen_) ;
+ if (screen_) fmp -> screen (screen_) ;
if (astrobj()) fmp -> astrobj (astrobj()) ;
- fmp -> setParameter("Integrator", ph_.integrator());
- fmp -> setParameter("DeltaMin", ph_.deltaMin());
- fmp -> setParameter("DeltaMax", ph_.deltaMax());
- fmp -> setParameter("DeltaMaxOverR", ph_.deltaMaxOverR());
- fmp -> setParameter("AbsTol", ph_.absTol());
- fmp -> setParameter("RelTol", ph_.relTol());
- fmp -> setParameter ("Delta", delta_);
- fmp -> setParameter (adaptive()?"Adaptive":"NonAdaptive");
- fmp -> setParameter("MaxIter", maxiter());
-
if (getRequestedQuantities())
fmp -> setParameter("Quantities", getRequestedQuantitiesString());
fmp -> setParameter("MinimumTime", tMin());
fmp -> setParameter("NThreads", nthreads_);
fmp -> setParameter("NProcesses", nprocesses_);
+
+ Object::fillElement(fmp);
}
SmartPointer<Scenery> Gyoto::Scenery::Subcontractor(FactoryMessenger* fmp) {
@@ -863,22 +866,12 @@ SmartPointer<Scenery> Gyoto::Scenery::Subcontractor(FactoryMessenger* fmp) {
while (fmp->getNextParameter(&name, &content, &unit)) {
char* tc = const_cast<char*>(content.c_str());
- if (name=="Delta") sc -> delta(atof(tc), unit);;
if (name=="Quantities") sc -> setRequestedQuantities(tc);
- if (name=="MinimumTime") sc -> tMin(atof(tc), unit);
- if (name=="NThreads") sc -> nThreads(atoi(tc));
- if (name=="MaxIter") sc -> maxiter(atoi(tc));
- if (name=="Adaptive") sc -> adaptive(true);
- if (name=="NonAdaptive") sc -> adaptive(false);
- if (name=="PrimaryOnly") sc -> secondary(false);
- if (name=="Integrator") sc -> ph_ . integrator(content);
- if (name=="DeltaMin") sc -> ph_ . deltaMin(atof(content.c_str()));
- if (name=="DeltaMax") sc -> ph_ . deltaMax(atof(content.c_str()));
- if (name=="DeltaMaxOverR") sc -> ph_ . deltaMaxOverR (atof(content.c_str()));
- if (name=="AbsTol") sc -> ph_ . absTol(atof(content.c_str()));
- if (name=="RelTol") sc -> ph_ . relTol(atof(content.c_str()));
- if (name=="NProcesses") sc -> nProcesses(atoi(content.c_str()));
-
+ else if (name=="MinimumTime") sc -> tMin(atof(tc), unit);
+ else if (name=="NThreads") sc -> nThreads(atoi(tc));
+ else if (name=="NProcesses") sc -> nProcesses(atoi(content.c_str()));
+ else if (name=="Metric" || name=="Screen" || name=="Astrobj") ;
+ else sc -> setParameter(name, content, unit);
}
return sc;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-astro/packages/gyoto.git
More information about the Debian-astro-commits
mailing list