STIR 6.4.0
Bin.inl
Go to the documentation of this file.
1//
2//
16/*
17 Copyright (C) 2000 PARAPET partners
18 Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
19 Copyright (C) 2016, University of Hull
20 Copyright (C) 2023, University College London
21 This file is part of STIR.
22
23 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
24
25 See STIR/LICENSE.txt for details
26*/
27
28START_NAMESPACE_STIR
29
31 : axial_pos(0),
32 tangential_pos(0),
33 bin_value(0.0f),
34 time_frame(1)
35{}
36
37Bin::Bin(int segment_num, int view_num, int axial_pos_num, int tangential_pos_num, float bin_value)
38 : ViewgramIndices(view_num, segment_num, /*timing_pos_num*/ 0),
39 axial_pos(axial_pos_num),
40 tangential_pos(tangential_pos_num),
41 bin_value(bin_value),
42 time_frame(1)
43{}
44
46 : ViewgramIndices(view_num, segment_num, /*timing_pos_num*/ 0),
47 axial_pos(axial_pos_num),
48 tangential_pos(tangential_pos_num),
49 bin_value(0.0f),
50 time_frame(1)
51{}
52
53Bin::Bin(int segment_num, int view_num, int axial_pos_num, int tangential_pos_num, int timing_pos_num, float bin_value)
54 : ViewgramIndices(view_num, segment_num, timing_pos_num),
55 axial_pos(axial_pos_num),
56 tangential_pos(tangential_pos_num),
57 bin_value(bin_value),
58 time_frame(1)
59{}
60
63 axial_pos(axial_pos_num),
64 tangential_pos(tangential_pos_num),
65 bin_value(0.0f),
66 time_frame(1)
67{}
68
69int
71{
72 return axial_pos;
73}
74
75int
77{
78 return tangential_pos;
79}
80
81int
83{
84 return time_frame;
85}
86
87int&
89{
90 return axial_pos;
91}
92
93int&
95{
96 return tangential_pos;
97}
98
99int&
101{
102 return time_frame;
103}
104
105#if 0
106const ProjDataInfo *
107Bin::get_proj_data_info_sptr() const
108{
109 return proj_data_info_ptr.get();
110}
111#endif
112
113Bin
115{
116
118
119 return copy;
120}
121
122float
124{
125 return bin_value;
126}
127
128void
130{
131 bin_value = v;
132}
133
134Bin&
135Bin::operator+=(const float dx)
136{
137 bin_value += dx;
138 return *this;
139}
140
141bool
142Bin::operator==(const Bin& bin2) const
143{
144 return base_type::operator==(bin2) && axial_pos == bin2.axial_pos && tangential_pos == bin2.tangential_pos
145 && time_frame == bin2.time_frame && bin_value == bin2.bin_value;
146}
147
148bool
149Bin::operator!=(const Bin& bin2) const
150{
151 return !(*this == bin2);
152}
153
154Bin&
155Bin::operator*=(const float dx)
156{
157 bin_value *= dx;
158 return *this;
159}
160
161Bin&
162Bin::operator/=(const float dx)
163{
164 if (dx == 0.f)
165 bin_value = 0.0f;
166 else
167 bin_value /= dx;
168
169 return *this;
170}
171
172END_NAMESPACE_STIR
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
bool operator==(const Bin &) const
comparison operators
Definition Bin.inl:142
Bin get_empty_copy() const
get an empty copy
Definition Bin.inl:114
float get_bin_value() const
get the value after forward projection
Definition Bin.inl:123
Bin & operator/=(const float dx)
divide bin values
Definition Bin.inl:162
int tangential_pos_num() const
get tangential position number
Definition Bin.inl:76
Bin & operator*=(const float dx)
multiply bin values
Definition Bin.inl:155
int axial_pos_num() const
get axial position number
Definition Bin.inl:70
Bin()
default constructor (leaves most members uninitialised)
Definition Bin.inl:30
Bin & operator+=(const float dx)
accumulate voxel's contribution during forward projection
Definition Bin.inl:135
void set_bin_value(float v)
set the value to be back projected
Definition Bin.inl:129
An (abstract base) class that contains information on the projection data.
Definition ProjDataInfo.h:70
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
A very simple class to store all dincies to get a (2D) Viewgram.
Definition ViewgramIndices.h:33
ViewgramIndices()
an empty constructor (sets everything to 0)
Definition ViewgramIndices.inl:25
bool operator==(const ViewgramIndices &other) const
test for equality
Definition ViewgramIndices.inl:54
int view_num() const
get view number for const objects
Definition ViewgramIndices.inl:36