|
STIR
6.3.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().
1.8.13