STIR
6.2.0
|
A class for encoding/finding symmetries common to the geometry of the projection data and the discretised density. More...
#include "stir/recon_buildblock/DataSymmetriesForDensels.h"
Public Member Functions | |
virtual DataSymmetriesForDensels * | clone () const =0 |
bool | operator== (const DataSymmetriesForDensels &) const |
bool | operator!= (const DataSymmetriesForDensels &) const |
virtual void | get_related_densels (std::vector< Densel > &, const Densel &b) const =0 |
fills in a vector with all the Densels that are related to 'b' (including itself) More... | |
virtual int | num_related_densels (const Densel &b) const |
returns the number of Densels related to 'b' More... | |
virtual unique_ptr< SymmetryOperation > | find_symmetry_operation_from_basic_densel (Densel &) const =0 |
given an arbitrary Densel 'b', find the basic Densel More... | |
virtual bool | find_basic_densel (Densel &b) const |
given an arbitrary Densel 'b', find the basic Densel More... | |
Protected Types | |
typedef DataSymmetriesForDensels | root_type |
Protected Member Functions | |
virtual bool | blindly_equals (const root_type *const) const =0 |
A class for encoding/finding symmetries common to the geometry of the projection data and the discretised density.
This class is mainly (only?) useful for ProjMatrixByDensel classes and their 'users'. Together with SymmetryOperation, it provides the basic way to be able to write generic code without knowing which particular symmetries the data have.
|
pure virtual |
fills in a vector with all the Densels that are related to 'b' (including itself)
b
has to be a 'basic' Densel Implemented in stir::DataSymmetriesForDensels_PET_CartesianGrid.
|
virtual |
returns the number of Densels related to 'b'
default implementation in terms of get_related_densels, will be slow of course
Reimplemented in stir::DataSymmetriesForDensels_PET_CartesianGrid.
|
pure virtual |
given an arbitrary Densel 'b', find the basic Densel
sets 'b' to the corresponding 'basic' Densel and returns the symmetry transformation from 'basic' to 'b'.
Implemented in stir::DataSymmetriesForDensels_PET_CartesianGrid.
|
virtual |
given an arbitrary Densel 'b', find the basic Densel
sets 'b' to the corresponding 'basic' Densel and returns true if 'b' is changed (i.e. it was NOT a basic Densel).
default implementation in terms of find_symmetry_operation_from_basic_densel
Reimplemented in stir::DataSymmetriesForDensels_PET_CartesianGrid.
|
protectedpure virtual |
Default implementation always returns true
. Needs to be overloaded.