r164: *** empty log message ***
[ctsim.git] / libctsim / phantom.cpp
index f8b1278cef478037b28352f45537e8e8185b22ce..ac0fa4a83f76abc278d8f712b6941e13f2d6aa8b 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: phantom.cpp,v 1.11 2000/07/28 08:28:08 kevin Exp $
+**  $Id: phantom.cpp,v 1.13 2000/07/29 19:50:08 kevin Exp $
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -328,17 +328,16 @@ void
 Phantom::draw (SGP& sgp) const
 {
   double wsize = m_xmax - m_xmin;
-  double xmin = m_xmin;
-  double ymin = m_ymin;
-
-  if ((m_ymax - m_ymin) > wsize)
+  if ((m_ymax - m_ymin) > wsize) 
       wsize = m_ymax - m_ymin;
-  wsize *= 1.1;
+  wsize *= 1.01;
+  double halfWindow = wsize / 2;
+
+  double xcent = m_xmin + (m_xmax - m_xmin) / 2;
+  double ycent = m_ymin + (m_ymax - m_ymin) / 2;
+
+  sgp.setWindow (xcent - halfWindow, ycent - halfWindow, xcent + halfWindow, ycent + halfWindow);
 
-  double xmax = xmin + wsize;
-  double ymax = ymin + wsize; 
-  
-  sgp.setWindow (xmin, ymin, xmax, ymax);
   for (PElemIterator i = m_listPElem.begin(); i != m_listPElem.end(); i++)
     sgp.polylineAbs ((*i)->xOutline(), (*i)->yOutline(), (*i)->nOutlinePoints());
 }
@@ -374,7 +373,7 @@ void
 Phantom::addStdRowlandBordered ()
 {
   addStdRowland ();
-  addPElem ("ellipse", 0.000, 0.0000, 0.7500, 1.000, 0.0, 0.00);
+  addPElem ("rectangle", 0.000, 0.0000, 0.7500, 1.000, 0.0, 0.00);
 }
 
 /* NAME
@@ -409,7 +408,7 @@ void
 Phantom::addStdHermanBordered ()
 {
   addStdHerman();
-  addPElem ("ellipse",  0.000, 0.000, 8.650, 8.650,  0.00, 0.000);
+  addPElem ("rectangle",  0.000, 0.000, 8.650, 8.650,  0.00, 0.000);
 }