STIR 6.4.0
stir::DataSymmetriesForDensels Class Referenceabstract

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"

Inheritance diagram for stir::DataSymmetriesForDensels:

Public Member Functions

virtual DataSymmetriesForDenselsclone () 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< SymmetryOperationfind_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
 

Detailed Description

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.

Member Function Documentation

◆ get_related_densels()

void stir::DataSymmetriesForDensels::get_related_densels ( std::vector< Densel > & rel_b,
const Densel & b ) const
pure virtual

fills in a vector with all the Densels that are related to 'b' (including itself)

Warning
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().

◆ num_related_densels()

int stir::DataSymmetriesForDensels::num_related_densels ( const Densel & b) const
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().

◆ find_symmetry_operation_from_basic_densel()

virtual unique_ptr< SymmetryOperation > stir::DataSymmetriesForDensels::find_symmetry_operation_from_basic_densel ( Densel & ) const
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().

◆ find_basic_densel()

bool stir::DataSymmetriesForDensels::find_basic_densel ( Densel & b) const
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().

◆ blindly_equals()

bool stir::DataSymmetriesForDensels::blindly_equals ( const root_type * const ) const
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().


The documentation for this class was generated from the following files: