** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: phantom.h,v 1.16 2000/12/06 01:46:43 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
#include <list>
#include "ctsupport.h"
-using namespace std;
-
typedef enum {
PELEM_INVALID,
PELEM_RECTANGLE,
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;}\r
+ double* yOutline() {return m_yOutline;}\r
+ double* const xOutline() const {return m_xOutline;}\r
+ double* const yOutline() const {return m_yOutline;}\r
const double atten() const {return m_atten;}
const double diameter() const {return m_diameter;}
const double xmin() const {return m_xmin;}
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;}\r
+\r
+ void printDefinition (std::ostream& os) const;
private:
PhmElemType m_type; // pelem type (box, ellipse, etc)
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);\r
void makeTransformMatrices ();
bool createFromPhantom (const int phmid);
bool createFromFile (const char* const fname);
+\r
+ bool fileWrite (const char* const fname);\r
void addPElem (const PhantomElement& pelem);
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;
+\r
+ void printDefinitions (std::ostream& os) const;\r
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
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));}
const double xmax() const {return m_xmax;}
const double ymin() const {return m_ymin;}
const double ymax() const {return m_ymax;}
- list<PhantomElement*>& listPElem() {return m_listPElem;}
- const list<PhantomElement*>& listPElem() const {return m_listPElem;}
+ std::list<PhantomElement*>& listPElem() {return m_listPElem;}
+ const std::list<PhantomElement*>& listPElem() const {return m_listPElem;}
const int nPElem() const {return m_nPElem;}
static const int getPhantomCount() {return s_iPhantomCount;}
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 list<PhantomElement*> m_listPElem; // pelem lists
- string m_name;
+ mutable std::list<PhantomElement*> 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[];
Phantom& operator= (const Phantom&); // assignment operator
};
-typedef list<PhantomElement*>::iterator PElemIterator;
-typedef list<PhantomElement*>::const_iterator PElemConstIterator;
+typedef std::list<PhantomElement*>::iterator PElemIterator;
+typedef std::list<PhantomElement*>::const_iterator PElemConstIterator;
#endif