24#ifndef __stir_recon_buildblock_DataSymmetriesForBins_H__
25#define __stir_recon_buildblock_DataSymmetriesForBins_H__
39class SymmetryOperation;
71 typedef DataSymmetriesForBins self_type;
76 ~DataSymmetriesForBins()
override;
78 DataSymmetriesForBins* clone()
const override = 0;
84 get_basic_bin_index_range()
const = 0;
101 const int min_axial_pos_num,
102 const int max_axial_pos_num,
103 const int min_tangential_pos_num,
104 const int max_tangential_pos_num,
105 const int min_timing_pos_num,
106 const int max_timing_pos_num)
const;
130 const int min_axial_pos_num,
131 const int max_axial_pos_num,
132 const int min_tangential_pos_num,
133 const int max_tangential_pos_num)
const = 0;
defines the stir::Coordinate2D<coordT> class
inline implementations for class stir::DataSymmetriesForBins
Declaration of class stir::DataSymmetriesForViewSegmentNumbers.
Declaration of class stir::ProjDataInfo.
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
a templated class for 2-dimensional coordinates.
Definition Coordinate2D.h:42
virtual int num_related_bins(const Bin &b) const
returns the number of bins related to 'b'
Definition DataSymmetriesForBins.cxx:52
virtual unique_ptr< SymmetryOperation > find_symmetry_operation_from_basic_bin(Bin &) const =0
given an arbitrary bin 'b', find the basic bin and the corresponding symmetry operation
bool blindly_equals(const root_type *const) const override=0
Check equality.
Definition DataSymmetriesForBins.cxx:42
virtual void get_related_bins_factorised(std::vector< AxTangPosNumbers > &, const Bin &b, const int min_axial_pos_num, const int max_axial_pos_num, const int min_tangential_pos_num, const int max_tangential_pos_num) const =0
fills in a vector with the axial and tangential position numbers related to this bin
virtual bool find_basic_bin(Bin &b) const
given an arbitrary bin 'b', find the basic bin
Definition DataSymmetriesForBins.cxx:61
virtual unique_ptr< SymmetryOperation > find_symmetry_operation_from_basic_view_segment_numbers(ViewSegmentNumbers &) const
default implementation in terms of find_symmetry_operation_from_basic_bin
Definition DataSymmetriesForBins.cxx:131
virtual bool is_basic(const Bin &v_s) const
test if a bin is 'basic'
Definition DataSymmetriesForBins.cxx:68
const shared_ptr< const ProjDataInfo > proj_data_info_ptr
Member storing the info needed by get_related_bins() et al.
Definition DataSymmetriesForBins.h:163
void get_related_bins(std::vector< Bin > &, const Bin &b) const
fills in a vector with all the bins that are related to 'b' (including itself)
Definition DataSymmetriesForBins.inl:29
void get_related_bins_factorised(std::vector< AxTangPosNumbers > &, const Bin &b) const
fills in a vector with the axial and tangential position numbers related to this bin
Definition DataSymmetriesForBins.inl:42
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin).
Definition DataSymmetriesForViewSegmentNumbers.h:50
alias for ViewgramIndices
Definition ViewSegmentNumbers.h:34
Coordinate2D< int > AxTangPosNumbers
AxTangPosNumbers as a class that provides the 2 remaining coordinates for a Bin, aside from ViewSegme...
Definition DataSymmetriesForBins.h:52
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...
Import of std::unique_ptr into the stir namespace, together with work-arounds for other compilers.