STIR 6.4.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
32START_NAMESPACE_STIR
33
34class DataSymmetriesForDensels;
41{
42public:
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
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
84private:
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
91END_NAMESPACE_STIR
92
94
95#endif //__RelatedDensels_H__
Declaration of typedef stir::Densel.
Implementations of inline functions of class stir::RelatedDensels.
A class for encoding/finding symmetries common to the geometry of the projection data and the discret...
Definition DataSymmetriesForDensels.h:51
Densel get_basic_densel() const
get 'basic' densel coordinates
Definition RelatedDensels.inl:47
const DataSymmetriesForDensels * get_symmetries_ptr() const
return the symmetries used
Definition RelatedDensels.inl:63
std::vector< Densel >::iterator iterator
typedefs to make it partly comply with STL requirements
Definition RelatedDensels.h:53
RelatedDensels()
Default constructor: creates no densels, no symmetries.
Definition RelatedDensels.inl:29
int get_num_related_densels() const
get the number of related densels
Definition RelatedDensels.inl:41
std::random_access_iterator_tag iterator_category
typedefs for iterator support
Definition RelatedDensels.h:45
iterator end()
iterator 'past' the last element of the vector
Definition RelatedDensels.inl:75
iterator begin()
use to initialise an iterator to the first element of the vector
Definition RelatedDensels.inl:69
RelatedDensels get_empty_copy() const
get an empty copy
Coordinate3D< int > Densel
a typedef used for an element of a DiscretisedDensity
Definition Densel.h:36
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...