STIR  6.2.0
ProjMatrixByDenselOnCartesianGridUsingElement.h
Go to the documentation of this file.
1 //
2 //
12 /*
13  Copyright (C) 2000- 2002, IRSL
14  See STIR/LICENSE.txt for details
15 */
16 #ifndef __ProjMatrixByDenselOnCartesianGridUsingElement__
17 #define __ProjMatrixByDenselOnCartesianGridUsingElement__
18 
20 #include "stir/ProjDataInfo.h"
22 #include "stir/shared_ptr.h"
23 
24 START_NAMESPACE_STIR
25 
26 template <int num_dimensions, typename elemT>
27 class DiscretisedDensity;
28 
55 {
56 public:
58 
65  void set_up(const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
66  const shared_ptr<const DiscretisedDensity<3, float>>& density_info_ptr // TODO should be Info only
67  ) override;
68 
70 
84  virtual float get_element(const Bin& bin, const CartesianCoordinate3D<float>& densel_ctr) const = 0;
85 
86 protected:
87  shared_ptr<const ProjDataInfo> proj_data_info_ptr;
88 
89  // explicitly list necessary members for image details (should use an Info object instead)
90  CartesianCoordinate3D<float> grid_spacing;
92  float min_z_index;
93  float max_z_index;
94 
96 
101  void calculate_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel&) const override;
102 };
103 
104 END_NAMESPACE_STIR
105 
106 #endif
This stores the non-zero projection matrix elements for every &#39;voxel&#39;.
Definition: ProjMatrixElemsForOneDensel.h:59
Declaration of class stir::ProjDataInfo.
This is the (abstract) base class for all projection matrices which are organised by &#39;Densel&#39;...
Definition: ProjMatrixByDensel.h:48
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersectio...
Definition: ProjMatrixByDenselOnCartesianGridUsingElement.h:54
defines the stir::CartesianCoordinate3D<coordT> class
declaration of ProjMatrixByDensel and its helpers classes