STIR  6.2.0
DataSymmetriesForViewSegmentNumbers.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2000 PARAPET partners
5  Copyright (C) 2000- 2007, Hammersmith Imanet Ltd
6  This file is part of STIR.
7 
8  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
9 
10  See STIR/LICENSE.txt for details
11 */
22 #ifndef __DataSymmetriesForViewSegmentNumbers_H__
23 #define __DataSymmetriesForViewSegmentNumbers_H__
24 
26 #include <vector>
27 
28 START_NAMESPACE_STIR
29 
30 #if 0
31 class ViewSegmentIndexRange;
32 #endif
33 
50 {
51 public:
53 
54  virtual DataSymmetriesForViewSegmentNumbers* clone() const = 0;
55 
57 
58  bool operator==(const DataSymmetriesForViewSegmentNumbers&) const;
59 
61 
62  bool operator!=(const DataSymmetriesForViewSegmentNumbers&) const;
63 
64 #if 0
65  // TODO
67  virtual ViewSegmentIndexRange
68  get_basic_view_segment_index_range() const = 0;
69 #endif
70 
72  virtual void get_related_view_segment_numbers(std::vector<ViewSegmentNumbers>&, const ViewSegmentNumbers& v_s) const = 0;
73 
74 #if 0
75  // not yet, as would need copying of vector
77  virtual std::vector<ViewgramIndices>
78  get_related_view_segment_numbers(const ViewgramIndices& ind) const
79  {
80  }
81 #endif
82 
84 
86  virtual int num_related_view_segment_numbers(const ViewSegmentNumbers& v_s) const;
87 
88  std::size_t num_related_viewgram_indices(const ViewgramIndices& ind) const
89  {
90  return static_cast<std::size_t>(num_related_view_segment_numbers(ind));
91  }
92 
98  virtual bool find_basic_view_segment_numbers(ViewSegmentNumbers& v_s) const = 0;
99 
104  virtual bool is_basic(const ViewSegmentNumbers& v_s) const;
105 
106 protected:
108 
109  virtual bool blindly_equals(const root_type* const) const = 0;
110 };
111 
112 END_NAMESPACE_STIR
113 
114 #endif
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin)...
Definition: DataSymmetriesForViewSegmentNumbers.h:49
Definition of class stir::ViewSegmentNumbers, alias to stir::ViewgramIndices.
alias for ViewgramIndices
Definition: ViewSegmentNumbers.h:33
A very simple class to store all dincies to get a (2D) Viewgram.
Definition: ViewgramIndices.h:32