STIR
6.2.0
|
This is the (abstract) base class for all projection matrices which are organised by 'Densel'. More...
#include "stir_experimental/recon_buildblock/ProjMatrixByDensel.h"
Public Member Functions | |
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. More... | |
virtual const DataSymmetriesForDensels * | get_symmetries_ptr () const =0 |
get a pointer to an object encoding all symmetries that are used by this ProjMatrixByDensel | |
void | get_proj_matrix_elems_for_one_densel (ProjMatrixElemsForOneDensel &, const Densel &) const |
The main method for getting a column of the matrix. More... | |
void | enable_cache (bool v) |
Public Member Functions inherited from stir::RegisteredObjectBase | |
virtual std::string | get_registered_name () const =0 |
Returns the name of the type of the object. More... | |
Public Member Functions inherited from stir::ParsingObject | |
ParsingObject (const ParsingObject &) | |
ParsingObject & | operator= (const ParsingObject &) |
void | ask_parameters () |
virtual std::string | parameter_info () |
bool | parse (std::istream &f) |
bool | parse (const char *const filename) |
Protected Member Functions | |
ProjMatrixByDensel () | |
default ctor (enables caching) | |
virtual void | calculate_proj_matrix_elems_for_one_densel (ProjMatrixElemsForOneDensel &) const =0 |
This method needs to be implemented in the derived class. More... | |
Succeeded | get_cached_proj_matrix_elems_for_one_densel (ProjMatrixElemsForOneDensel &) const |
The method that tries to get data from the cache. More... | |
void | cache_proj_matrix_elems_for_one_densel (const ProjMatrixElemsForOneDensel &) const |
The method to store data in the cache. More... | |
Protected Member Functions inherited from stir::ParsingObject | |
virtual void | set_defaults () |
Set defaults before parsing. | |
virtual void | initialise_keymap () |
Initialise all keywords. | |
virtual bool | post_processing () |
This will be called at the end of the parsing. More... | |
virtual void | set_key_values () |
This will be called before parsing or parameter_info is called. More... | |
Protected Attributes | |
bool | cache_disabled |
Protected Attributes inherited from stir::ParsingObject | |
KeyParser | parser |
Additional Inherited Members | |
Static Public Member Functions inherited from stir::RegisteredObject< ProjMatrixByDensel > | |
static ProjMatrixByDensel * | read_registered_object (std::istream *in, const std::string ®istered_name) |
Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream. More... | |
static ProjMatrixByDensel * | ask_type_and_parameters () |
ask the user for the type, and then calls read_registered_object(0, type) More... | |
static void | list_registered_names (std::ostream &stream) |
List all possible registered names to the stream. More... | |
Protected Types inherited from stir::RegisteredObject< ProjMatrixByDensel > | |
typedef ProjMatrixByDensel *(* | RootFactory) (std::istream *) |
The type of a root factory is a function, taking an istream* as argument, and returning a Root*. | |
typedef FactoryRegistry< std::string, RootFactory, interfile_less > | RegistryType |
The type of the registry. | |
Static Protected Member Functions inherited from stir::RegisteredObject< ProjMatrixByDensel > | |
static RegistryType & | registry () |
Static function returning the registry. More... | |
This is the (abstract) base class for all projection matrices which are organised by 'Densel'.
This class provides essentially only 2 public members: a method to get a 'row' of the matrix, and a method to get information on the symmetries.
Currently, the class provides for some (basic) caching. This functionality will probably be moved to a new class ProjMatrixByDenselWithCache. (TODO)
|
pure virtual |
To be called before any calculation is performed.
Note that get_proj_matrix_elems_for_one_Densel() will expect objects of compatible sizes and other info.
Implemented in stir::ProjMatrixByDenselUsingRayTracing, and stir::ProjMatrixByDenselOnCartesianGridUsingElement.
|
inline |
The main method for getting a column of the matrix.
The ProjMatrixElemsForOneDensel argument will be overwritten (i.e. data is NOT appended).
The implementation is inline as it just gets it in terms of the cached__proj_matrix_elems_for_one_densel or calculate_proj_matrix_elems_for_one_densel.
References stir::ProjMatrixElemsForOneDensel::check_state(), stir::ProjMatrixElemsForOneDensel::erase(), and stir::ProjMatrixElemsForOneDensel::set_densel().
|
protectedpure virtual |
This method needs to be implemented in the derived class.
Densel-coordinates are obtained via the ProjMatrixElemsForOneDensel::get_Densel() method.
Note that 'calculate' could just as well mean 'get from file'
Implemented in stir::ProjMatrixByDenselOnCartesianGridUsingElement.
|
protected |
The method that tries to get data from the cache.
If it succeeds, it overwrites the ProjMatrixElemsForOneDensel parameter and returns Succeeded::yes, otherwise it does not touch the ProjMatrixElemsForOneDensel and returns Succeeded::false.
References stir::ProjMatrixElemsForOneDensel::get_densel().
|
inlineprotected |
The method to store data in the cache.
insert matrix elements for one densel into the cache collection
References stir::ProjMatrixElemsForOneDensel::get_densel().