29 #ifndef __ProjDataFromStream_H__ 30 #define __ProjDataFromStream_H__ 61 Segment_AxialPos_View_TangPos,
62 Timing_Segment_AxialPos_View_TangPos,
63 Segment_View_AxialPos_TangPos,
64 Timing_Segment_View_AxialPos_TangPos,
84 shared_ptr<const ProjDataInfo>
const& proj_data_info_ptr,
85 shared_ptr<std::iostream>
const& s,
86 const std::streamoff offs,
87 const std::vector<int>& segment_sequence_in_stream,
88 StorageOrder o = Segment_View_AxialPos_TangPos,
91 float scale_factor = 1.f);
98 shared_ptr<const ProjDataInfo>
const& proj_data_info_ptr,
99 shared_ptr<std::iostream>
const& s,
100 const std::streamoff offs = 0,
101 StorageOrder o = Segment_View_AxialPos_TangPos,
103 ByteOrder byte_order = ByteOrder::native,
104 float scale_factor = 1.f);
107 inline StorageOrder get_storage_order()
const;
111 inline std::streamoff get_offset_in_stream()
const;
114 inline NumericType get_data_type_in_stream()
const;
117 inline ByteOrder get_byte_order_in_stream()
const;
120 inline std::vector<int> get_segment_sequence_in_stream()
const;
122 inline std::vector<int> get_timing_poss_sequence_in_stream()
const;
124 void set_timing_poss_sequence_in_stream(
const std::vector<int>& seq);
128 const int segment_num,
129 const bool make_num_tangential_poss_odd =
false,
130 const int timing_pos = 0)
const override;
135 const int segment_num,
136 const bool make_num_tangential_poss_odd =
false,
137 const int timing_pos = 0)
const override;
144 SegmentByView<float> get_segment_by_view(
const int segment_num,
const int timing_pos = 0)
const override;
152 float get_scale_factor()
const;
155 virtual float get_bin_value(
const Bin& this_bin)
const;
158 virtual void set_bin_value(
const Bin& bin);
166 std::streamoff get_offset(
const Bin&)
const;
171 std::streamoff offset;
173 std::streamoff offset_3d_data;
176 std::vector<int> segment_sequence;
178 std::vector<int> timing_poss_sequence;
180 inline int find_segment_index_in_sequence(
const int segment_num)
const;
182 StorageOrder storage_order;
193 #if __cplusplus > 199711L A class for 2d projection data.
Definition: FBP3DRPReconstruction.h:39
This file declares the stir::ByteOrder class.
shared_ptr< std::iostream > sino_stream
the stream with the data
Definition: ProjDataFromStream.h:162
A class for storing (3d) projection data with fixed SegmentIndices.
Definition: FBP3DRPReconstruction.h:41
This class provides member functions to find out what byte-order your machine is and to swap numbers...
Definition: ByteOrder.h:99
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Declaration of class stir::ProjData.
Inline implementations for class stir::ProjDataFromStream.
A class for storing (3d) projection data with fixed SegmentIndices.
Definition: ArcCorrection.h:40
A class for storing coordinates and value of a single projection bin.
Definition: Bin.h:48
Declaration of class stir::Bin.
A class which reads/writes projection data from/to a (binary) stream.
Definition: ProjDataFromStream.h:56
provides names for some numeric types and methods for finding their properties.
Definition: NumericType.h:54
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
The (abstract) base class for the projection data.
Definition: ProjData.h:103
This file declares the stir::NumericType class.