STIR 6.4.0
SymmetryOperation.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 This file is part of STIR.
17
18 SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
19
20 See STIR/LICENSE.txt for details
21*/
22#ifndef __stir_recon_buildblock_SymmetryOperation_H__
23#define __stir_recon_buildblock_SymmetryOperation_H__
24
25#include "stir/common.h"
26
27START_NAMESPACE_STIR
28
29template <int num_dimensions, class coordT>
30class BasicCoordinate;
31class ViewSegmentNumbers;
32class ProjMatrixElemsForOneBin;
33class ProjMatrixElemsForOneDensel;
34class Bin;
35
62{
63public:
64 virtual inline ~SymmetryOperation() {}
65 virtual inline bool is_trivial() const { return false; }
66 virtual void transform_bin_coordinates(Bin&) const = 0;
67 virtual void transform_view_segment_indices(ViewSegmentNumbers&) const = 0;
68 virtual void transform_image_coordinates(BasicCoordinate<3, int>&) const = 0;
69#if 0
70 // would be useful at some point
71 virtual void
72 transform_incremental_image_coordinates(BasicCoordinate<3,int>&) const = 0;
73#endif
74
75 virtual void transform_proj_matrix_elems_for_one_bin(ProjMatrixElemsForOneBin& lor) const;
76
77 virtual void transform_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel&) const;
78};
79
86{
87public:
88 inline bool is_trivial() const override { return true; }
89 inline void transform_bin_coordinates(Bin& b) const override {}
90 inline void transform_view_segment_indices(ViewSegmentNumbers& n) const override {}
91 inline void transform_image_coordinates(BasicCoordinate<3, int>& c) const override {}
92 inline void transform_proj_matrix_elems_for_one_bin(ProjMatrixElemsForOneBin& lor) const override {}
93
94 void transform_proj_matrix_elems_for_one_densel(ProjMatrixElemsForOneDensel&) const override {}
95};
96
97END_NAMESPACE_STIR
98
99//#include "stir/recon_buildblock/SymmetryOperation.inl"
100
101#endif
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
A class for storing coordinates and value of a single projection bin.
Definition Bin.h:49
This stores the non-zero projection matrix elements for every 'densel' that contributes to a given bi...
Definition ProjMatrixElemsForOneBin.h:69
This stores the non-zero projection matrix elements for every 'voxel'.
Definition ProjMatrixElemsForOneDensel.h:60
Encodes symmetry operation on image coordinates and projection data coordinates.
Definition SymmetryOperation.h:62
A class implementing the trivial case where the symmetry operation does nothing at all.
Definition SymmetryOperation.h:86
alias for ViewgramIndices
Definition ViewSegmentNumbers.h:34
basic configuration include file