X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fphantom.h;h=7d9b43392837c47e7b3cdd22a803095eaa346b78;hp=bc245ee7512e7a5477e875399ba8574aa712c955;hb=9f7d379c2b03f3c09907cfd885072433e0428042;hpb=01ee1e0085970643368d65c38b09008927e24cd5 diff --git a/include/phantom.h b/include/phantom.h index bc245ee..7d9b433 100644 --- a/include/phantom.h +++ b/include/phantom.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: phantom.h,v 1.15 2000/12/04 05:36:57 kevin Exp $ +** $Id: phantom.h,v 1.18 2001/01/02 05:33:37 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 @@ -28,13 +28,9 @@ #ifndef PHANTOM_H #define PHANTOM_H -#ifndef MSVC -#include -#endif +#include #include "ctsupport.h" -using namespace std; - typedef enum { PELEM_INVALID, PELEM_RECTANGLE, @@ -68,8 +64,10 @@ 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* 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;} @@ -80,7 +78,9 @@ 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; private: PhmElemType m_type; // pelem type (box, ellipse, etc) @@ -101,7 +101,8 @@ class PhantomElement static const int POINTS_PER_CIRCLE; static const double SCALE_PELEM_EXTENT; // increase pelem limits by 0.5% - static PhmElemType PhantomElement::convertNameToType (const char* const typeName); + static PhmElemType convertNameToType (const char* const typeName); + static const char* const convertTypeToName (PhmElemType iType); void makeTransformMatrices (); @@ -157,6 +158,8 @@ class Phantom bool createFromPhantom (const int phmid); bool createFromFile (const char* const fname); + + bool fileWrite (const char* const fname); void addPElem (const PhantomElement& pelem); @@ -165,10 +168,12 @@ class Phantom void convertToImagefile (ImageFile& im, 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 printDefinitions (std::ostream& os) const; bool fail() const {return m_fail;} - const string& failMessage() const {return m_failMessage;} - const string& name() const {return m_name;} + const std::string& failMessage() const {return m_failMessage;} + const std::string& name() const {return m_name;} const int id() const {return m_id;} #if HAVE_SGP @@ -182,7 +187,7 @@ class Phantom void addStdSheppLogan (); void addStdSheppLoganBordered (); - void print () const; + void print (std::ostream& os) const; const double maxAxisLength () const {return (((m_xmax - m_xmin) > (m_ymax - m_ymin)) ? (m_xmax - m_xmin) : (m_ymax - m_ymin));} @@ -191,8 +196,8 @@ class Phantom const double xmax() const {return m_xmax;} const double ymin() const {return m_ymin;} const double ymax() const {return m_ymax;} - slist& listPElem() {return m_listPElem;} - const slist& listPElem() const {return m_listPElem;} + std::list& listPElem() {return m_listPElem;} + const std::list& listPElem() const {return m_listPElem;} const int nPElem() const {return m_nPElem;} static const int getPhantomCount() {return s_iPhantomCount;} @@ -207,11 +212,11 @@ class Phantom 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 slist m_listPElem; // pelem lists - string m_name; + mutable std::list m_listPElem; // pelem lists + std::string m_name; int m_id; bool m_fail; - string m_failMessage; + std::string m_failMessage; static const char* s_aszPhantomName[]; static const char* s_aszPhantomTitle[]; @@ -223,7 +228,7 @@ class Phantom Phantom& operator= (const Phantom&); // assignment operator }; -typedef slist::iterator PElemIterator; -typedef slist::const_iterator PElemConstIterator; +typedef std::list::iterator PElemIterator; +typedef std::list::const_iterator PElemConstIterator; #endif