X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fscanner.h;h=79eee68d0969287709637f61dc2f931e4d1d5d17;hp=550573a68e6ecdaccfd662d4ac4a36777e889407;hb=1e88cf0f7fa4f690ea9f110e8ed3f2b5338d0a10;hpb=74a34e63a9a356e1467acdba65497ab15190dde0 diff --git a/include/scanner.h b/include/scanner.h index 550573a..79eee68 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.11 2000/08/02 18:06:00 kevin Exp $ +** $Id: scanner.h,v 1.12 2000/08/25 15:59:13 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -74,10 +74,12 @@ class Scanner 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 (const Phantom& phm, const char* const geometryName, int nDet, int nView, int nSample, const double rot_anglen, double dFieldOfView, double dFocalLength); ~Scanner(); - void collectProjections (Projections& proj, const Phantom& phm, const int start_view = 0, const int trace = TRACE_NONE, SGP* pSGP = NULL); + void collectProjections (Projections& proj, const Phantom& phm, const int trace = TRACE_NONE, SGP* pSGP = NULL); + + void collectProjections (Projections& proj, const Phantom& phm, const int iStartView, const int iNumViews, bool bStoreAtViewPosition, const int trace = TRACE_NONE, SGP* pSGP = NULL); void setNView (int nView); @@ -88,7 +90,7 @@ class Scanner const double phmLen(void) const {return m_phmLen;} const double rotInc(void) const {return m_rotInc;} const double detInc(void) const {return m_detInc;} - const double radius(void) const {return m_radius;} + const double detLen(void) const {return m_detLen;} static const int getGeometryCount() {return s_iGeometryCount;} static const char** getGeometryNameArray() {return s_aszGeometryName;} @@ -104,12 +106,13 @@ class Scanner 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 */ - double m_detLen; /* Total length of detector array */ - double m_rotLen; /* Rotation angle length in radians (norm 2PI) */ - double m_detInc; /* Increment between centers of detectors */ - double m_rotInc; /* Increment in rotation angle between views */ - double m_radius; /* Radius of rotation. Distance from center of phm to center of det */ - double m_phmLen; /* Maximum Length of phantom or area of interest */ + double m_dFieldOfView; // Field of View + double m_dFocalLength; // Focal Length + double m_detLen; // Total length of detector array + double m_rotLen; // Rotation angle length in radians (norm 2PI) + double m_detInc; // Increment between centers of detectors + double m_rotInc; // Increment in rotation angle between views + double m_phmLen; // Maximum Length of phantom or area of interest int m_trace; struct { double xd1,yd1,xd2,yd2; /* Coordinates of detector endpoints */ @@ -120,7 +123,6 @@ class Scanner static const char* s_aszGeometryName[]; static const char* s_aszGeometryTitle[]; static const int s_iGeometryCount; - static const int N_EXTRA_DETECTORS=0; // Number of extra detectors widths when calculating detlen 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, SGP* pSGP); @@ -128,7 +130,7 @@ class Scanner double projectLineAgainstPElem (const PhantomElement& pelem, const double x1, const double y1, const double x2, const double y2, SGP* pSGP); - void traceShowParam (const char *label, const char *fmt, int row, int color, ...); + void traceShowParam (SGP* pSGP, const char *label, const char *fmt, int row, int color, ...); };