38SymmetryOperation_PET_CartesianGrid_z_shift::transform_bin_coordinates(Bin& b)
const
40 b.axial_pos_num() += axial_pos_shift;
44SymmetryOperation_PET_CartesianGrid_z_shift::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
48SymmetryOperation_PET_CartesianGrid_z_shift::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
56SymmetryOperation_PET_CartesianGrid_swap_xmx_zq::transform_bin_coordinates(Bin& b)
const
58 b.axial_pos_num() += axial_pos_shift;
59 b.view_num() = view180 - b.view_num();
60 assert(0 <= b.view_num());
61 assert(b.view_num() < view180);
64SymmetryOperation_PET_CartesianGrid_swap_xmx_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
66 vs.view_num() = view180 - vs.view_num();
67 assert(0 <= vs.view_num());
68 assert(vs.view_num() < view180);
72SymmetryOperation_PET_CartesianGrid_swap_xmx_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
75 c[1] = q - c[1] + z_shift;
81SymmetryOperation_PET_CartesianGrid_swap_xmy_yx_zq::transform_bin_coordinates(Bin& b)
const
83 b.axial_pos_num() += axial_pos_shift;
84 b.segment_num() *= -1;
85 b.view_num() += view180 / 2;
86 assert(0 <= b.view_num());
87 assert(b.view_num() < view180);
91SymmetryOperation_PET_CartesianGrid_swap_xmy_yx_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
93 vs.segment_num() *= -1;
94 vs.view_num() += view180 / 2;
95 assert(0 <= vs.view_num());
96 assert(vs.view_num() < view180);
100SymmetryOperation_PET_CartesianGrid_swap_xmy_yx_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
102 const int tmp = c[3];
105 c[1] = q - c[1] + z_shift;
111SymmetryOperation_PET_CartesianGrid_swap_xy_yx_zq::transform_bin_coordinates(Bin& b)
const
113 b.axial_pos_num() += axial_pos_shift;
114 b.view_num() = view180 / 2 - b.view_num();
115 assert(0 <= b.view_num());
116 assert(b.view_num() < view180);
119SymmetryOperation_PET_CartesianGrid_swap_xy_yx_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
121 vs.view_num() = view180 / 2 - vs.view_num();
122 assert(0 <= vs.view_num());
123 assert(vs.view_num() < view180);
127SymmetryOperation_PET_CartesianGrid_swap_xy_yx_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
129 const int tmp = c[3];
132 c[1] = q - c[1] + z_shift;
138SymmetryOperation_PET_CartesianGrid_swap_xmy_yx::transform_bin_coordinates(Bin& b)
const
140 b.axial_pos_num() += axial_pos_shift;
141 if (b.view_num() < view180 / 2)
143 b.view_num() += view180 / 2;
147 b.segment_num() *= -1;
148 b.view_num() -= view180 / 2;
149 b.tangential_pos_num() *= -1;
151 assert(0 <= b.view_num());
152 assert(b.view_num() < view180);
156SymmetryOperation_PET_CartesianGrid_swap_xmy_yx::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
158 if (vs.view_num() < view180 / 2)
160 vs.view_num() += view180 / 2;
164 vs.segment_num() *= -1;
165 vs.view_num() -= view180 / 2;
167 assert(0 <= vs.view_num());
168 assert(vs.view_num() < view180);
172SymmetryOperation_PET_CartesianGrid_swap_xmy_yx::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
174 const int tmp = c[3];
182SymmetryOperation_PET_CartesianGrid_swap_xy_yx::transform_bin_coordinates(Bin& b)
const
184 b.axial_pos_num() += axial_pos_shift;
185 if (b.view_num() <= view180 / 2)
187 b.segment_num() *= -1;
188 b.view_num() = view180 / 2 - b.view_num();
192 b.view_num() = 3 * view180 / 2 - b.view_num();
193 b.tangential_pos_num() *= -1;
195 assert(0 <= b.view_num());
196 assert(b.view_num() < view180);
199SymmetryOperation_PET_CartesianGrid_swap_xy_yx::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
201 if (vs.view_num() <= view180 / 2)
203 vs.segment_num() *= -1;
204 vs.view_num() = view180 / 2 - vs.view_num();
208 vs.view_num() = 3 * view180 / 2 - vs.view_num();
210 assert(0 <= vs.view_num());
211 assert(vs.view_num() < view180);
215SymmetryOperation_PET_CartesianGrid_swap_xy_yx::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
217 const int tmp = c[3];
226SymmetryOperation_PET_CartesianGrid_swap_xmx::transform_bin_coordinates(Bin& b)
const
228 b.axial_pos_num() += axial_pos_shift;
229 if (b.view_num() != 0)
231 b.segment_num() *= -1;
232 b.view_num() = view180 - b.view_num();
236 b.tangential_pos_num() *= -1;
238 assert(0 <= b.view_num());
239 assert(b.view_num() < view180);
243SymmetryOperation_PET_CartesianGrid_swap_xmx::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
245 if (vs.view_num() != 0)
247 vs.segment_num() *= -1;
248 vs.view_num() = view180 - vs.view_num();
252 assert(0 <= vs.view_num());
253 assert(vs.view_num() < view180);
257SymmetryOperation_PET_CartesianGrid_swap_xmx::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
266SymmetryOperation_PET_CartesianGrid_swap_ymy::transform_bin_coordinates(Bin& b)
const
268 b.axial_pos_num() += axial_pos_shift;
269 if (b.view_num() != 0)
271 b.view_num() = view180 - b.view_num();
272 b.tangential_pos_num() *= -1;
276 b.segment_num() *= -1;
278 assert(0 <= b.view_num());
279 assert(b.view_num() < view180);
282SymmetryOperation_PET_CartesianGrid_swap_ymy::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
284 if (vs.view_num() != 0)
286 vs.view_num() = view180 - vs.view_num();
290 vs.segment_num() *= -1;
292 assert(0 <= vs.view_num());
293 assert(vs.view_num() < view180);
297SymmetryOperation_PET_CartesianGrid_swap_ymy::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
306SymmetryOperation_PET_CartesianGrid_swap_zq::transform_bin_coordinates(Bin& b)
const
308 b.axial_pos_num() += axial_pos_shift;
309 b.segment_num() *= -1;
313SymmetryOperation_PET_CartesianGrid_swap_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
315 vs.segment_num() *= -1;
319SymmetryOperation_PET_CartesianGrid_swap_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
321 c[1] = q - c[1] + z_shift;
327SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy_zq::transform_bin_coordinates(Bin& b)
const
329 b.axial_pos_num() += axial_pos_shift;
330 b.tangential_pos_num() *= -1;
331 b.timing_pos_num() *= -1;
335SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
339SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
343 c[1] = q - c[1] + z_shift;
349SymmetryOperation_PET_CartesianGrid_swap_xy_ymx_zq::transform_bin_coordinates(Bin& b)
const
351 b.axial_pos_num() += axial_pos_shift;
352 if (b.view_num() < view180 / 2)
354 b.view_num() += view180 / 2;
355 b.tangential_pos_num() *= -1;
359 b.segment_num() *= -1;
360 b.view_num() -= view180 / 2;
362 assert(0 <= b.view_num());
363 assert(b.view_num() < view180);
367SymmetryOperation_PET_CartesianGrid_swap_xy_ymx_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
369 if (vs.view_num() < view180 / 2)
371 vs.view_num() += view180 / 2;
375 vs.segment_num() *= -1;
376 vs.view_num() -= view180 / 2;
378 assert(0 <= vs.view_num());
379 assert(vs.view_num() < view180);
383SymmetryOperation_PET_CartesianGrid_swap_xy_ymx_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
385 const int tmp = c[3];
388 c[1] = q - c[1] + z_shift;
394SymmetryOperation_PET_CartesianGrid_swap_xy_ymx::transform_bin_coordinates(Bin& b)
const
396 b.axial_pos_num() += axial_pos_shift;
397 if (b.view_num() < view180 / 2)
399 b.segment_num() *= -1;
400 b.view_num() += view180 / 2;
401 b.tangential_pos_num() *= -1;
405 b.view_num() -= view180 / 2;
407 assert(0 <= b.view_num());
408 assert(b.view_num() < view180);
411SymmetryOperation_PET_CartesianGrid_swap_xy_ymx::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
413 if (vs.view_num() < view180 / 2)
415 vs.segment_num() *= -1;
416 vs.view_num() += view180 / 2;
420 vs.view_num() -= view180 / 2;
422 assert(0 <= vs.view_num());
423 assert(vs.view_num() < view180);
427SymmetryOperation_PET_CartesianGrid_swap_xy_ymx::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
429 const int tmp = c[3];
438SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx::transform_bin_coordinates(Bin& b)
const
440 b.axial_pos_num() += axial_pos_shift;
441 if (b.view_num() <= view180 / 2)
443 b.view_num() = view180 / 2 - b.view_num();
444 b.tangential_pos_num() *= -1;
448 b.segment_num() *= -1;
449 b.view_num() = 3 * view180 / 2 - b.view_num();
451 assert(0 <= b.view_num());
452 assert(b.view_num() < view180);
456SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
458 if (vs.view_num() <= view180 / 2)
460 vs.view_num() = view180 / 2 - vs.view_num();
464 vs.segment_num() *= -1;
465 vs.view_num() = 3 * view180 / 2 - vs.view_num();
467 assert(0 <= vs.view_num());
468 assert(vs.view_num() < view180);
472SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
474 const int tmp = c[3];
483SymmetryOperation_PET_CartesianGrid_swap_ymy_zq::transform_bin_coordinates(Bin& b)
const
485 b.axial_pos_num() += axial_pos_shift;
486 b.segment_num() *= -1;
487 b.view_num() = view180 - b.view_num();
488 b.tangential_pos_num() *= -1;
489 assert(0 <= b.view_num());
490 assert(b.view_num() < view180);
494SymmetryOperation_PET_CartesianGrid_swap_ymy_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
496 vs.segment_num() *= -1;
497 vs.view_num() = view180 - vs.view_num();
498 assert(0 <= vs.view_num());
499 assert(vs.view_num() < view180);
503SymmetryOperation_PET_CartesianGrid_swap_ymy_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
506 c[1] = q - c[1] + z_shift;
512SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy::transform_bin_coordinates(Bin& b)
const
514 b.axial_pos_num() += axial_pos_shift;
515 b.segment_num() *= -1;
516 b.tangential_pos_num() *= -1;
517 b.timing_pos_num() *= -1;
520SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
522 vs.segment_num() *= -1;
526SymmetryOperation_PET_CartesianGrid_swap_xmx_ymy::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
536SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx_zq::transform_bin_coordinates(Bin& b)
const
538 b.axial_pos_num() += axial_pos_shift;
539 b.segment_num() *= -1;
540 b.view_num() = view180 / 2 - b.view_num();
541 b.tangential_pos_num() *= -1;
542 assert(0 <= b.view_num());
543 assert(b.view_num() < view180);
547SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx_zq::transform_view_segment_indices(ViewSegmentNumbers& vs)
const
549 vs.segment_num() *= -1;
550 vs.view_num() = view180 / 2 - vs.view_num();
551 assert(0 <= vs.view_num());
552 assert(vs.view_num() < view180);
556SymmetryOperation_PET_CartesianGrid_swap_xmy_ymx_zq::transform_image_coordinates(BasicCoordinate<3, int>& c)
const
558 const int tmp = c[3];
561 c[1] = q - c[1] + z_shift;
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Declaration of class stir::Bin.
Definition of class stir::ViewSegmentNumbers, alias to stir::ViewgramIndices.