summaryrefslogtreecommitdiffstats
path: root/tksao/frame/basecommand.C
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2018-08-22 15:47:37 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2018-08-22 15:47:37 (GMT)
commit15a560029b86a2c6022ad27896111573011d3891 (patch)
treea9c73f4ed05d69f59ca44b7dd30d17697b026032 /tksao/frame/basecommand.C
parentdfd89d763cadd734210f30a557ccff9f36ecd84c (diff)
downloadblt-15a560029b86a2c6022ad27896111573011d3891.zip
blt-15a560029b86a2c6022ad27896111573011d3891.tar.gz
blt-15a560029b86a2c6022ad27896111573011d3891.tar.bz2
simplify wcs code
Diffstat (limited to 'tksao/frame/basecommand.C')
-rw-r--r--tksao/frame/basecommand.C23
1 files changed, 11 insertions, 12 deletions
diff --git a/tksao/frame/basecommand.C b/tksao/frame/basecommand.C
index 49e65c0..4871fba 100644
--- a/tksao/frame/basecommand.C
+++ b/tksao/frame/basecommand.C
@@ -562,7 +562,7 @@ void Base::crop3dCmd(double z0, double z1, Coord::CoordSystem sys,
return;
// center in IMAGE
- Vector3d cc = Vector3d(ptr->center(),1) * Translate3d(-.5,-.5,-.5);
+ Vector3d cc = Vector3d(ptr->getWCSCRPIX(sys),1) * Translate3d(-.5,-.5,-.5);
Vector3d wcc = ptr->mapFromRef(cc,sys,sky);
Vector3d min = ptr->mapToRef(Vector3d(wcc[0],wcc[1],z0),sys,sky);
Vector3d max = ptr->mapToRef(Vector3d(wcc[0],wcc[1],z1),sys,sky);
@@ -1420,10 +1420,10 @@ void Base::getCrop3dCmd(Coord::CoordSystem sys, Coord::SkyFrame sky)
// need to move from edge to center of pixel
Vector3d rmin =
- Vector3d(ptr->center(),zparams->zmin) * Translate3d(.5,.5,.5);
+ Vector3d(ptr->getWCSCRPIX(sys),zparams->zmin) * Translate3d(.5,.5,.5);
// need to move from edge to center of pixel
Vector3d rmax =
- Vector3d(ptr->center(),zparams->zmax) * Translate3d(-.5,-.5,-.5);
+ Vector3d(ptr->getWCSCRPIX(sys),zparams->zmax) * Translate3d(-.5,-.5,-.5);
Vector3d min = ptr->mapFromRef(rmin,sys,sky);
Vector3d max = ptr->mapFromRef(rmax,sys,sky);
@@ -1778,7 +1778,7 @@ void Base::getFitsSliceFromImageCmd(int ss, Coord::CoordSystem sys,
{
if (currentContext->cfits) {
FitsImage* ptr = currentContext->fits;
- Vector3d dd = Vector3d(ptr->center(),ss) * Translate3d(-.5,-.5,-.5);
+ Vector3d dd = Vector3d(ptr->getWCSCRPIX(sys),ss) * Translate3d(-.5,-.5,-.5);
Vector3d out = ptr->mapFromRef(dd,sys,sky);
printDouble(out[2]);
}
@@ -1791,10 +1791,10 @@ void Base::getFitsSliceToImageCmd(double dd, Coord::CoordSystem sys,
{
if (currentContext->cfits) {
FitsImage* ptr = currentContext->fits;
- Vector3d cc = Vector3d(ptr->center(),1) * Translate3d(-.5,-.5,-.5);
+ Vector3d cc = Vector3d(ptr->getWCSCRPIX(sys),1) * Translate3d(-.5,-.5,-.5);
Vector3d wcc = ptr->mapFromRef(cc,sys,sky);
- Vector3d out = ptr->mapToRef(Vector3d(wcc[0],wcc[1],dd),sys,sky)
- * Translate3d(.5,.5,.5);
+ Vector3d oo = ptr->mapToRef(Vector3d(wcc[0],wcc[1],dd),sys,sky);
+ Vector3d out = oo * Translate3d(.5,.5,.5);
printInteger(out[2]);
}
else
@@ -2866,14 +2866,13 @@ void Base::sliceCmd(double dd, Coord::CoordSystem sys, Coord::SkyFrame sky)
return;
FitsImage* ptr = currentContext->fits;
- Vector3d cc = Vector3d(ptr->center(),1) * Translate3d(-.5,-.5,-.5);
+ Vector3d cc = Vector3d(ptr->getWCSCRPIX(sys),1) * Translate3d(-.5,-.5,-.5);
Vector3d wcc = ptr->mapFromRef(cc,sys,sky);
- Vector3d out = ptr->mapToRef(Vector3d(wcc[0],wcc[1],dd),sys,sky)
- * Translate3d(.5,.5,.5);
- int ss = out[2];
+ Vector3d oo = ptr->mapToRef(Vector3d(wcc[0],wcc[1],dd),sys,sky);
+ Vector3d out = oo * Translate3d(.5,.5,.5);
// IMAGE (ranges 1-n)
- setSlice(2,ss);
+ setSlice(2,out[2]);
updateMagnifier();
}