X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fphantom.h;h=286f3ed0e94e68603d37051a989cac8f6803a415;hp=e30ce87934c8234344b895d96be5c9cd56dd6233;hb=c00c639073653fac7463a88f2b000f263236550d;hpb=dc034c9d0b7d9c3874a324a4c2c189a02945adc8 diff --git a/include/phantom.h b/include/phantom.h index e30ce87..286f3ed 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.17 2000/12/16 06:12:47 kevin Exp $ +** $Id: phantom.h,v 1.20 2001/01/02 16:02:12 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 @@ -66,6 +66,8 @@ class PhantomElement 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;} const double atten() const {return m_atten;} const double diameter() const {return m_diameter;} const double xmin() const {return m_xmin;} @@ -78,6 +80,9 @@ class PhantomElement const double u() const {return m_u;} const double v() const {return m_v;} + void printDefinition (std::ostream& os) const; + void printDefinition (std::ostringstream& os) const; + private: PhmElemType m_type; // pelem type (box, ellipse, etc) double m_cx, m_cy; // center of pelem @@ -97,7 +102,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 (); @@ -154,6 +160,8 @@ class Phantom bool createFromFile (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); @@ -162,6 +170,9 @@ class Phantom void convertToImagefile (ImageFile& im, const int in_nsample, const int trace) 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;} const std::string& name() const {return m_name;} @@ -178,7 +189,8 @@ class Phantom void addStdSheppLogan (); void addStdSheppLoganBordered (); - void print () const; + 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));} @@ -187,7 +199,7 @@ class Phantom const double xmax() const {return m_xmax;} const double ymin() const {return m_ymin;} const double ymax() const {return m_ymax;} - std::list& listPElem() {return m_listPElem;} + std::list& listPElem() {return m_listPElem;} const std::list& listPElem() const {return m_listPElem;} const int nPElem() const {return m_nPElem;}