X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fprojections.h;h=610cae76d3dc9b63189fba45a15e65739e3bfc9b;hb=e98a8a9d72a7b919debbbc9d1b0f237fe71c0fb3;hp=a09f481c351db0006168b1743b6a83a2b1ad89ce;hpb=9f29c8b32c972db1178d6f8551d5cd57ceb67083;p=ctsim.git diff --git a/include/projections.h b/include/projections.h index a09f481..610cae7 100644 --- a/include/projections.h +++ b/include/projections.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: projections.h,v 1.21 2001/01/28 19:10:18 kevin Exp $ +** $Id: projections.h,v 1.27 2001/03/02 02:08:14 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -54,13 +54,14 @@ class Projections ~Projections (); static const int getInterpCount() {return s_iInterpCount;} - static const char** getInterpNameArray() {return s_aszInterpName;} - static const char** getInterpTitleArray() {return s_aszInterpTitle;} + static const char* const* getInterpNameArray() {return s_aszInterpName;} + static const char* const* getInterpTitleArray() {return s_aszInterpTitle;} static int convertInterpNameToID (const char* const interpName); static const char* convertInterpIDToName (const int interpID); static const char* convertInterpIDToTitle (const int interpID); void initFromScanner (const Scanner& scanner); + bool initFromSomatomAR_STAR (int iNViews, int iNDets, unsigned char* pData, unsigned long lDataLength); void printProjectionData (int startView, int endView); void printProjectionData (); @@ -75,7 +76,7 @@ class Projections bool convertPolar (ImageFile& rIF, int iInterpolation); bool convertFFTPolar (ImageFile& rIF, int iInterpolation, int iZeropad); - void calcArrayPolarCoordinates (unsigned int nx, unsigned int ny, double** ppdView, double** ppdDet); + bool calcArrayPolarCoordinates (unsigned int nx, unsigned int ny, double** ppdView, double** ppdDet); void interpolatePolar (ImageFileArray& v, ImageFileArray& vImag, unsigned int nx, unsigned int ny, std::complex** ppcDetValue, double** ppdDet, double** ppdView, unsigned int nView, unsigned int nDet, int iInterpolate); @@ -84,7 +85,6 @@ class Projections void setNView (int nView); // used in MPI to restrict # of views void setRotInc (double rotInc) { m_rotInc = rotInc;} void setDetInc (double detInc) { m_detInc = detInc;} - void setPhmLen (double phmLen) { m_phmLen = phmLen;} void setCalcTime (double calcTime) {m_calcTime = calcTime;} void setRemark (const char* remark) {m_remark = remark; m_label.setLabelString(remark);} void setRemark (const std::string& remark) {setRemark(remark.c_str());} @@ -92,15 +92,18 @@ class Projections double detStart() const {return m_detStart;} double rotStart() const {return m_rotStart;} double calcTime() const {return m_calcTime;} - double phmLen() const {return m_phmLen;} + double viewLen() const {return m_dViewDiameter / SQRT2;} const char* remark() const {return m_remark.c_str();} double detInc() const {return m_detInc;} double rotInc() const {return m_rotInc;} int nDet() const {return m_nDet;} int nView() const {return m_nView;} int geometry() const {return m_geometry;} - double focalLength() const {return m_focalLength;} - double fieldOfView() const {return m_fieldOfView;} + double focalLength() const {return m_dFocalLength;} + double sourceDetectorLength() const { return m_dSourceDetectorLength;} + + double phmLen() const { return m_dViewDiameter / SQRT2; } + void setPhmLen(double phmLen) { m_dViewDiameter = phmLen * SQRT2; } const std::string& getFilename() const {return m_filename;} Array2dFileLabel& getLabel() {return m_label;} @@ -130,9 +133,10 @@ class Projections double m_rotInc; // angle between rotations double m_detStart; // distance of beginning detector to center phantom double m_detInc; // increment between detectors - double m_phmLen; // Length of phantom edge (phm is square) - double m_focalLength; - double m_fieldOfView; + double m_dFocalLength; + double m_dSourceDetectorLength; + double m_dViewDiameter; + double m_dFanBeamAngle; kuint32 m_year; // Creation date & time kuint32 m_month; kuint32 m_day; @@ -144,8 +148,8 @@ class Projections const static kuint16 m_signature; - static const char* s_aszInterpName[]; - static const char* s_aszInterpTitle[]; + static const char* const s_aszInterpName[]; + static const char* const s_aszInterpTitle[]; static const int s_iInterpCount; bool headerWrite (fnetorderstream& fs);