26#ifndef __stir_SegmentByView_H__
27#define __stir_SegmentByView_H__
35template <
typename elemT>
36class SegmentBySinogram;
37template <
typename elemT>
50template <
typename elemT>
71 const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
72 const int segment_num,
73 const int timing_pos_num = 0);
79 SegmentByView(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
const int segment_num,
const int timing_pos_num = 0);
106 bool operator==(
const Segment<elemT>&)
const override;
113 void check_state()
const;
defines the stir::Array class for multi-dimensional (numeric) arrays
Implementations of inline functions of class stir::SegmentByView.
Declaration of class stir::Segment.
Declaration of class stir::Viewgram.
This class defines ranges which can be 'irregular'.
Definition IndexRange.h:69
A class for storing (3d) projection data with fixed SegmentIndices.
Definition SegmentBySinogram.h:51
SegmentByView(const Array< 3, elemT > &v, const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const int segment_num, const int timing_pos_num=0)
Constructor that sets the data to a given 3d Array.
Definition SegmentByView.cxx:54
StorageOrder get_storage_order() const override
Get storage order.
Definition SegmentByView.inl:31
SegmentByView(const SegmentBySinogram< elemT > &)
Conversion from 1 storage order to the other.
Definition SegmentByView.cxx:67
void set_viewgram(const Viewgram< elemT > &v) override
Set viewgram.
Definition SegmentByView.inl:56
Segment< elem_type >::StorageOrder StorageOrder
Definition SegmentByView.h:58
SegmentByView(const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const int segment_num, const int timing_pos_num=0)
Constructor that sets sizes via the ProjDataInfo object, initialising data to 0.
Definition SegmentByView.cxx:62
void set_sinogram(const Sinogram< elemT > &s) override
Set sinogram.
Definition SegmentByView.inl:49
Viewgram< elem_type > get_viewgram(int view_num) const override
void resize(const IndexRange< 3 > &range) override
Overloading Array::resize.
Definition SegmentByView.cxx:126
SegmentByView(const shared_ptr< const ProjDataInfo > &proj_data_info_sptr, const SegmentIndices &)
Constructor that sets sizes via the ProjDataInfo object, initialising data to 0.
Definition SegmentByView.cxx:43
Sinogram< elem_type > get_sinogram(int axial_pos_num) const override
void set_sinogram(Sinogram< elemT > const &s, int axial_pos_num) override
Set sinogram.
Definition SegmentByView.cxx:114
SegmentByView(const Array< 3, elemT > &v, const shared_ptr< const ProjDataInfo > &proj_data_info_sptr, const SegmentIndices &)
Constructor that sets the data to a given 3d Array.
Definition SegmentByView.cxx:33
void grow(const IndexRange< 3 > &range) override
Overloading Array::grow.
Definition SegmentByView.cxx:160
A very simple class to store segment numbers and any other indices that define a segment.
Definition SegmentIndices.h:34
A class for 2d projection data.
Definition Sinogram.h:47
A class for 2d projection data.
Definition Viewgram.h:49