diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-08-15 18:03:05 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-08-15 18:03:05 (GMT) |
commit | 94ea6cf5e8519d19ffc1c1444b57490d40ced1ab (patch) | |
tree | 10d0b9b3dfbb683862c1bcdf6a3e58d6bef0e725 | |
parent | a46350b541076441c0d417ddbe333ea717c90083 (diff) | |
download | blt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.zip blt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.tar.gz blt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.tar.bz2 |
simplify marker code
-rw-r--r-- | tksao/frame/cpanda.C | 52 | ||||
-rw-r--r-- | tksao/frame/frmap.C | 10 | ||||
-rw-r--r-- | tksao/frame/frmarker.C | 2 |
3 files changed, 28 insertions, 36 deletions
diff --git a/tksao/frame/cpanda.C b/tksao/frame/cpanda.C index d2fa7bb..c6c9287 100644 --- a/tksao/frame/cpanda.C +++ b/tksao/frame/cpanda.C @@ -494,42 +494,24 @@ void Cpanda::listA(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky, FitsImage* ptr = parent->findFits(sys,center); listPre(str, sys, sky, ptr, strip, 0); - double r1 = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC); - double r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys,Coord::ARCSEC); - double a1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys,sky)); - double a2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys,sky)); - if (a2<=a1+FLT_EPSILON) - a2 += 360; - str << type_ << '('; - switch (sys) { - case Coord::IMAGE: - case Coord::PHYSICAL: - case Coord::DETECTOR: - case Coord::AMPLIFIER: - str << setprecision(parent->precLinear_) - << ptr->mapFromRef(center,sys) << ',' - << setprecision(parent->precAngle_) << a1 << ',' << a2 << ','; - str << numAngles_-1 << ',' - << setprecision(parent->precLenLinear_) << r1 << ',' << r2 << ','; - str << numAnnuli_-1; - break; - default: - listWCS(ptr,center,sys,sky,format); - str << ra << ',' << dec << ',' - << setprecision(parent->precAngle_) << a1 << ',' << a2 << ','; - str << numAngles_-1 << ','; - - if (ptr->hasWCSCel(sys)) { - str << setprecision(parent->precArcsec_) << fixed - << r1 << '"' << ',' << r2 << '"' << ','; - str.unsetf(ios_base::floatfield); - } - else - str << setprecision(parent->precLenLinear_) << r1 << ',' << r2 << ','; - - str << numAnnuli_-1; - } + ptr->listFromRef(str,center,sys,sky,format); + str << ','; + parent->listAngleFromRef(str,angles_[0],sys,sky); + str << ','; + parent->listAngleFromRef(str,angles_[numAngles_-1],angles_[0],sys,sky); + str << ','; + str << numAngles_-1; + str << ','; + ptr->listLenFromRef(str,annuli_[0][0],sys,Coord::ARCSEC); + if (ptr->hasWCSCel(sys)) + str << '"'; + str << ','; + ptr->listLenFromRef(str,annuli_[numAnnuli_-1][0],sys,Coord::ARCSEC); + if (ptr->hasWCSCel(sys)) + str << '"'; + str << ','; + str << numAnnuli_-1; str << ')'; listPost(str, conj, strip); diff --git a/tksao/frame/frmap.C b/tksao/frame/frmap.C index 7fabfd4..72ed4f4 100644 --- a/tksao/frame/frmap.C +++ b/tksao/frame/frmap.C @@ -72,6 +72,16 @@ void Base::listAngleFromRef(ostream& str, double angle, str << setprecision(precAngle_) << radToDeg(mapAngleFromRef(angle,sys,sky)); } +void Base::listAngleFromRef(ostream& str, double angle, double first, + Coord::CoordSystem sys, Coord::SkyFrame sky) +{ + double fir = radToDeg(mapAngleFromRef(first,sys,sky)); + double ang = radToDeg(mapAngleFromRef(angle,sys,sky)); + if (ang<=fir+FLT_EPSILON) + ang += 360; + str << setprecision(precAngle_) << ang; +} + Vector FrameBase::mapFromRef(const Vector& vv, Coord::InternalSystem sys) { switch (sys) { diff --git a/tksao/frame/frmarker.C b/tksao/frame/frmarker.C index 5247e58..128240a 100644 --- a/tksao/frame/frmarker.C +++ b/tksao/frame/frmarker.C @@ -1013,7 +1013,7 @@ void Base::getMarkerAngleCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky Marker* mm=markers->head(); while (mm) { if (mm->getId() == id) { - printDouble(radToDeg(mapAngleFromRef(mm->getAngle(), sys, sky))); + printAngleFromRef(mm->getAngle(), sys, sky); return; } mm=mm->next(); |