STIR  6.2.0
RelatedDensels.h
Go to the documentation of this file.
1 //
2 //
15 /*
16  Copyright (C) 2000 PARAPET partners
17  Copyright (C) 2000- 2009, Hammersmith Imanet Ltd
18  This file is part of STIR.
19 
20  SPDX-License-Identifier: Apache-2.0 AND License-ref-PARAPET-license
21 
22  See STIR/LICENSE.txt for details
23 */
24 #ifndef __RelatedDensels_H__
25 #define __RelatedDensels_H__
26 
27 #include "stir/shared_ptr.h"
28 #include "stir/Densel.h"
29 #include <vector>
30 #include <iterator>
31 
32 START_NAMESPACE_STIR
33 
34 class DataSymmetriesForDensels;
41 {
42 public:
44 
45  typedef std::random_access_iterator_tag iterator_category;
46  typedef Densel value_type;
47  typedef value_type& reference;
48  typedef const value_type& const_reference;
49  typedef std::ptrdiff_t difference_type;
50  typedef std::size_t size_type;
51 
53  typedef std::vector<Densel>::iterator iterator;
54  typedef std::vector<Densel>::const_iterator const_iterator;
56  inline RelatedDensels();
57 
59  inline int get_num_related_densels() const;
60 
62  inline Densel get_basic_densel() const;
63 
64  // get the pointer to a ProjDataInfo class
65  // inline const ProjDataInfo * get_proj_data_info_sptr() const;
66 
68  inline const DataSymmetriesForDensels* get_symmetries_ptr() const;
69 
71  RelatedDensels get_empty_copy() const;
72 
73  // basic iterator support
74 
76  inline iterator begin();
78  inline iterator end();
80  inline const_iterator begin() const;
82  inline const_iterator end() const;
83 
84 private:
85  std::vector<Densel> related_densels;
86  shared_ptr<DataSymmetriesForDensels> symmetries;
88  inline RelatedDensels(const std::vector<Densel>& related_densels, const shared_ptr<DataSymmetriesForDensels>& symmetries_used);
89 };
90 
91 END_NAMESPACE_STIR
92 
94 
95 #endif //__RelatedDensels_H__
std::random_access_iterator_tag iterator_category
typedefs for iterator support
Definition: RelatedDensels.h:45
Declaration of typedef stir::Densel.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
std::vector< Densel >::iterator iterator
typedefs to make it partly comply with STL requirements
Definition: RelatedDensels.h:53
A class for encoding/finding symmetries common to the geometry of the projection data and the discret...
Definition: DataSymmetriesForDensels.h:50
Implementations of inline functions of class stir::RelatedDensels.
a templated class for 3-dimensional coordinates.
Definition: Coordinate3D.h:42
This class contains all information about a set of densels related by symmetry.
Definition: RelatedDensels.h:40