summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-08-15 18:28:46 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-08-15 18:28:46 (GMT)
commitcb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34 (patch)
tree4ceaab18de2f893c93beccea36c13f5869ef3466
parentf1b84838a75b960b66923c3857ba91c6c7d77fea (diff)
downloadblt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.zip
blt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.tar.gz
blt-cb5bd6fcc3d2374d7a54aac461cdcbc8bb48bb34.tar.bz2
simplify marker code
-rw-r--r--tksao/frame/cpanda.C123
-rw-r--r--tksao/frame/cpanda.h7
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: