X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fphantom.h;h=5769b258610f162d2e0b49545cb943551be135a2;hb=c5e7140bd08b8c8f527713e8dc861bcb7ee5f633;hp=f8187c2f3d0d303cb40ac24625ad7ef875932682;hpb=4076fbc077adfd9ee610beef09b52d9e12c14abb;p=ctsim.git diff --git a/include/phantom.h b/include/phantom.h index f8187c2..5769b25 100644 --- a/include/phantom.h +++ b/include/phantom.h @@ -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.19 2001/01/02 07:47:36 kevin Exp $ +** $Id: phantom.h,v 1.22 2001/02/08 06:25:07 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 @@ -64,12 +64,11 @@ class PhantomElement const int nOutlinePoints() const {return m_nPoints;} double* rectLimits() {return m_rectLimits;} - double* xOutline() {return m_xOutline;} - double* yOutline() {return m_yOutline;} - double* const xOutline() const {return m_xOutline;} - double* const yOutline() const {return m_yOutline;} + double* xOutline() {return m_xOutline;} + double* yOutline() {return m_yOutline;} + 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;} @@ -78,8 +77,8 @@ class PhantomElement const double cx() const {return m_cx;} const double cy() const {return m_cy;} const double u() const {return m_u;} - const double v() const {return m_v;} - + const double v() const {return m_v;} + void printDefinition (std::ostream& os) const; void printDefinition (std::ostringstream& os) const; @@ -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; @@ -103,7 +101,7 @@ class PhantomElement static const double SCALE_PELEM_EXTENT; // increase pelem limits by 0.5% static PhmElemType convertNameToType (const char* const typeName); - static const char* const convertTypeToName (PhmElemType iType); + static const char* const convertTypeToName (PhmElemType iType); void makeTransformMatrices (); @@ -159,19 +157,19 @@ class Phantom bool createFromPhantom (const int phmid); bool createFromFile (const char* const fname); - - bool fileWrite (const char* const fname); + + bool fileWrite (const char* const fname); void addPElem (const PhantomElement& pelem); 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, double dViewRatio, const int in_nsample, const int trace) const; - void convertToImagefile (ImageFile& im, const int in_nsample, const int trace) const; - - void printDefinitions (std::ostream& os) const; - void printDefinitions (std::ostringstream& os) const; + void printDefinitions (std::ostream& os) const; + void printDefinitions (std::ostringstream& os) const; bool fail() const {return m_fail;} const std::string& failMessage() const {return m_failMessage;} @@ -192,9 +190,12 @@ class Phantom 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 +215,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;