X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fphantom.h;h=ae5ba45a951ca2391e16700ee498c2161029c691;hp=f67679c6f1ee1315685353b9f28836c58edf7972;hb=3f6c94c6bd432ad7b7a55ad991d3b8223fb44f18;hpb=9f29c8b32c972db1178d6f8551d5cd57ceb67083 diff --git a/include/phantom.h b/include/phantom.h index f67679c..ae5ba45 100644 --- a/include/phantom.h +++ b/include/phantom.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: phantom.h,v 1.21 2001/01/28 19:10:18 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 (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 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;