X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fscanner.h;h=c446280fb799ef4c107bf503fac2ac7e7fabfa91;hb=286d655a25df2668bd65ad365676c6ecc94415a1;hp=000aba1860117dc913d71f23364deb39f23f0b58;hpb=04c6595c9b3a36151671fd8f697f8a9a38dce735;p=ctsim.git diff --git a/include/scanner.h b/include/scanner.h index 000aba1..c446280 100644 --- a/include/scanner.h +++ b/include/scanner.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: scanner.h,v 1.7 2000/07/20 11:17:31 kevin Exp $ +** $Id: scanner.h,v 1.8 2000/07/22 15:45:33 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -61,24 +61,16 @@ class DetectorArray DetectorArray (const DetectorArray& rhs); // copy constructor }; + class Scanner { public: - typedef enum { - GEOMETRY_INVALID, - GEOMETRY_PARALLEL, - GEOMETRY_EQUILINEAR, - GEOMETRY_EQUIANGULAR, - } GeometryID; - - static const char GEOMETRY_PARALLEL_STR[]; - static const char GEOMETRY_EQUILINEAR_STR[]; - static const char GEOMETRY_EQUIANGULAR_STR[]; - - static const char GEOMETRY_PARALLEL_TITLE_STR[]; - static const char GEOMETRY_EQUILINEAR_TITLE_STR[]; - static const char GEOMETRY_EQUIANGULAR_TITLE_STR[]; + static const int Scanner::GEOMETRY_INVALID; + static const int Scanner::GEOMETRY_PARALLEL; + static const int Scanner::GEOMETRY_EQUILINEAR; + static const int Scanner::GEOMETRY_EQUIANGULAR; + Scanner (const Phantom& phm, const char* const geometryName, int nDet, int nView, int nSample, const double rot_anglen); ~Scanner(); @@ -95,11 +87,17 @@ class Scanner const double detInc(void) const {return m_detInc;} const double radius(void) const {return m_radius;} - + static const int getGeometryCount() {return s_iGeometryCount;} + static const char** getGeometryNameArray() {return s_aszGeometryName;} + static const char** getGeometryTitleArray() {return s_aszGeometryTitle;} + static int convertGeometryNameToID (const char* const geometryName); + static const char* convertGeometryIDToName (const int idGeometry); + static const char* convertGeometryIDToTitle (const int idGeometry); + private: bool m_fail; string m_failMessage; - GeometryID m_idGeometry; + int m_idGeometry; unsigned int m_nDet; /* Number of detectors in array */ unsigned int m_nView; /* Number of rotated views */ unsigned int m_nSample; /* Number of rays per detector */ @@ -116,10 +114,11 @@ class Scanner double angle; /* Starting angle */ } m_initPos; + static const char* s_aszGeometryName[]; + static const char* s_aszGeometryTitle[]; + static const int s_iGeometryCount; static const int N_EXTRA_DETECTORS=4; /* Number of extra detectors widths when calculating detlen */ - static GeometryID convertGeometryNameToID (const char* const geometryName); - void projectSingleView (const Phantom& phm, DetectorArray& darray, const double xd1, const double yd1, const double xd2, const double yd2, const double xs1, const double ys1, const double xs2, const double ys2); double projectSingleLine (const Phantom& phm, const double x1, const double y1, const double x2, const double y2);