STIR 6.4.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
30START_NAMESPACE_STIR
31
32// class Densel;
33class SymmetryOperation;
34
35#if 0
36class DenselIndexRange;
37#endif
38
50class DataSymmetriesForDensels
51{
52public:
53 DataSymmetriesForDensels();
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
79
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
103protected:
104 typedef DataSymmetriesForDensels root_type;
105
106 virtual bool blindly_equals(const root_type* const) const = 0;
107};
108
109END_NAMESPACE_STIR
110
111//#include "stir/recon_buildblock/DataSymmetriesForDensels.inl"
112
113#endif
defines the stir::Coordinate2D<coordT> class
Declaration of class stir::DataSymmetriesForViewSegmentNumbers.
Declaration of typedef stir::Densel.
virtual unique_ptr< SymmetryOperation > find_symmetry_operation_from_basic_densel(Densel &) const =0
given an arbitrary Densel 'b', find the basic Densel
virtual bool blindly_equals(const root_type *const) const =0
Definition DataSymmetriesForDensels.cxx:40
virtual int num_related_densels(const Densel &b) const
returns the number of Densels related to 'b'
Definition DataSymmetriesForDensels.cxx:59
virtual bool find_basic_densel(Densel &b) const
given an arbitrary Densel 'b', find the basic Densel
Definition DataSymmetriesForDensels.cxx:68
virtual void get_related_densels(std::vector< Densel > &, const Densel &b) const =0
fills in a vector with all the Densels that are related to 'b' (including itself)
Definition DataSymmetriesForDensels.inl:26
Coordinate3D< int > Densel
a typedef used for an element of a DiscretisedDensity
Definition Densel.h:36
Import of std::unique_ptr into the stir namespace, together with work-arounds for other compilers.