27 #ifndef __Viewgram_h__ 28 #define __Viewgram_h__ 47 template <
typename elemT>
48 class Viewgram :
public Array<2, elemT>
51 typedef Array<2, elemT> base_type;
56 typedef Viewgram<elemT> self_type;
64 inline Viewgram(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
const ViewgramIndices& ind);
67 inline Viewgram(
const Array<2, elemT>& p,
68 const shared_ptr<const ProjDataInfo>& proj_data_info_sptr,
69 const ViewgramIndices& ind);
75 inline Viewgram(
const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
84 inline Viewgram(
const Array<2, elemT>& p,
85 const shared_ptr<const ProjDataInfo>& proj_data_info_ptr,
91 inline ViewgramIndices get_viewgram_indices()
const;
93 inline int get_segment_num()
const;
95 inline int get_view_num()
const;
97 inline int get_timing_pos_num()
const;
99 inline int get_min_axial_pos_num()
const;
101 inline int get_max_axial_pos_num()
const;
103 inline int get_num_axial_poss()
const;
105 inline int get_min_tangential_pos_num()
const;
107 inline int get_max_tangential_pos_num()
const;
109 inline int get_num_tangential_poss()
const;
112 inline Viewgram get_empty_copy(
void)
const;
115 void grow(
const IndexRange<2>& range)
override;
117 void resize(
const IndexRange<2>& range)
override;
120 inline shared_ptr<const ProjDataInfo> get_proj_data_info_sptr()
const;
128 bool has_same_characteristics(self_type
const&, std::string& explanation)
const;
133 bool has_same_characteristics(self_type
const&)
const;
140 bool operator==(
const self_type&)
const;
143 bool operator!=(
const self_type&)
const;
147 shared_ptr<const ProjDataInfo> proj_data_info_sptr;
148 ViewgramIndices _indices;
Declaration of class stir::ProjDataInfo.
Inline implementations of class stir::Viewgram.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
defines the Array class for multi-dimensional (numeric) arrays
Definition of class stir::ViewgramIndices.
This file defines the stir::IndexRange class.