STIR 6.4.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
28START_NAMESPACE_STIR
29
30#if 0
31class ViewSegmentIndexRange;
32#endif
33
50{
51public:
53
54 virtual DataSymmetriesForViewSegmentNumbers* clone() const = 0;
55
57
59
61
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>
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
99
104 virtual bool is_basic(const ViewSegmentNumbers& v_s) const;
105
106protected:
107 typedef DataSymmetriesForViewSegmentNumbers root_type;
108
109 virtual bool blindly_equals(const root_type* const) const = 0;
110};
111
112END_NAMESPACE_STIR
113
114#endif
Definition of class stir::ViewSegmentNumbers, alias to stir::ViewgramIndices.
A class for encoding/finding symmetries. Works only on ViewSegmentNumbers (instead of Bin).
Definition DataSymmetriesForViewSegmentNumbers.h:50
bool operator!=(const DataSymmetriesForViewSegmentNumbers &) const
Check inequality.
Definition DataSymmetriesForViewSegmentNumbers.cxx:45
virtual bool blindly_equals(const root_type *const) const =0
Definition DataSymmetriesForViewSegmentNumbers.cxx:33
virtual bool is_basic(const ViewSegmentNumbers &v_s) const
test if a view/segment is 'basic'
Definition DataSymmetriesForViewSegmentNumbers.cxx:59
virtual bool find_basic_view_segment_numbers(ViewSegmentNumbers &v_s) const =0
given an arbitrary view/segment, find the basic view/segment
virtual void get_related_view_segment_numbers(std::vector< ViewSegmentNumbers > &, const ViewSegmentNumbers &v_s) const =0
fills in a vector with all the view/segments that are related to 'v_s' (including itself)
bool operator==(const DataSymmetriesForViewSegmentNumbers &) const
Check equality.
Definition DataSymmetriesForViewSegmentNumbers.cxx:39
alias for ViewgramIndices
Definition ViewSegmentNumbers.h:34
A very simple class to store all dincies to get a (2D) Viewgram.
Definition ViewgramIndices.h:33