summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2017-09-05 20:28:32 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2017-09-05 20:28:32 (GMT)
commit9e8d8f8c877066dbda78ed8b6c991fd3947d7e32 (patch)
treead20592efcd21f678740d346e169b710aa9fb577
parentce22e6a1f37e5db1dd6cfc4fefdf4d9ab2cab036 (diff)
downloadblt-9e8d8f8c877066dbda78ed8b6c991fd3947d7e32.zip
blt-9e8d8f8c877066dbda78ed8b6c991fd3947d7e32.tar.gz
blt-9e8d8f8c877066dbda78ed8b6c991fd3947d7e32.tar.bz2
new AST support
-rw-r--r--tksao/frame/fitsimage.C30
1 files changed, 30 insertions, 0 deletions
diff --git a/tksao/frame/fitsimage.C b/tksao/frame/fitsimage.C
index ae73e0e..a745cfb 100644
--- a/tksao/frame/fitsimage.C
+++ b/tksao/frame/fitsimage.C
@@ -2867,6 +2867,7 @@ void FitsImage::updatePS(Matrix3d ps)
// WCS
+#ifndef NEWWCS
Vector FitsImage::getWCScdelt(Coord::CoordSystem sys)
{
if (hasWCS(sys)) {
@@ -2881,6 +2882,35 @@ Vector FitsImage::getWCScdelt(Coord::CoordSystem sys)
else
return Vector();
}
+#else
+Vector FitsImage::getWCScdelt(Coord::CoordSystem sys)
+{
+ int ss = sys-Coord::WCS;
+ if (!(ss>=0 && ast_ && ast_[ss]))
+ return Vector();
+
+ astClearStatus; // just to make sure
+ astBegin; // start memory management
+
+ Vector cc = center();
+ Vector wcc;
+ astTran2(ast_[ss], 1, cc.v, cc.v+1, 1, wcc.v, wcc.v+1);
+ Vector oo = cc+Vector(1,1);
+ Vector woo;
+ astTran2(ast_[ss], 1, oo.v, oo.v+1, 1, woo.v, woo.v+1);
+
+ double dd = astDistance(ast_[ss], wcc.v, woo.v);
+ astEnd; // now, clean up memory
+ if (dd != AST__BAD) {
+ if (astIsASkyFrame(astGetFrame(ast_[ss], AST__CURRENT)))
+ dd *= 180./M_PI;
+ dd /=sqrt(2);
+ return Vector(dd,dd);
+ }
+
+ return Vector(radToDeg(dd)/sqrt(2),0);
+}
+#endif
#ifndef NEWWCS
Coord::Orientation FitsImage::getWCSOrientation(Coord::CoordSystem sys,