STIR 6.4.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
24START_NAMESPACE_STIR
25
26template <int num_dimensions, typename elemT>
27class DiscretisedDensity;
28
53
55{
56public:
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
86protected:
87 shared_ptr<const ProjDataInfo> proj_data_info_ptr;
88
89 // explicitly list necessary members for image details (should use an Info object instead)
92 float min_z_index;
93 float max_z_index;
94
96
102};
103
104END_NAMESPACE_STIR
105
106#endif
defines the stir::CartesianCoordinate3D<coordT> class
Declaration of class stir::ProjDataInfo.
declaration of ProjMatrixByDensel and its helpers classes
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersectio...
Definition ProjMatrixByDenselOnCartesianGridUsingElement.h:55
virtual float get_element(const Bin &bin, const CartesianCoordinate3D< float > &densel_ctr) const =0
this member computes a single element of the projection matrix
void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_ptr) override
Stores necessary geometric info.
Definition ProjMatrixByDenselOnCartesianGridUsingElement.cxx:27
void calculate_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel &) const override
Calculates all non-zero elements for a particular densel.
Definition ProjMatrixByDenselOnCartesianGridUsingElement.cxx:48
ProjMatrixByDensel()
default ctor (enables caching)
Definition ProjMatrixByDensel.cxx:25
This stores the non-zero projection matrix elements for every 'voxel'.
Definition ProjMatrixElemsForOneDensel.h:60
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...