Medical Imaging Interaction Toolkit
2026.06.00
Medical Imaging Interaction Toolkit
mitkSegmentationTaskListMacros.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
#ifndef mitkSegmentationTaskListMacros_h
14
#define mitkSegmentationTaskListMacros_h
15
25
#define mitkSegmentationTaskHasValueMacro(name) \
26
bool Has##name() const { \
27
return m_##name.has_value(); \
28
}
29
31
#define mitkSegmentationTaskGetValueMacro(type, name) \
32
type Get##name() const { \
33
if (m_##name.has_value()) return m_##name.value(); \
34
if (m_Defaults != nullptr && m_Defaults->m_##name.has_value()) return m_Defaults->m_##name.value(); \
35
return type(); \
36
}
37
39
#define mitkSegmentationTaskSetValueMacro(type, name) \
40
void Set##name(const type& value) { \
41
m_##name = value; \
42
}
43
45
#define mitkSegmentationTaskValueMacro(type, name) \
46
public: \
47
mitkSegmentationTaskHasValueMacro(name) \
48
mitkSegmentationTaskGetValueMacro(type, name) \
49
mitkSegmentationTaskSetValueMacro(type, name) \
50
private: \
51
std::optional<type> m_##name;
52
54
#define mitkSegmentationTaskListGetValueMacro(type, name) \
55
type Get##name(size_t index) const { \
56
return index < m_Tasks.size() ? m_Tasks[index].Get##name() : type(); \
57
}
58
60
#define mitkSegmentationTaskListHasValueMacro(name) \
61
bool Has##name(size_t index) const { \
62
return index < m_Tasks.size() && (m_Tasks[index].Has##name() || m_Defaults.Has##name()); \
63
}
64
66
#define mitkSegmentationTaskListSetDefaultMacro(type, name) \
67
void SetDefault##name(const type& value) { \
68
m_Defaults.Set##name(value); \
69
}
70
72
#define mitkSegmentationTaskListValueMacro(type, name) \
73
mitkSegmentationTaskListHasValueMacro(name) \
74
mitkSegmentationTaskListGetValueMacro(type, name) \
75
mitkSegmentationTaskListSetDefaultMacro(type, name)
76
77
#endif
src
MITK
Modules
Segmentation
include
mitkSegmentationTaskListMacros.h
Generated by
1.9.1