summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-08-15 18:03:05 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-08-15 18:03:05 (GMT)
commit94ea6cf5e8519d19ffc1c1444b57490d40ced1ab (patch)
tree10d0b9b3dfbb683862c1bcdf6a3e58d6bef0e725
parenta46350b541076441c0d417ddbe333ea717c90083 (diff)
downloadblt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.zip
blt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.tar.gz
blt-94ea6cf5e8519d19ffc1c1444b57490d40ced1ab.tar.bz2
simplify marker code
-rw-r--r--tksao/frame/cpanda.C52
-rw-r--r--tksao/frame/frmap.C10
-rw-r--r--tksao/frame/frmarker.C2
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();