r557: no message
[ctsim.git] / include / phantom.h
index 286f3ed0e94e68603d37051a989cac8f6803a415..ae5ba45a951ca2391e16700ee498c2161029c691 100644 (file)
@@ -7,9 +7,9 @@
 **   Date Started:  July 1, 1984
 **
 **  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
+**  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: phantom.h,v 1.20 2001/01/02 16:02:12 kevin Exp $
+**  $Id: phantom.h,v 1.24 2001/02/20 04:48:45 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
@@ -69,7 +69,6 @@ class PhantomElement
     double* const xOutline() const {return m_xOutline;}
     double* const yOutline() const {return m_yOutline;}
     const double atten() const {return m_atten;}
-    const double diameter() const {return m_diameter;}
     const double xmin() const {return m_xmin;}
     const double xmax() const {return m_xmax;}
     const double ymin() const {return m_ymin;}
@@ -92,7 +91,6 @@ class PhantomElement
     double *m_x, *m_y;      // ptr to array of points in obj world coord 
     int m_nPoints;                  // number of points in outline arrays 
     double m_xmin, m_xmax, m_ymin, m_ymax;  // pelem limits 
-    double m_diameter;      
     GRFMTX_2D m_xformPhmToObj;        // map from phantom to normalized pelem coords
     GRFMTX_2D m_xformObjToPhm;        // map from normalized pelem coords to phantom coords 
     double* m_xOutline;
@@ -138,9 +136,7 @@ class Phantom
  public:
     static const int PHM_INVALID;
     static const int PHM_HERMAN;
-    static const int PHM_B_HERMAN;
     static const int PHM_SHEPP_LOGAN;
-    static const int PHM_B_SHEPP_LOGAN;
     static const int PHM_UNITPULSE;
 
     Phantom ();
@@ -166,9 +162,9 @@ class Phantom
 
     void addPElem (const char* const composition, const double cx, const double cy, const double u, const double v, const double rot, const double atten);
 
-    void convertToImagefile (ImageFile& im, const int in_nsample, const int trace, const int colStart, const int colCount, bool bStoreAtColumnPos) const;
+    void convertToImagefile (ImageFile& im, double dViewRatio, const int in_nsample, const int trace, const int colStart, const int colCount, bool bStoreAtColumnPos) const;
 
-    void convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const;
+    void convertToImagefile (ImageFile& im, double dViewRatio, const int in_nsample, const int trace) const;
 
     void printDefinitions (std::ostream& os) const;
     void printDefinitions (std::ostringstream& os) const;
@@ -178,23 +174,24 @@ class Phantom
     const std::string& name() const     {return m_name;}
     const int id() const     {return m_id;}
 
-#if HAVE_SGP
+#ifdef HAVE_SGP
     void show () const;
     void show (SGP& sgp) const;
     void draw (SGP& sgp) const;
 #endif
     
     void addStdHerman ();
-    void addStdHermanBordered ();
     void addStdSheppLogan ();
-    void addStdSheppLoganBordered ();
 
     void print (std::ostream& os) const;
     void print (std::ostringstream& os) const;
 
-    const double maxAxisLength () const {return (((m_xmax - m_xmin) > (m_ymax - m_ymin)) ? (m_xmax - m_xmin) : (m_ymax - m_ymin));}
+    double maxAxisLength () const 
+    {  return maxValue<double> (m_xmax - m_xmin, m_ymax - m_ymin); }
+
+    double getDiameterBoundaryCircle() const 
+    { return SQRT2 * maxAxisLength(); }
 
-    const double diameter() const {return m_diameter;}
     const double xmin() const {return m_xmin;}
     const double xmax() const {return m_xmax;}
     const double ymin() const {return m_ymin;}
@@ -214,13 +211,11 @@ class Phantom
     PhantomComposition m_composition;
     int m_nPElem;                          // number of pelems in phantom 
     double m_xmin, m_xmax, m_ymin, m_ymax;  // extent of pelems in pelem coordinates
-    double m_diameter;                        // diameter of object
     mutable std::list<PhantomElement*> m_listPElem;      // pelem lists
     std::string m_name;
     int m_id;
     bool m_fail;
     std::string m_failMessage;
-
     static const char* s_aszPhantomName[];
     static const char* s_aszPhantomTitle[];
     static const int s_iPhantomCount;