|
STIR 6.4.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) | |
| virtual int | num_related_densels (const Densel &b) const |
| returns the number of Densels related to 'b' | |
| virtual unique_ptr< SymmetryOperation > | find_symmetry_operation_from_basic_densel (Densel &) const =0 |
| given an arbitrary Densel 'b', find the basic Densel | |
| virtual bool | find_basic_densel (Densel &b) const |
| given an arbitrary Densel 'b', find the basic Densel | |
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.
References get_related_densels().
Referenced by get_related_densels(), and num_related_densels().
|
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.
References get_related_densels(), and num_related_densels().
Referenced by num_related_densels().
|
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.
References blindly_equals(), and find_basic_densel().
Referenced by find_basic_densel().
|
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.
References find_basic_densel(), and find_symmetry_operation_from_basic_densel().
Referenced by find_basic_densel(), and find_symmetry_operation_from_basic_densel().
|
protectedpure virtual |
Default implementation always returns true. Needs to be overloaded.
References blindly_equals().
Referenced by blindly_equals(), and find_symmetry_operation_from_basic_densel().