** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: backprojectors.h,v 1.1 2000/06/10 23:00:17 kevin Exp $
+** $Id: backprojectors.h,v 1.3 2000/06/17 20:12:14 kevin Exp $
** $Log: backprojectors.h,v $
+** Revision 1.3 2000/06/17 20:12:14 kevin
+** Converted Scanner and Projections to C++
+**
+** Revision 1.2 2000/06/13 16:20:31 kevin
+** finished c++ conversions
+**
** Revision 1.1 2000/06/10 23:00:17 kevin
** *** empty log message ***
**
class Backproject
{
public:
- Backproject (const RAYSUM* rs, ImageFile& im, InterpolationType interpType);
+ Backproject (const Projections& proj, ImageFile& im, InterpolationType interpType);
virtual ~Backproject ();
void Backproject::errorIndexOutsideDetector (int ix, int iy, double theta, double L, int ni);
InterpolationType interpType;
- const RAYSUM* rs;
+ const Projections& proj;
ImageFile& im;
ImageFileArray v;
kuint32 nx;
kuint32 ny;
- double det_inc;
- double rot_inc;
- int ncent; // index refering to L=0 projection
- int ndet;
- double xmin, xmax, ymin, ymax; // Retangular coords of phantom
- double xinc, yinc; // size of cells
+ double detInc;
+ double rotInc;
+ 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
private:
Backproject (const Backproject& rhs);
class BackprojectTrig : public Backproject
{
public:
- BackprojectTrig (const RAYSUM* rs, ImageFile& im, InterpolationType interpType)
- : Backproject::Backproject (rs, im, interpType)
+ BackprojectTrig (const Projections& proj, ImageFile& im, InterpolationType interpType)
+ : Backproject::Backproject (proj, im, interpType)
{}
void BackprojectView (const double* const t, double view_angle);
class BackprojectTable : public Backproject
{
public:
- BackprojectTable (const RAYSUM* rs, ImageFile& im, InterpolationType interpType);
+ BackprojectTable (const Projections& proj, ImageFile& im, InterpolationType interpType);
~BackprojectTable ();
void BackprojectView (const double* const t, double view_angle);
class BackprojectDiff : public Backproject
{
public:
- BackprojectDiff (const RAYSUM* rs, ImageFile& im, InterpolationType interpType);
+ BackprojectDiff (const Projections& proj, ImageFile& im, InterpolationType interpType);
~BackprojectDiff ();
void BackprojectView (const double* const t, double view_angle);
class BackprojectDiff2 : public BackprojectDiff
{
public:
- BackprojectDiff2 (const RAYSUM* rs, ImageFile& im, InterpolationType interpType)
- : BackprojectDiff::BackprojectDiff (rs, im, interpType)
+ BackprojectDiff2 (const Projections& proj, ImageFile& im, InterpolationType interpType)
+ : BackprojectDiff::BackprojectDiff (proj, im, interpType)
{}
void BackprojectView (const double* const t, double view_angle);
class BackprojectIntDiff2 : public BackprojectDiff
{
public:
- BackprojectIntDiff2 (const RAYSUM* rs, ImageFile& im, InterpolationType interpType)
- : BackprojectDiff::BackprojectDiff (rs, im, interpType)
+ BackprojectIntDiff2 (const Projections& proj, ImageFile& im, InterpolationType interpType)
+ : BackprojectDiff::BackprojectDiff (proj, im, interpType)
{}
void BackprojectView (const double* const t, double view_angle);
};
-Backproject* selectBackprojector (BackprojType type, const RAYSUM*, ImageFile& im, InterpolationType interpType);
+Backproject* selectBackprojector (BackprojType type, const Projections& proj, ImageFile& im, InterpolationType interpType);