4#ifndef __stir_recon_buildblock_ProjMatrixByDensel_H__
5#define __stir_recon_buildblock_ProjMatrixByDensel_H__
33template <
int num_dimensions,
typename elemT>
34class DiscretisedDensity;
57 virtual void set_up(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
82 virtual void write_to_file_by_densel(
83 const char *
const file_name_without_extension)
const;
92 void enable_cache(
bool v)
128 typedef unsigned int CacheKey;
130 typedef std::map<CacheKey, ProjMatrixElemsForOneDensel> MapProjMatrixElemsForOneDensel;
131 typedef MapProjMatrixElemsForOneDensel::iterator MapProjMatrixElemsForOneDenselIterator;
132 typedef MapProjMatrixElemsForOneDensel::const_iterator const_MapProjMatrixElemsForOneDenselIterator;
135 mutable MapProjMatrixElemsForOneDensel cache_collection;
Declaration of class stir::DataSymmetriesForDensels.
Declaration of typedef stir::Densel.
Declaration of class stir::ProjDataInfo.
Implementations of inline functions for class ProjMatrixByDensel.
Declaration of class stir::ProjMatrixElemsForOneDensel.
Declaration of class stiir::RegisteredObject.
A class for encoding/finding symmetries common to the geometry of the projection data and the discret...
Definition DataSymmetriesForDensels.h:51
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
This is the (abstract) base class for all projection matrices which are organised by 'Densel'.
Definition ProjMatrixByDensel.h:49
ProjMatrixByDensel()
default ctor (enables caching)
Definition ProjMatrixByDensel.cxx:25
virtual void set_up(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float > > &density_info_ptr)=0
To be called before any calculation is performed.
Succeeded get_cached_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel &) const
The method that tries to get data from the cache.
Definition ProjMatrixByDensel.cxx:31
void cache_proj_matrix_elems_for_one_densel(const ProjMatrixElemsForOneDensel &) const
The method to store data in the cache.
Definition ProjMatrixByDensel.inl:76
virtual const DataSymmetriesForDensels * get_symmetries_ptr() const =0
get a pointer to an object encoding all symmetries that are used by this ProjMatrixByDensel
virtual void calculate_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel &) const =0
This method needs to be implemented in the derived class.
void get_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel &, const Densel &) const
The main method for getting a column of the matrix.
Definition ProjMatrixByDensel.inl:24
This stores the non-zero projection matrix elements for every 'voxel'.
Definition ProjMatrixElemsForOneDensel.h:60
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Coordinate3D< int > Densel
a typedef used for an element of a DiscretisedDensity
Definition Densel.h:36
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...