** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: phantom.h,v 1.11 2000/07/28 08:28:08 kevin Exp $
+** $Id: phantom.h,v 1.16 2000/12/06 01:46:43 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
#ifndef PHANTOM_H
#define PHANTOM_H
-#include <slist>
+#include <list>
#include "ctsupport.h"
using namespace std;
double* m_yOutline;
double m_rectLimits[4];
- static const int POINTS_PER_CIRCLE = 360;
- static const double SCALE_PELEM_EXTENT=0.005; // increase pelem limits by 0.5%
+ 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);
public:
static const int PHM_INVALID;
static const int PHM_HERMAN;
- static const int PHM_BHERMAN;
- static const int PHM_ROWLAND;
- static const int PHM_BROWLAND;
+ 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) const;
+ 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;
#if HAVE_SGP
void show () const;
+ void show (SGP& sgp) const;
void draw (SGP& sgp) const;
#endif
void addStdHerman ();
void addStdHermanBordered ();
- void addStdRowland ();
- void addStdRowlandBordered ();
+ void addStdSheppLogan ();
+ void addStdSheppLoganBordered ();
void print () const;
const double xmax() const {return m_xmax;}
const double ymin() const {return m_ymin;}
const double ymax() const {return m_ymax;}
- slist<PhantomElement*>& listPElem() {return m_listPElem;}
- const slist<PhantomElement*>& listPElem() const {return m_listPElem;}
+ list<PhantomElement*>& listPElem() {return m_listPElem;}
+ const 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 slist<PhantomElement*> m_listPElem; // pelem lists
+ mutable list<PhantomElement*> m_listPElem; // pelem lists
string m_name;
int m_id;
bool m_fail;
Phantom& operator= (const Phantom&); // assignment operator
};
-typedef slist<PhantomElement*>::iterator PElemIterator;
-typedef slist<PhantomElement*>::const_iterator PElemConstIterator;
+typedef list<PhantomElement*>::iterator PElemIterator;
+typedef list<PhantomElement*>::const_iterator PElemConstIterator;
#endif