STIR 6.4.0
stream.h
Go to the documentation of this file.
1//
2//
13/*
14 Copyright (C) 2000 PARAPET partners
15 Copyright (C) 2000-2009 Hammersmith Imanet Ltd
16 Copyright (C) 2013 Kris Thielemans
17 Copyright (C) 2023, 2024 University College London
18
19 This file is part of STIR.
20
21 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
22
23 See STIR/LICENSE.txt for details
24*/
25#ifndef __stir_stream_H__
26#define __stir_stream_H__
27
30#include "stir/Bin.h"
33#include <iostream>
34#include <vector>
35
36START_NAMESPACE_STIR
37
50
51template <typename elemT>
52inline std::ostream& operator<<(std::ostream& str, const VectorWithOffset<elemT>& v);
53
63template <int num_dimensions, typename coordT>
64inline std::ostream& operator<<(std::ostream& str, const BasicCoordinate<num_dimensions, coordT>& v);
65
77template <typename elemT>
78inline std::ostream& operator<<(std::ostream& str, const std::vector<elemT>& v);
79
89inline std::ostream&
90operator<<(std::ostream& out, const Bin& bin)
91{
92 return out << "[segment_num=" << bin.segment_num() << ", axial_pos_num=" << bin.axial_pos_num()
93 << ", view_num=" << bin.view_num() << ", tangential_pos_num=" << bin.tangential_pos_num()
94 << ", timing_pos_num=" << bin.timing_pos_num() << ", time_frame_num=" << bin.time_frame_num()
95 << ", value=" << bin.get_bin_value() << "]";
96}
97
107template <class T>
108inline std::ostream&
109operator<<(std::ostream& out, const DetectionPosition<T>& det_pos)
110{
111 return out << "[tangential=" << det_pos.tangential_coord() << ", axial=" << det_pos.axial_coord()
112 << ", radial=" << det_pos.radial_coord() << "]";
113}
114
124template <class T>
125inline std::ostream&
126operator<<(std::ostream& out, const DetectionPositionPair<T>& det_pos)
127{
128 return out << "[pos1=" << det_pos.pos1() << ", pos2=" << det_pos.pos2() << ", timing_pos=" << det_pos.timing_pos() << "]";
129}
130
147template <typename elemT>
148inline std::istream& operator>>(std::istream& str, std::vector<elemT>& v);
149
174template <typename elemT>
175inline std::istream& operator>>(std::istream& str, VectorWithOffset<elemT>& v);
176
193template <int num_dimensions, typename coordT>
194inline std::istream& operator>>(std::istream& str, BasicCoordinate<num_dimensions, coordT>& v);
195
196END_NAMESPACE_STIR
197
198#include "stir/stream.inl"
199
200#endif
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Declaration of class stir::Bin.
Declaration of class stir::DetectionPositionPair.
Declaration of class stir::DetectionPosition.
defines the stir::VectorWithOffset class
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
int time_frame_num() const
get time-frame number (1-based)
Definition Bin.inl:82
float get_bin_value() const
get the value after forward projection
Definition Bin.inl:123
int tangential_pos_num() const
get tangential position number
Definition Bin.inl:76
int axial_pos_num() const
get axial position number
Definition Bin.inl:70
A class for storing 2 coordinates-sets of a detection, together with a timing-position index (for TOF...
Definition DetectionPositionPair.h:41
A class for storing coordinates of a detection.
Definition DetectionPosition.h:61
int segment_num() const
get segment number for const objects
Definition SegmentIndices.inl:32
int timing_pos_num() const
get TOF index for const objects
Definition SegmentIndices.inl:44
int view_num() const
get view number for const objects
Definition ViewgramIndices.inl:36
Input/output of basic vector-like types to/from streams.