STIR  6.2.0
DataSymmetriesForDensels.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2001- 2007, Hammersmith Imanet Ltd
5  This file is part of STIR.
6 
7  SPDX-License-Identifier: Apache-2.0
8 
9  See STIR/LICENSE.txt for details
10 */
20 #ifndef __stir_recon_buildblock_DataSymmetriesForDensels_H__
21 #define __stir_recon_buildblock_DataSymmetriesForDensels_H__
22 
24 #include "stir/Densel.h"
25 #include <vector>
26 #include <memory>
27 #include "stir/unique_ptr.h"
28 #include "stir/Coordinate2D.h"
29 
30 START_NAMESPACE_STIR
31 
32 // class Densel;
33 class SymmetryOperation;
34 
35 #if 0
36 class DenselIndexRange;
37 #endif
38 
51 {
52 public:
54 
55  virtual ~DataSymmetriesForDensels(){};
56 
57  virtual DataSymmetriesForDensels* clone() const = 0;
58 
59  bool operator==(const DataSymmetriesForDensels&) const;
60 
61  bool operator!=(const DataSymmetriesForDensels&) const;
62 
63 #if 0
64  TODO!
66  virtual DenselIndexRange
67  get_basic_densel_index_range() const = 0;
68 #endif
69 
71 
74  // next return value could be a RelatedDensels ???
75  virtual void get_related_densels(std::vector<Densel>&, const Densel& b) const = 0;
76 
77 #if 0
78 
81  virtual void
82  get_related_densels(std::vector<Densel>&, const Densel& b,
83  const int min_axial_pos_num, const int max_axial_pos_num) const;
84 #endif
85 
87  virtual int num_related_densels(const Densel& b) const;
88 
94  virtual unique_ptr<SymmetryOperation> find_symmetry_operation_from_basic_densel(Densel&) const = 0;
95 
101  virtual bool find_basic_densel(Densel& b) const;
102 
103 protected:
105 
106  virtual bool blindly_equals(const root_type* const) const = 0;
107 };
108 
109 END_NAMESPACE_STIR
110 
111 //#include "stir/recon_buildblock/DataSymmetriesForDensels.inl"
112 
113 #endif
Declaration of typedef stir::Densel.
A class for encoding/finding symmetries common to the geometry of the projection data and the discret...
Definition: DataSymmetriesForDensels.h:50
Declaration of class stir::DataSymmetriesForViewSegmentNumbers.
Import of std::unique_ptr into the stir namespace, together with work-arounds for other compilers...
defines the stir::Coordinate2D<coordT> class