X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=include%2Fbackprojectors.h;h=e3418dfe192d783c165d4db6be4b8ec2c20a8939;hb=01ee1e0085970643368d65c38b09008927e24cd5;hp=ac609daa2d6bd2ee11bb8d3dc17d6a309d511b97;hpb=286d655a25df2668bd65ad365676c6ecc94415a1;p=ctsim.git diff --git a/include/backprojectors.h b/include/backprojectors.h index ac609da..e3418df 100644 --- a/include/backprojectors.h +++ b/include/backprojectors.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: backprojectors.h,v 1.12 2000/07/22 15:45:33 kevin Exp $ +** $Id: backprojectors.h,v 1.16 2000/12/03 15:16:17 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 @@ -126,12 +126,13 @@ class Backproject kint32 nx; kint32 ny; double detInc; - double rotInc; + double rotScale; int iDetCenter; // index refering to L=0 projection int nDet; double xMin, xMax, yMin, yMax; // Retangular coords of phantom double xInc, yInc; // size of cells int m_interpFactor; + double m_dFocalLength; private: Backproject (const Backproject& rhs); @@ -143,7 +144,7 @@ class BackprojectTrig : public Backproject { public: BackprojectTrig (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) - : Backproject::Backproject (proj, im, interpType, interpFactor) + : Backproject::Backproject (proj, im, interpID, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -154,11 +155,11 @@ class BackprojectTable : public Backproject { public: BackprojectTable (const Projections& proj, ImageFile& im, int interpID, const int interpFactor); - ~BackprojectTable (); + virtual ~BackprojectTable (); void BackprojectView (const double* const t, double view_angle); - private: + protected: Array2d arrayR; Array2d arrayPhi; kfloat64** r; @@ -184,7 +185,7 @@ class BackprojectDiff2 : public BackprojectDiff { public: BackprojectDiff2 (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) - : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpID, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -194,7 +195,7 @@ class BackprojectIntDiff2 : public BackprojectDiff { public: BackprojectIntDiff2 (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) - : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpID, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -204,12 +205,38 @@ class BackprojectIntDiff2 : public BackprojectDiff class BackprojectIntDiff3 : public BackprojectDiff { public: - BackprojectIntDiff3 (const Projections& proj, ImageFile& im, int interpType, const int interpFactor) - : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) + BackprojectIntDiff3 (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpID, interpFactor) {} void BackprojectView (const double* const t, double view_angle); }; +class BackprojectEquilinear : public BackprojectTable +{ + public: + BackprojectEquilinear (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) + : BackprojectTable::BackprojectTable (proj, im, interpID, interpFactor) + {} + + void BackprojectView (const double* const t, double view_angle); + + virtual ~BackprojectEquilinear() + {} +}; + +class BackprojectEquiangular : public BackprojectTable +{ + public: + BackprojectEquiangular (const Projections& proj, ImageFile& im, int interpID, const int interpFactor) + : BackprojectTable::BackprojectTable (proj, im, interpID, interpFactor) + {} + + void BackprojectView (const double* const t, double view_angle); + + virtual ~BackprojectEquiangular() + {} +}; + #endif