diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-08-15 18:28:46 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-08-15 18:28:46 (GMT) |
commit | cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34 (patch) | |
tree | 4ceaab18de2f893c93beccea36c13f5869ef3466 | |
parent | f1b84838a75b960b66923c3857ba91c6c7d77fea (diff) | |
download | blt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.zip blt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.tar.gz blt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.tar.bz2 |
simplify marker code
-rw-r--r-- | tksao/frame/cpanda.C | 123 | ||||
-rw-r--r-- | tksao/frame/cpanda.h | 7 |
2 files changed, 28 insertions, 102 deletions
diff --git a/tksao/frame/cpanda.C b/tksao/frame/cpanda.C index c6c9287..4135658 100644 --- a/tksao/frame/cpanda.C +++ b/tksao/frame/cpanda.C @@ -494,12 +494,15 @@ 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 a1 = angles_[0]; + double a2 = angles_[numAngles_-1]; + str << type_ << '('; ptr->listFromRef(str,center,sys,sky,format); str << ','; - parent->listAngleFromRef(str,angles_[0],sys,sky); + parent->listAngleFromRef(str,a1,sys,sky); str << ','; - parent->listAngleFromRef(str,angles_[numAngles_-1],angles_[0],sys,sky); + parent->listAngleFromRef(str,a2,a1,sys,sky); str << ','; str << numAngles_-1; str << ','; @@ -522,48 +525,27 @@ void Cpanda::listB(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky, { FitsImage* ptr = parent->findFits(sys,center); - switch (sys) { - case Coord::IMAGE: - case Coord::PHYSICAL: - case Coord::DETECTOR: - case Coord::AMPLIFIER: - listBNonCel(ptr, str, sys, sky, format, conj, strip); - break; - default: - if (ptr->hasWCSCel(sys)) { - listWCS(ptr,center,sys,sky,format); - for (int jj=1; jj<numAngles_; jj++) { - for (int ii=1; ii<numAnnuli_; ii++) { - listPre(str, sys, sky, ptr, strip, 0); - str << type_ << '(' << ra << ',' << dec << ','; - listBCel(ptr, ii, jj, str, sys, sky, format, conj, strip); - } - } - } - else - listBNonCel(ptr, str, sys, sky, format, conj, strip); - } -} - -void Cpanda::listBNonCel(FitsImage* ptr, ostream& str, - Coord::CoordSystem sys, Coord::SkyFrame sky, - Coord::SkyFormat format, int conj, int strip) -{ - Vector vv = ptr->mapFromRef(center,sys); for (int jj=1; jj<numAngles_; jj++) { - double a1 = radToDeg(parent->mapAngleFromRef(angles_[jj-1],sys)); - double a2 = radToDeg(parent->mapAngleFromRef(angles_[jj],sys)); - if (a2<=a1+FLT_EPSILON) - a2 += 360; - + double a1 = angles_[jj-1]; + double a2 = angles_[jj]; for (int ii=1; ii<numAnnuli_; ii++) { listPre(str, sys, sky, ptr, strip, 0); - double r1 = ptr->mapLenFromRef(annuli_[ii-1][0],sys); - double r2 = ptr->mapLenFromRef(annuli_[ii][0],sys); - str << type_ << '(' << setprecision(parent->precLinear_) << vv << ',' - << a1 << ',' << a2 << ",1," - << r1 << ',' << r2 << ",1)"; + str << type_ << '('; + ptr->listFromRef(str,center,sys,sky,format); + str << ','; + parent->listAngleFromRef(str,a1,sys,sky); + str << ','; + parent->listAngleFromRef(str,a2,a1,sys,sky); + str << ",1,"; + ptr->listLenFromRef(str,annuli_[ii-1][0],sys,Coord::ARCSEC); + if (ptr->hasWCSCel(sys)) + str << '"'; + str << ','; + ptr->listLenFromRef(str,annuli_[ii][0],sys,Coord::ARCSEC); + if (ptr->hasWCSCel(sys)) + str << '"'; + str << ",1)"; if (!strip) { if (conj) @@ -573,19 +555,20 @@ void Cpanda::listBNonCel(FitsImage* ptr, ostream& str, if (ii==1 && jj==1 && !strip) { str << '('; for (int kk=0; kk<numAngles_; kk++) { - double ar = parent->mapAngleFromRef(angles_[kk],sys); - str << radToDeg(ar) << ((kk<numAngles_-1) ? ' ' : ')'); + parent->listAngleFromRef(str,angles_[kk],sys,sky); + str << ((kk<numAngles_-1) ? ' ' : ')'); } str << '('; for (int kk=0; kk<numAnnuli_; kk++) { - double rr = ptr->mapLenFromRef(annuli_[kk][0],sys); - str << rr << ((kk<numAnnuli_-1) ? ' ' : ')'); + ptr->listLenFromRef(str,annuli_[kk][0],sys,Coord::ARCSEC); + if (ptr->hasWCSCel(sys)) + str << '"'; + str << ((kk<numAnnuli_-1) ? ' ' : ')'); } listProps(str); } else str << "ignore"; - str << (strip ? ';' : '\n'); } else { @@ -598,56 +581,6 @@ void Cpanda::listBNonCel(FitsImage* ptr, ostream& str, } } -void Cpanda::listBCel(FitsImage* ptr, int ii, int jj, ostream& str, - Coord::CoordSystem sys, Coord::SkyFrame sky, - Coord::SkyFormat format, int conj, int strip) -{ - double a1 = radToDeg(parent->mapAngleFromRef(angles_[jj-1],sys,sky)); - double a2 = radToDeg(parent->mapAngleFromRef(angles_[jj],sys,sky)); - if (a2<=a1+FLT_EPSILON) - a2 += 360; - - double r1 = ptr->mapLenFromRef(annuli_[ii-1][0],sys,Coord::ARCSEC); - double r2 = ptr->mapLenFromRef(annuli_[ii][0],sys,Coord::ARCSEC); - - str << setprecision(parent->precLinear_) << a1 << ',' << a2 << ",1," - << setprecision(parent->precArcsec_) << fixed << r1 << '"' << ',' - << r2 << '"' << ",1)"; - str.unsetf(ios_base::floatfield); - - if (!strip) { - if (conj) - str << " ||"; - - str << " # panda="; - if (ii==1 && jj==1 && !strip) { - str << '(' << setprecision(parent->precLinear_); - for (int kk=0; kk<numAngles_; kk++) { - double aa = parent->mapAngleFromRef(angles_[kk],sys,sky); - str << radToDeg(aa) << ((kk<numAngles_-1) ? ' ' : ')'); - } - - str << '(' << setprecision(parent->precArcsec_) << fixed; - for (int kk=0; kk<numAnnuli_; kk++) { - double rr = ptr->mapLenFromRef(annuli_[kk][0],sys,Coord::ARCSEC); - str << rr << '"' << ((kk<numAnnuli_-1) ? ' ' : ')'); - } - str.unsetf(ios_base::floatfield); - listProps(str); - } - else - str << "ignore"; - - str << (strip ? ';' : '\n'); - } - else { - if (conj) - str << "||"; - else - str << ";"; - } -} - void Cpanda::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format) { diff --git a/tksao/frame/cpanda.h b/tksao/frame/cpanda.h index 3302307..cbff31e 100644 --- a/tksao/frame/cpanda.h +++ b/tksao/frame/cpanda.h @@ -25,13 +25,6 @@ class Cpanda : public BaseEllipse { void listB(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int); - void listBCel(FitsImage*, int, int, ostream&, - Coord::CoordSystem, Coord::SkyFrame, - Coord::SkyFormat, int, int); - void listBNonCel(FitsImage*, ostream&, - Coord::CoordSystem, Coord::SkyFrame, - Coord::SkyFormat, int, int); - int isIn(const Vector& vv, Coord::InternalSystem sys, int nn, int aa); public: |