** 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.23 2001/02/09 14:34:16 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
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;}
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;
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 ();
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;
#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;}
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;