Medical Imaging Interaction Toolkit
2023.04.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
16
#define mitkSegmentationTaskHasValueMacro(name) \
17
bool Has##name() const { \
18
return m_##name.has_value(); \
19
}
20
21
#define mitkSegmentationTaskGetValueMacro(type, name) \
22
type Get##name() const { \
23
if (m_##name.has_value()) return m_##name.value(); \
24
if (m_Defaults != nullptr && m_Defaults->m_##name.has_value()) return m_Defaults->m_##name.value(); \
25
return type(); \
26
}
27
28
#define mitkSegmentationTaskSetValueMacro(type, name) \
29
void Set##name(const type& value) { \
30
m_##name = value; \
31
}
32
33
#define mitkSegmentationTaskValueMacro(type, name) \
34
public: \
35
mitkSegmentationTaskHasValueMacro(name) \
36
mitkSegmentationTaskGetValueMacro(type, name) \
37
mitkSegmentationTaskSetValueMacro(type, name) \
38
private: \
39
std::optional<type> m_##name;
40
41
#define mitkSegmentationTaskListGetValueMacro(type, name) \
42
type Get##name(size_t index) const { \
43
return index < m_Tasks.size() ? m_Tasks[index].Get##name() : type(); \
44
}
45
46
#define mitkSegmentationTaskListHasValueMacro(name) \
47
bool Has##name(size_t index) const { \
48
return index < m_Tasks.size() && (m_Tasks[index].Has##name() || m_Defaults.Has##name()); \
49
}
50
51
#define mitkSegmentationTaskListSetDefaultMacro(type, name) \
52
void SetDefault##name(const type& value) { \
53
m_Defaults.Set##name(value); \
54
}
55
56
#define mitkSegmentationTaskListValueMacro(type, name) \
57
mitkSegmentationTaskListHasValueMacro(name) \
58
mitkSegmentationTaskListGetValueMacro(type, name) \
59
mitkSegmentationTaskListSetDefaultMacro(type, name)
60
61
#endif
src
MITK
Modules
Multilabel
mitkSegmentationTaskListMacros.h
Generated on Wed May 17 2023 16:26:10 for Medical Imaging Interaction Toolkit by
1.8.17