STIR
6.2.0
|
A class derived from DataSymmetriesForBins that says that there are no symmetries at all. More...
#include "stir/recon_buildblock/TrivialDataSymmetriesForBins.h"
Public Member Functions | |
TrivialDataSymmetriesForBins (const shared_ptr< const ProjDataInfo > &proj_data_info_ptr) | |
TrivialDataSymmetriesForBins * | clone () const override |
void | get_related_bins (std::vector< Bin > &, 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 int min_timing_pos_num, const int max_timing_pos_num0) const override |
fills in a vector with all the bins (within the range) that are related to 'b' More... | |
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 override |
fills in a vector with the axial and tangential position numbers related to this bin More... | |
int | num_related_bins (const Bin &b) const override |
returns the number of bins related to 'b' More... | |
unique_ptr< SymmetryOperation > | find_symmetry_operation_from_basic_bin (Bin &) const override |
given an arbitrary bin 'b', find the basic bin and the corresponding symmetry operation More... | |
bool | find_basic_bin (Bin &b) const override |
given an arbitrary bin 'b', find the basic bin More... | |
bool | is_basic (const Bin &v_s) const override |
test if a bin is 'basic' More... | |
unique_ptr< SymmetryOperation > | find_symmetry_operation_from_basic_view_segment_numbers (ViewSegmentNumbers &) const override |
default implementation in terms of find_symmetry_operation_from_basic_bin | |
void | get_related_view_segment_numbers (std::vector< ViewSegmentNumbers > &, const ViewSegmentNumbers &) const override |
fills in a vector with all the view/segments that are related to 'v_s' (including itself) | |
int | num_related_view_segment_numbers (const ViewSegmentNumbers &) const override |
returns the number of view_segment_numbers related to 'v_s' More... | |
bool | find_basic_view_segment_numbers (ViewSegmentNumbers &) const override |
given an arbitrary view/segment, find the basic view/segment More... | |
Public Member Functions inherited from stir::DataSymmetriesForBins | |
DataSymmetriesForBins (const shared_ptr< const ProjDataInfo > &proj_data_info_ptr) | |
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) More... | |
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 More... | |
Public Member Functions inherited from stir::DataSymmetriesForViewSegmentNumbers | |
bool | operator== (const DataSymmetriesForViewSegmentNumbers &) const |
Check equality. More... | |
bool | operator!= (const DataSymmetriesForViewSegmentNumbers &) const |
Check inequality. More... | |
std::size_t | num_related_viewgram_indices (const ViewgramIndices &ind) const |
virtual bool | is_basic (const ViewSegmentNumbers &v_s) const |
test if a view/segment is 'basic' More... | |
Additional Inherited Members | |
Protected Types inherited from stir::DataSymmetriesForViewSegmentNumbers | |
typedef DataSymmetriesForViewSegmentNumbers | root_type |
Protected Attributes inherited from stir::DataSymmetriesForBins | |
const shared_ptr< const ProjDataInfo > | proj_data_info_ptr |
Member storing the info needed by get_related_bins() et al. | |
A class derived from DataSymmetriesForBins that says that there are no symmetries at all.
|
overridevirtual |
fills in a vector with all the bins (within the range) that are related to 'b'
b
has to be a 'basic' bindefault implementation in terms of get_related_bins_factorised
Reimplemented from stir::DataSymmetriesForBins.
References stir::Bin::axial_pos_num(), stir::Bin::tangential_pos_num(), and stir::SegmentIndices::timing_pos_num().
|
overridevirtual |
fills in a vector with the axial and tangential position numbers related to this bin
It is guaranteed (or at least, it should be by the implementation of the derived class) that these AxTangPosNumbers are related for all related ViewSegmentNumbers for this bin.
So, you can find all related bins by calling get_related_ViewSegmentNumbers() and get_related_bins_factorised(), which is what the default implementation does. (A derived class might do this in a more optimal way.)
b
has to be a 'basic' bin Implements stir::DataSymmetriesForBins.
References stir::Bin::axial_pos_num(), and stir::Bin::tangential_pos_num().
|
overridevirtual |
returns the number of bins related to 'b'
default implementation in terms of get_related_bins, will be slow of course
Reimplemented from stir::DataSymmetriesForBins.
|
overridevirtual |
given an arbitrary bin 'b', find the basic bin and the corresponding symmetry operation
sets 'b' to the corresponding 'basic' bin and returns the symmetry transformation from 'basic' to 'b'.
Implements stir::DataSymmetriesForBins.
|
overridevirtual |
given an arbitrary bin 'b', find the basic bin
sets 'b' to the corresponding 'basic' bin and returns true if 'b' is changed (i.e. it was NOT a basic bin).
default implementation in terms of find_symmetry_operation_from_basic_bin
Reimplemented from stir::DataSymmetriesForBins.
|
overridevirtual |
test if a bin is 'basic'
The default implementation uses find_basic_bin
Reimplemented from stir::DataSymmetriesForBins.
|
overridevirtual |
returns the number of view_segment_numbers related to 'v_s'
The default implementation is in terms of get_related_view_segment_numbers, which will be slow of course
Reimplemented from stir::DataSymmetriesForViewSegmentNumbers.
|
overridevirtual |
given an arbitrary view/segment, find the basic view/segment
sets 'v_s' to the corresponding 'basic' view/segment and returns true if 'v_s' is changed (i.e. it was NOT a basic view/segment).
Implements stir::DataSymmetriesForViewSegmentNumbers.