STIR  6.2.0
Public Member Functions | Protected Types | Protected Member Functions | List of all members
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:
Inheritance graph
[legend]

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) More...
 
virtual int num_related_densels (const Densel &b) const
 returns the number of Densels related to 'b' More...
 
virtual unique_ptr< SymmetryOperationfind_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
 

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.

◆ 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.

◆ 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.

◆ 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.

◆ blindly_equals()

bool stir::DataSymmetriesForDensels::blindly_equals ( const root_type * const  ) const
protectedpure virtual

Default implementation always returns true. Needs to be overloaded.


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