summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2017-09-14 20:38:35 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2017-09-14 20:38:35 (GMT)
commit58d291ed2083f2af11a19f2e606d426e23b7be47 (patch)
tree4b5d4d961ad75d9c6e15897fcf4e9b70908f55a3
parentfda35a7fbab46564792a2410a12d7d6e85904465 (diff)
downloadblt-58d291ed2083f2af11a19f2e606d426e23b7be47.zip
blt-58d291ed2083f2af11a19f2e606d426e23b7be47.tar.gz
blt-58d291ed2083f2af11a19f2e606d426e23b7be47.tar.bz2
WCS: fixed a problem with calculating the rotation angle of regions with a LINEAR WCS which has been flipped
-rw-r--r--tksao/frame/frmap.C18
1 files changed, 16 insertions, 2 deletions
diff --git a/tksao/frame/frmap.C b/tksao/frame/frmap.C
index 9feec03..85f05ae 100644
--- a/tksao/frame/frmap.C
+++ b/tksao/frame/frmap.C
@@ -21,7 +21,14 @@ double Base::mapAngleFromRef(double angle, Coord::CoordSystem sys,
case Coord::AMPLIFIER:
break;
default:
- rr += ptr->getWCSRotation(sys,sky);
+ if (hasWCSCel(sys))
+ rr += ptr->getWCSRotation(sys,sky);
+ else {
+ Coord::Orientation oo = keyContext->fits->getWCSOrientation(sys, sky);
+ if (oo==Coord::XX) {
+ rr = -(angle + ptr->getWCSRotation(sys,sky) + M_PI);
+ }
+ }
break;
}
@@ -43,7 +50,14 @@ double Base::mapAngleToRef(double angle, Coord::CoordSystem sys,
case Coord::AMPLIFIER:
break;
default:
- rr -= ptr->getWCSRotation(sys,sky);
+ if (hasWCSCel(sys))
+ rr -= ptr->getWCSRotation(sys,sky);
+ else {
+ Coord::Orientation oo = keyContext->fits->getWCSOrientation(sys, sky);
+ if (oo==Coord::XX) {
+ rr = -(angle + ptr->getWCSRotation(sys,sky) + M_PI);
+ }
+ }
break;
}