[Debian-astro-commits] [gyoto] 131/221: Convert Screen to Object/Property (spectrometer remains to be done)

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 932197f354913c2b0dd27dc5208c09adbd8ec5d9
Author: Thibaut Paumard <paumard at users.sourceforge.net>
Date:   Fri Dec 5 22:30:52 2014 +0100

    Convert Screen to Object/Property (spectrometer remains to be done)
---
 include/GyotoDefs.h   |   2 +
 include/GyotoScreen.h |  42 ++++++---
 lib/Screen.C          | 254 +++++++++++++++++++++++++++++---------------------
 3 files changed, 180 insertions(+), 118 deletions(-)

diff --git a/include/GyotoDefs.h b/include/GyotoDefs.h
index 9bb259d..36e9c31 100644
--- a/include/GyotoDefs.h
+++ b/include/GyotoDefs.h
@@ -609,6 +609,8 @@ namespace Gyoto {
 # define setDir                   dir;
 # define getDir                   dir;
 # define setBand                  band;
+# define setObserverKind          observerKind;
+# define getObserverKind          observerKind;
 //\}
 #endif
 
diff --git a/include/GyotoScreen.h b/include/GyotoScreen.h
index 9624480..11020fa 100644
--- a/include/GyotoScreen.h
+++ b/include/GyotoScreen.h
@@ -234,7 +234,8 @@ class Gyoto::Screen
   std::string observerkind_;
 
  public:
-   
+  GYOTO_OBJECT;
+
   // Constructors - Destructor
   // -------------------------
   Screen() ; ///< Default constructor
@@ -273,7 +274,7 @@ class Gyoto::Screen
    * \param dist the distance expressed in the specified unit;
    * \param unit convertible to meters
    */
-  void distance(double dist, const std::string unit);
+  void distance(double dist, const std::string &unit);
 
   /// Set inclination relative to line-of-sight
   /**
@@ -339,8 +340,8 @@ class Gyoto::Screen
    * system. Content is copied.
    */
   void setObserverPos(const double pos[4]);
-  void setObserverKind(const std::string kind);
-  std::string getObserverKind();
+  void observerKind(const std::string &kind);
+  std::string observerKind() const;
   void setFourVel(const double coord[4]);
   ///< Sets the observer's 4-velocity
   void setScreen1(const double coord[4]);
@@ -400,10 +401,10 @@ class Gyoto::Screen
   void metric(SmartPointer<Metric::Generic> gg); ///< Set Screen::gg_
 
   /// Get observing date in seconds
-  double time();
+  double time() const;
 
   /// Get observing date in seconds
-  double time(const std::string &);
+  double time(const std::string &) const;
 
   /// Set observing date in specified unit
   void time(double, const std::string &);
@@ -412,10 +413,10 @@ class Gyoto::Screen
   void time(double);
 
   /// Get Screen::fov_ in radians
-  double fieldOfView();
+  double fieldOfView() const;
 
   /// Get Screen::fov_ in specified unit
-  double fieldOfView(std::string unit);
+  double fieldOfView(std::string const &unit) const;
 
   /// Set Screen::fov_ in radians
   void fieldOfView(double);
@@ -430,7 +431,7 @@ class Gyoto::Screen
   /// Get direction of the center of the field
   double alpha0() const;
   /// Get direction of the center of the field in specified unit
-  double alpha0(std::string unit);
+  double alpha0(std::string const &unit)const;
   /// Set direction of the center of the field
   void delta0(double);
   /// Set direction of the center of the field in specified unit
@@ -438,15 +439,15 @@ class Gyoto::Screen
   /// Get direction of the center of the field
   double delta0() const;
   /// Get direction of the center of the field in specified unit
-  double delta0(std::string unit);
+  double delta0(std::string const &unit)const;
 
   /// Set Screen::anglekind_
   void anglekind(int);
-  void anglekind(std::string);
+  void anglekind(std::string const&);
   std::string anglekind() const;
 
   /// Get Screen::npix_
-  size_t resolution();
+  size_t resolution() const;
   /// Set Screen::npix_
   void resolution(size_t);
 
@@ -459,13 +460,15 @@ class Gyoto::Screen
 
   /// Retrieve const pointer to mask_
   double const * mask() const ;
+  void maskFile(std::string const &fname);
+  std::string maskFile() const;
 # ifdef GYOTO_USE_CFITSIO
 
   /// Read mask_ from FITS file
-  void fitsReadMask(std::string fname);
+  void fitsReadMask(std::string const &fname);
 
   /// Save mask_ from FITS file
-  void fitsWriteMask(std::string fname);
+  void fitsWriteMask(std::string const &fname);
 # endif
 
   /// Whether this pixel should be ray-traced
@@ -496,6 +499,15 @@ class Gyoto::Screen
    */
   void getFourVel(double fourvel[]) const;
 
+  void fourVel(std::vector<double> const &);
+  std::vector<double> fourVel() const;
+  void screenVector1(std::vector<double> const &);
+  std::vector<double> screenVector1() const;
+  void screenVector2(std::vector<double> const &);
+  std::vector<double> screenVector2() const;
+  void screenVector3(std::vector<double> const &);
+  std::vector<double> screenVector3() const;
+
   /// Get copy of Screen::screen1_
   /**
    * \param[out] output preallocated 4-element array
@@ -574,6 +586,8 @@ class Gyoto::Screen
 
 #ifdef GYOTO_USE_XERCES
  public:
+  void fillProperty(Gyoto::FactoryMessenger *fmp, Property const &p) const;
+
     void fillElement(FactoryMessenger *fmp); ///< called from Factory
     /// Instanciate a Screen from XML entity 
     static   SmartPointer<Screen> Subcontractor(FactoryMessenger* fmp);
diff --git a/lib/Screen.C b/lib/Screen.C
index 918918a..47c4a97 100644
--- a/lib/Screen.C
+++ b/lib/Screen.C
@@ -43,6 +43,31 @@
 using namespace std ; 
 using namespace Gyoto;
 
+/// Properties
+#include "GyotoProperty.h"
+GYOTO_PROPERTY_START(Screen)
+GYOTO_PROPERTY_METRIC(Screen, Metric, metric)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Time, time)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, FieldOfView, fieldOfView)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, PALN, PALN)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Inclination, inclination)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Argument, argument)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Alpha0, alpha0)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Delta0, delta0)
+GYOTO_PROPERTY_SIZE_T(Screen, Resolution, resolution)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, Distance, distance)
+GYOTO_PROPERTY_DOUBLE(Screen, DMax, dMax)
+GYOTO_PROPERTY_DOUBLE_UNIT(Screen, FreqObs, freqObs)
+GYOTO_PROPERTY_STRING(Screen, AngleKind, anglekind)
+GYOTO_PROPERTY_STRING(Screen, ObserverKind, observerKind)
+GYOTO_PROPERTY_FILENAME(Screen, Mask, maskFile)
+GYOTO_PROPERTY_VECTOR_DOUBLE(Screen, FourVelocity, fourVel)
+GYOTO_PROPERTY_VECTOR_DOUBLE(Screen, ScreenVector1, screenVector1)
+GYOTO_PROPERTY_VECTOR_DOUBLE(Screen, ScreenVector2, screenVector2)
+GYOTO_PROPERTY_VECTOR_DOUBLE(Screen, ScreenVector3, screenVector3)
+GYOTO_PROPERTY_END(Screen, Object::properties)
+///
+
 // Default constructor
 Screen::Screen() : 
   //tobs_(0.), fov_(M_PI*0.1), tmin_(0.), npix_(1001),
@@ -129,7 +154,7 @@ void Screen::setProjection(const double dist,
   setProjection(paln, incl, arg);
 }
 
-void Screen::distance(double dist, const string unit)    {
+void Screen::distance(double dist, const string &unit)    {
   distance(Units::ToMeters(dist, unit, gg_));
 }
 void Screen::distance(double dist)    {
@@ -279,10 +304,10 @@ void Screen::setObserverPos(const double coord[4]) {
   computeBaseVectors();
 }
 
-void Screen::setObserverKind(const string kind) {
+void Screen::observerKind(const string &kind) {
   observerkind_=kind;
 }
-string Screen::getObserverKind() {
+string Screen::observerKind() const {
   return observerkind_;
 }
 
@@ -291,6 +316,54 @@ void Screen::setFourVel(const double coord[4]) {
     fourvel_[ii]=coord[ii];
 }
 
+void Screen::fourVel(std::vector<double> const &coord) {
+  if (coord.size() != 4)
+    throwError("base screen vectors require 4 elements");
+  for (int ii=0;ii<4;ii++)
+    fourvel_[ii]=coord[ii];
+}
+std::vector<double> Screen::fourVel() const {
+  std::vector<double> output(4, 0.);
+  for (int ii=0;ii<4;ii++) output[ii]=fourvel_[ii];
+  return output;
+}
+
+void Screen::screenVector1(std::vector<double> const &coord) {
+  if (coord.size() != 4)
+    throwError("base screen vectors require 4 elements");
+  for (int ii=0;ii<4;ii++)
+    screen1_[ii]=coord[ii];
+}
+std::vector<double> Screen::screenVector1() const {
+  std::vector<double> output(4, 0.);
+  for (int ii=0;ii<4;ii++) output[ii]=screen1_[ii];
+  return output;
+}
+
+void Screen::screenVector2(std::vector<double> const &coord) {
+  if (coord.size() != 4)
+    throwError("base screen vectors require 4 elements");
+  for (int ii=0;ii<4;ii++)
+    screen2_[ii]=coord[ii];
+}
+std::vector<double> Screen::screenVector2() const {
+  std::vector<double> output(4, 0.);
+  for (int ii=0;ii<4;ii++) output[ii]=screen2_[ii];
+  return output;
+}
+
+void Screen::screenVector3(std::vector<double> const &coord) {
+  if (coord.size() != 4)
+    throwError("base screen vectors require 4 elements");
+  for (int ii=0;ii<4;ii++)
+    screen3_[ii]=coord[ii];
+}
+std::vector<double> Screen::screenVector3() const {
+  std::vector<double> output(4, 0.);
+  for (int ii=0;ii<4;ii++) output[ii]=screen3_[ii];
+  return output;
+}
+
 void Screen::setScreen1(const double coord[4]) {
   for (int ii=0;ii<4;ii++)
     screen1_[ii]=coord[ii];
@@ -691,8 +764,18 @@ void Screen::mask(double const * const mm, size_t res) {
 
 double const * Screen::mask() const { return mask_; }
 
+void Screen::maskFile(std::string const &fname) {
+# ifdef GYOTO_USE_CFITSIO
+  if (fname != "") fitsReadMask(fname);
+# else
+  GYOTO_WARNING << "No FITS i/o, Screen mask file ignored" << endl;
+# endif 
+}
+
+std::string Screen::maskFile() const {return mask_filename_;}
+
 #ifdef GYOTO_USE_CFITSIO
-void Screen::fitsReadMask(std::string filename) {
+void Screen::fitsReadMask(std::string const &filename) {
   GYOTO_DEBUG << "Screen::fitsReadMask(\"" << filename << "\")"<<endl;
   char*     pixfile   = const_cast<char*>(filename.c_str());
   fitsfile* fptr      = NULL;
@@ -727,7 +810,8 @@ void Screen::fitsReadMask(std::string filename) {
   fptr = NULL;
 }
 
-void Screen::fitsWriteMask(string filename) {
+void Screen::fitsWriteMask(string const &fname) {
+  std::string filename = fname==""?mask_filename_:fname;
   if (filename=="") filename=mask_filename_;
   if (filename=="") throwError("no filename specified");
   if (!mask_) throwError("Screen::fitsWriteMask(filename): nothing to save!");
@@ -835,8 +919,8 @@ void Screen::coordToXYZ(const double pos[4], double xyz[3]) const {
   }
 }
 
-double Screen::time() { return tobs_ ; }
-double Screen::time(const string &unit) {
+double Screen::time() const { return tobs_ ; }
+double Screen::time(const string &unit) const {
   return Units::FromSeconds(time(), unit, gg_) ;
 }
 
@@ -856,9 +940,9 @@ void Screen::time(double tobs) {
 
 //double Screen::getMinimumTime() { return tmin_; }
 //void Screen::setMinimumTime(double tmin) { tmin_ = tmin; }
-double Screen::fieldOfView() { return fov_; }
+double Screen::fieldOfView() const { return fov_; }
 
-double Screen::fieldOfView(string unit) {
+double Screen::fieldOfView(string const &unit) const {
   double fov = fieldOfView();
   if (unit=="" || unit=="rad") ;
   else if (unit=="geometrical") fov *= distance_ / gg_ -> unitLength();
@@ -915,7 +999,7 @@ double Screen::alpha0() const { return alpha0_; }
 void Screen::delta0(double delta) { delta0_ = delta; }
 double Screen::delta0() const { return delta0_; }
 
-double Screen::alpha0(string unit) {
+double Screen::alpha0(string const &unit) const {
   double fov = alpha0();
   if (unit=="" || unit=="rad") ;
   else if (unit=="geometrical") fov *= distance_ / gg_ -> unitLength();
@@ -939,7 +1023,7 @@ double Screen::alpha0(string unit) {
   return fov;
 }
 
-double Screen::delta0(string unit) {
+double Screen::delta0(string const &unit) const{
   double fov = delta0();
   if (unit=="" || unit=="rad") ;
   else if (unit=="geometrical") fov *= distance_ / gg_ -> unitLength();
@@ -1018,7 +1102,7 @@ void Screen::delta0(double fov, const string &unit) {
 }
 
 void Screen::anglekind(int kind) { anglekind_ = kind; }
-void Screen::anglekind(std::string skind) {
+void Screen::anglekind(std::string const &skind) {
   if      (skind=="EquatorialAngles") anglekind_=equatorial_angles;
   else if (skind=="SphericalAngles")  anglekind_=spherical_angles;
   else if (skind=="Rectilinear")      anglekind_=rectilinear;
@@ -1041,7 +1125,7 @@ std::string Screen::anglekind() const {
   }
 }
 
-size_t Screen::resolution() { return npix_; }
+size_t Screen::resolution() const { return npix_; }
 void Screen::resolution(size_t n) {
   if (mask_ && n != npix_) {
     GYOTO_INFO << "Changing resolution: deleting mask" << endl;
@@ -1093,56 +1177,56 @@ void Gyoto::Screen::unmapPixUnit() {
 #endif
 
 #ifdef GYOTO_USE_XERCES
+void Screen::fillProperty(Gyoto::FactoryMessenger *fmp,
+			  Property const &p) const {
+  if (p.name=="Distance") {
+    FactoryMessenger* child = NULL;
+    double d = distance();
+    if (gg_() && (gg_->mass() == 1.)) {
+      d /=  gg_->unitLength();
+      fmp -> setParameter ("Distance", &d, 1, &child);
+      child -> setSelfAttribute("unit", "geometrical");
+    } else {
+      string unit = "m";
+      if (     d >= GYOTO_KPC*1e3   ) { d /= (1000.*GYOTO_KPC); unit = "Mpc"; }
+      else if (d >= GYOTO_KPC       ) { d /= GYOTO_KPC;         unit = "kpc"; }
+      else if (d >= GYOTO_KPC*1e-3  ) { d /= (GYOTO_KPC*1e-3);  unit = "pc"; }
+      else if (d >= GYOTO_LIGHT_YEAR) { d /= GYOTO_LIGHT_YEAR;  unit = "ly"; }
+      else if (d >= GYOTO_ASTRONOMICAL_UNIT)
+	{ d /= GYOTO_ASTRONOMICAL_UNIT; unit = "AU"; }
+      else if (d >= GYOTO_SUN_RADIUS)
+	{ d /= GYOTO_SUN_RADIUS;  unit = "sunradius"; }
+      else if (d >= 1e3)              { d *= 1e-3;              unit = "km";}
+      else if (d >= 1.) ;//           { d *= 1.;                unit = "m";}
+      else if (d >= 1e-2)             { d *= 1e2;               unit = "cm";}
+      //else ;                        { d *= 1.;                unit = "m";}
+      fmp -> setParameter ("Distance", &d, 1, &child);
+      child -> setSelfAttribute("unit", unit);
+    }
+    child -> setSelfAttribute("dmax", dmax_);
+    delete child; child = NULL;
+  }
+  else if (p.name=="DMax") ; // do nothing
+  else if (p.name=="Mask" && mask_filename_!="")
+    fmp->setParameter("Mask",
+		      (mask_filename_.compare(0,1,"!") ?
+		       mask_filename_ :
+		       mask_filename_.substr(1)));
+  else Object::fillProperty(fmp, p);
+}
+
 void Screen::fillElement(FactoryMessenger *fmp) {
   FactoryMessenger* child = NULL;
-  if (gg_) fmp -> metric (gg_) ;
-  fmp -> setParameter ("Time", tobs_);
-  fmp -> setParameter ("FieldOfView", fov_);
-  fmp -> setParameter ("Alpha0", alpha0_);
-  fmp -> setParameter ("Delta0", delta0_);
-  fmp -> setParameter ("Resolution", npix_);
-  double d = distance();
-  if (gg_() && (gg_->mass() == 1.)) {
-    d /=  gg_->unitLength();
-    fmp -> setParameter ("Distance", &d, 1, &child);
-    child -> setSelfAttribute("unit", "geometrical");
-  } else {
-    string unit = "m";
-    if (     d >= GYOTO_KPC*1e3   ) { d /= (1000.*GYOTO_KPC); unit = "Mpc"; }
-    else if (d >= GYOTO_KPC       ) { d /= GYOTO_KPC;         unit = "kpc"; }
-    else if (d >= GYOTO_KPC*1e-3  ) { d /= (GYOTO_KPC*1e-3);  unit = "pc"; }
-    else if (d >= GYOTO_LIGHT_YEAR) { d /= GYOTO_LIGHT_YEAR;  unit = "ly"; }
-    else if (d >= GYOTO_ASTRONOMICAL_UNIT)
-                                  { d /= GYOTO_ASTRONOMICAL_UNIT; unit = "AU"; }
-    else if (d >= GYOTO_SUN_RADIUS)
-                                  { d /= GYOTO_SUN_RADIUS;  unit = "sunradius"; }
-    else if (d >= 1e3)              { d *= 1e-3;              unit = "km";}
-    else if (d >= 1.) ;//           { d *= 1.;                unit = "m";}
-    else if (d >= 1e-2)             { d *= 1e2;               unit = "cm";}
-    //else ;                        { d *= 1.;                unit = "m";}
-    fmp -> setParameter ("Distance", &d, 1, &child);
-    child -> setSelfAttribute("unit", unit);
-  }
-  child -> setSelfAttribute("dmax", dmax_);
-  delete child; child = NULL;
-  fmp -> setParameter ("PALN", PALN());
-  fmp -> setParameter ("Inclination", inclination());
-  fmp -> setParameter ("Argument", argument());
+  Object::fillElement(fmp);
   if (spectro_) {
     child = fmp -> makeChild("Spectrometer");
     spectro_ -> fillElement(child) ;
     delete child; child = NULL;
   }
-  fmp -> setParameter ("FreqObs", freq_obs_);
-  fmp -> setParameter (anglekind());
-  if (mask_filename_!="") fmp->setParameter("Mask",
-					    (mask_filename_.compare(0,1,"!") ?
-					     mask_filename_ :
-					     mask_filename_.substr(1)));
 }
 
 SmartPointer<Screen> Screen::Subcontractor(FactoryMessenger* fmp) {
-  string name="", content="", unit="", tunit="";
+  string name="", content="", unit="", tunit="", aunit="", dunit="";
   SmartPointer<Screen> scr = new Screen();
   scr -> metric(fmp->metric());
   int tobs_found=0;
@@ -1154,9 +1238,6 @@ SmartPointer<Screen> Screen::Subcontractor(FactoryMessenger* fmp) {
   double alpha0=0.; int alpha0_found=0; 
   double delta0=0.; int delta0_found=0;
 
-  int fourvel_found=0, screen1_found=0,
-    screen2_found=0, screen3_found=0;
-
   while (fmp->getNextParameter(&name, &content, &unit)) {
     tc = const_cast<char*>(content.c_str());
 #   ifdef GYOTO_DEBUG_ENABLED
@@ -1172,32 +1253,10 @@ SmartPointer<Screen> Screen::Subcontractor(FactoryMessenger* fmp) {
 	throwError("Screen \"Position\" requires exactly 4 tokens");
       scr -> setObserverPos (pos); 
     }
-    else if (name=="KeplerianObserver" || name=="ZAMO") {
-      scr -> setObserverKind(name);
-    }
-    else if (name=="FourVelocity") {
-      fourvel_found=1;
-      if (FactoryMessenger::parseArray(content, pos, 4) != 4)
-	throwError("Screen \"FourVelocity\" requires exactly 4 tokens");
-      scr -> setFourVel (pos); 
-    }
-    else if (name=="ScreenVector1") {
-      screen1_found=1;
-      if (FactoryMessenger::parseArray(content, pos, 4) != 4)
-	throwError("Screen \"ScreenVector*\" require exactly 4 tokens");
-      scr -> setScreen1 (pos); 
-    }
-    else if (name=="ScreenVector2") {
-      screen2_found=1;
-      if (FactoryMessenger::parseArray(content, pos, 4) != 4)
-	throwError("Screen \"ScreenVector*\" require exactly 4 tokens");
-      scr -> setScreen2 (pos); 
-    }
-    else if (name=="ScreenVector3") {
-      screen3_found=1;
-      if (FactoryMessenger::parseArray(content, pos, 4) != 4)
-	throwError("Screen \"ScreenVector*\" require exactly 4 tokens");
-      scr -> setScreen3 (pos); 
+    else if (name=="KeplerianObserver" ||
+	     name=="ZAMO" ||
+	     name=="ObserverAtInfinity") {
+      scr -> observerKind(name);
     }
     else if (name=="Distance")    
       {
@@ -1205,46 +1264,33 @@ SmartPointer<Screen> Screen::Subcontractor(FactoryMessenger* fmp) {
 	string dmax = fmp -> getAttribute("dmax");
 	if (dmax != "") scr -> dMax(atof(dmax.c_str()));
       }
-    else if (name=="PALN")        scr -> PALN        ( atof(tc), unit );
-    else if (name=="Inclination") scr -> inclination ( atof(tc), unit );
-    else if (name=="Argument")    scr -> argument    ( atof(tc), unit );
     else if (name=="FieldOfView") {
       fov = atof(tc); fov_unit=unit; fov_found=1;
     }
-    else if (name=="Resolution")  scr -> resolution  ( atoi(tc) );
     else if (name=="Spectrometer") {
       scr -> spectrometer ((Spectrometer::getSubcontractor(fmp->getAttribute("kind")))(fmp->getChild()));
     }
     else if (name=="Alpha0"){
-      alpha0 = atof(tc); alpha0_found=1;
+      alpha0 = atof(tc); alpha0_found=1; aunit=unit;
     }
     else if (name=="Delta0"){
-      delta0 = atof(tc); delta0_found=1;
+      delta0 = atof(tc); delta0_found=1; dunit=unit;
     }
-    else if (name=="FreqObs") scr -> freqObs(atof(tc), unit);
     else if (name=="SphericalAngles" ||
 	     name=="EquatorialAngles" ||
 	     name=="Rectilinear")  scr -> anglekind(name);
-#   ifdef GYOTO_USE_CFITSIO
-    else if (name=="Mask")        scr -> fitsReadMask(fmp->fullPath(content));
-#   endif
+    else if (scr->setParameter(name, content, unit))
+      throwError("no such Screen Property");
   }
 
+  // Must be processed after Position
   if (tobs_found) scr -> time ( tobs_tmp, tunit );
 
+  // Must be processed after Position and Distance so pix_unit is
+  // defined
   if (fov_found) scr -> fieldOfView ( fov, fov_unit );
-
-  if (alpha0_found) scr -> alpha0(alpha0);
-
-  if (delta0_found) scr -> delta0(delta0);
-
-  int sum_found=fourvel_found+screen1_found
-    +screen2_found+screen3_found;
-
-  if (sum_found>0 && sum_found<4)
-    throwError("In Screen::subContractor: either all four, or no "
-	       "basis vectors should be given");
-
+  if (alpha0_found) scr -> alpha0(alpha0, aunit);
+  if (delta0_found) scr -> delta0(delta0, dunit);
 
 # if GYOTO_DEBUG_ENABLED
   GYOTO_DEBUG_EXPR(scr->dMax());

-- 
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