Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkIsoDoseLevelCollections.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 
14 #ifndef mitkIsoDoseLevelCollections_h
15 #define mitkIsoDoseLevelCollections_h
16 
17 #include <set>
18 #include <itkVectorContainer.h>
19 
20 #include <mitkIsoDoseLevel.h>
21 
22 namespace mitk
23 {
35  typedef ::itk::VectorContainer<unsigned int, mitk::IsoDoseLevel::Pointer> IsoDoseLevelVector;
36 
37 
53  public itk::Object
54 {
55 public:
57  itkNewMacro(Self);
58 
59 private:
61  typedef std::vector< IsoDoseLevel::Pointer > InternalVectorType;
62  typedef InternalVectorType::size_type size_type;
63  typedef InternalVectorType::iterator VectorIterator;
64  typedef InternalVectorType::const_iterator VectorConstIterator;
65 
66  InternalVectorType m_IsoLevels;
67 
68 protected:
70  explicit IsoDoseLevelSet(const IsoDoseLevelSet & other);
71 
72  ~IsoDoseLevelSet() override {};
73 
75 
76 public:
78  typedef size_type IsoLevelIndexType;
79 
82 
84  class ConstIterator;
85 
87  friend class ConstIterator;
88 
96  {
97 public:
100 
105  ConstIterator(const VectorConstIterator & i): m_Iter(i) {}
106 
111  ConstIterator(const ConstIterator & r) { m_Iter = r.m_Iter; }
112 
114  const IsoDoseLevel & operator*() { return *(m_Iter->GetPointer()); }
115 
117  const IsoDoseLevel * operator->() { return m_Iter->GetPointer(); }
118 
120  ConstIterator & operator++() {++m_Iter; return *this; }
121 
123  ConstIterator operator++(int) { ConstIterator temp(*this); ++m_Iter; return temp; }
124 
126  ConstIterator & operator--() {--m_Iter; return *this; }
127 
129  ConstIterator operator--(int) { ConstIterator temp(*this); --m_Iter; return temp; }
130 
132  ConstIterator & operator=(const ConstIterator & r) {m_Iter = r.m_Iter; return *this; }
133 
135  bool operator==(const ConstIterator & r) const { return m_Iter == r.m_Iter; }
136 
138  bool operator!=(const ConstIterator & r) const { return m_Iter != r.m_Iter; }
139 
141  const IsoDoseLevel & Value(void) const { return *(m_Iter->GetPointer()); }
142 
143 private:
144  VectorConstIterator m_Iter;
145  };
146 
147  /* Declare the public interface routines. */
148 
156 
164 
174  void SetIsoDoseLevel(const IsoDoseLevel* level);
175 
182 
188  bool DoseLevelExists(DoseValueType value) const;
189 
195 
201 
206  ConstIterator Begin(void) const;
207 
212  ConstIterator End(void) const;
213 
218  IsoLevelIndexType Size(void) const;
219 
224  void Reset(void);
225 };
226 
227 }
228 
229 #endif
#define MITKRT_EXPORT
Definition: MitkRTExports.h:15
STL-style const iterator for read-only traversal of the iso dose level set.
ConstIterator & operator=(const ConstIterator &r)
Assignment operator.
ConstIterator operator--(int)
Post-decrement operator.
const IsoDoseLevel & Value(void) const
Get the value at the current position.
const IsoDoseLevel * operator->()
Arrow operator.
bool operator!=(const ConstIterator &r) const
Inequality comparison.
ConstIterator & operator--()
Pre-decrement operator.
ConstIterator(const VectorConstIterator &i)
Constructs a ConstIterator from an internal vector const iterator.
ConstIterator & operator++()
Pre-increment operator.
const IsoDoseLevel & operator*()
Dereference operator.
ConstIterator operator++(int)
Post-increment operator.
ConstIterator(const ConstIterator &r)
Copy constructor.
bool operator==(const ConstIterator &r) const
Equality comparison.
Sorted set of dose iso levels for dose distribution visualization.
mitkClassMacroItkParent(IsoDoseLevelSet, itk::Object)
IsoDoseLevel::DoseValueType DoseValueType
Dose value type inherited from IsoDoseLevel.
void DeleteIsoDoseLevel(DoseValueType value)
Remove an iso dose level identified by its dose value.
void SetIsoDoseLevel(const IsoDoseLevel *level)
Insert or replace an iso dose level.
ConstIterator End(void) const
Get a const iterator pointing past the last iso dose level.
IsoLevelIndexType Size(void) const
Get the number of iso dose levels in the set.
ConstIterator Begin(void) const
Get a const iterator pointing to the first iso dose level.
void Reset(void)
Remove all iso dose levels from the set.
const IsoDoseLevel & GetIsoDoseLevel(DoseValueType value) const
Retrieve an iso dose level by its dose value.
void DeleteIsoDoseLevel(IsoLevelIndexType index)
Remove an iso dose level identified by its positional index.
mitkCloneMacro(IsoDoseLevelSet)
IsoDoseLevelSet(const IsoDoseLevelSet &other)
bool DoseLevelExists(DoseValueType value) const
Check whether an iso dose level with the given dose value exists.
size_type IsoLevelIndexType
Index type for accessing iso levels by position.
bool DoseLevelExists(IsoLevelIndexType index) const
Check whether an iso dose level exists at the given index.
const IsoDoseLevel & GetIsoDoseLevel(IsoLevelIndexType index) const
Retrieve an iso dose level by its positional index.
Stores values needed for the representation/visualization of dose iso levels.
DoseValueRel DoseValueType
Type for the relative dose value of this iso level.
Find image slices visible on a given plane.
::itk::VectorContainer< unsigned int, mitk::IsoDoseLevel::Pointer > IsoDoseLevelVector