|
STIR 6.4.0
|
An (abstract base) class for storing 3d projection data. More...
#include "stir/Segment.h"

Public Types | |
| enum | StorageOrder { StorageByView , StorageBySino } |
Public Member Functions | |
| virtual StorageOrder | get_storage_order () const =0 |
| SegmentIndices | get_segment_indices () const |
| int | get_segment_num () const |
| Get the segment number. | |
| int | get_timing_pos_num () const |
| Get the timing position index. | |
| int | get_min_axial_pos_num () const |
| int | get_max_axial_pos_num () const |
| int | get_num_axial_poss () const |
| virtual Sinogram< elemT > | get_sinogram (int axial_pos_num) const =0 |
| return a new sinogram, with data set as in the segment | |
| virtual Viewgram< elemT > | get_viewgram (int view_num) const =0 |
| return a new viewgram, with data set as in the segment | |
| Sinogram< elemT > | get_sinogram (const SinogramIndices &s) const |
| return a new sinogram, with data set as in the segment | |
| Viewgram< elemT > | get_viewgram (const ViewgramIndices &) const |
| return a new viewgram, with data set as in the segment | |
| virtual void | set_sinogram (const Sinogram< elemT > &s)=0 |
set data in segment according to sinogram s | |
| virtual void | set_sinogram (const Sinogram< elemT > &s, int axial_pos_num)=0 |
| set sinogram at a different axial_pos_num | |
| virtual void | set_viewgram (const Viewgram< elemT > &v)=0 |
set data in segment according to viewgram v | |
Public Member Functions inherited from stir::DataWithProjDataInfo | |
| DataWithProjDataInfo () | |
| Default constructor sets internal member to 0. | |
| DataWithProjDataInfo (const shared_ptr< const ProjDataInfo > &proj_data_info_sptr_v) | |
| virtual const ProjDataInfo & | get_proj_data_info () const |
| virtual shared_ptr< const ProjDataInfo > | get_proj_data_info_sptr () const |
| Get shared pointer to ProjData info. | |
| int | get_num_segments () const |
| Get number of segments. | |
| int | get_num_axial_poss (const int segment_num) const |
| Get number of axial positions per segment. | |
| int | get_num_views () const |
| Get number of views. | |
| int | get_num_tangential_poss () const |
| Get number of tangential positions. | |
| int | get_num_tof_poss () const |
| Get number of TOF positions. | |
| int | get_min_tof_pos_num () const |
| Get the index of the first timing position. | |
| int | get_max_tof_pos_num () const |
| Get the index of the last timing position. | |
| int | get_tof_mash_factor () const |
| Get TOG mash factor. | |
| int | get_min_segment_num () const |
| Get minimum segment number. | |
| int | get_max_segment_num () const |
| Get maximum segment number. | |
| int | get_min_axial_pos_num (const int segment_num) const |
| Get mininum axial position per segmnet. | |
| int | get_max_axial_pos_num (const int segment_num) const |
| Get maximum axial position per segment. | |
| int | get_min_view_num () const |
| Get minimum view number. | |
| int | get_max_view_num () const |
| Get maximum view number. | |
| int | get_min_tangential_pos_num () const |
| Get minimum tangential position number. | |
| int | get_max_tangential_pos_num () const |
| Get maximum tangential position number. | |
Equality | |
| SegmentIndices | _indices |
| bool | has_same_characteristics (self_type const &, std::string &explanation) const |
| Checks if the 2 objects have the proj_data_info, segment_num etc. | |
| bool | has_same_characteristics (self_type const &) const |
| Checks if the 2 objects have the proj_data_info, segment_num etc. | |
| virtual bool | operator== (const self_type &) const =0 |
| check equality (data has to be identical) | |
| bool | operator!= (const self_type &) const |
| negation of operator== | |
| Segment (const shared_ptr< const ProjDataInfo > &proj_data_info_sptr_v, const SegmentIndices &) | |
Additional Inherited Members | |
Protected Attributes inherited from stir::DataWithProjDataInfo | |
| shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
An (abstract base) class for storing 3d projection data.
This stores a subset of the data accessible via a ProjData object, where the SegmentIndices are fixed.
At the moment, 2 'storage modes' are supported (and implemented as derived classes).
The template argument elemT is used to specify the data-type of the elements of the 3d object.
|
pure virtual |
|
pure virtual |
return a new sinogram, with data set as in the segment
Implemented in stir::SegmentBySinogram< elemT >, stir::SegmentByView< elemT >, stir::SegmentByView< elem_type >, and stir::SegmentByView< elem_type >.
Referenced by get_sinogram().
|
pure virtual |
return a new viewgram, with data set as in the segment
Implemented in stir::SegmentBySinogram< elemT >, stir::SegmentByView< elemT >, stir::SegmentByView< elem_type >, and stir::SegmentByView< elem_type >.
Referenced by get_viewgram().
|
pure virtual |
set data in segment according to sinogram s
Implemented in stir::SegmentBySinogram< elemT >, stir::SegmentByView< elemT >, and stir::SegmentByView< elem_type >.
|
pure virtual |
set sinogram at a different axial_pos_num
Implemented in stir::SegmentBySinogram< elemT >, stir::SegmentByView< elemT >, and stir::SegmentByView< elem_type >.
|
pure virtual |
set data in segment according to viewgram v
Implemented in stir::SegmentBySinogram< elemT >, stir::SegmentByView< elemT >, and stir::SegmentByView< elem_type >.
| bool stir::Segment< elemT >::has_same_characteristics | ( | self_type const & | other, |
| std::string & | explanation ) const |
Checks if the 2 objects have the proj_data_info, segment_num etc.
If they do not have the same characteristics, the string explanation explains why.
References stir::DataWithProjDataInfo::get_proj_data_info_sptr(), get_segment_num(), get_timing_pos_num(), and has_same_characteristics().
Referenced by stir::SegmentByView< elem_type >::get_sinogram(), has_same_characteristics(), and has_same_characteristics().
| bool stir::Segment< elemT >::has_same_characteristics | ( | self_type const & | other | ) | const |
Checks if the 2 objects have the proj_data_info, segment_num etc.
Use this version if you do not need to know why they do not match.
References has_same_characteristics().
|
pure virtual |
check equality (data has to be identical)
Uses has_same_characteristics() and Array::operator==.
==, which might not be what you need to check when elemT has data with float or double numbers.