ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkSimpleDataObjectDecorator.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright NumFOCUS
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* https://www.apache.org/licenses/LICENSE-2.0.txt
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*=========================================================================*/
18
/*=========================================================================
19
*
20
* Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21
*
22
* Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23
*
24
* For complete copyright, license and disclaimer of warranty information
25
* please refer to the NOTICE file at the top of the ITK source tree.
26
*
27
*=========================================================================*/
28
#ifndef itkSimpleDataObjectDecorator_h
29
#define itkSimpleDataObjectDecorator_h
30
31
#include "
itkDataObject.h
"
32
#include "
itkObjectFactory.h
"
33
34
namespace
itk
35
{
65
template
<
typename
T>
66
class
ITK_TEMPLATE_EXPORT
SimpleDataObjectDecorator
:
public
DataObject
67
{
68
public
:
69
ITK_DISALLOW_COPY_AND_MOVE(
SimpleDataObjectDecorator
);
70
72
using
Self
=
SimpleDataObjectDecorator
;
73
using
Superclass
=
DataObject
;
74
using
Pointer
=
SmartPointer<Self>
;
75
using
ConstPointer
=
SmartPointer<const Self>
;
76
78
using
ComponentType
= T;
79
81
itkNewMacro(
Self
);
82
84
itkOverrideGetNameOfClassMacro(
SimpleDataObjectDecorator
);
85
87
virtual
void
88
Set(
const
T & val);
89
91
virtual
T &
92
Get
()
93
{
94
return
m_Component;
95
}
96
virtual
const
T &
97
Get
()
const
98
{
99
return
m_Component;
100
}
103
protected
:
104
SimpleDataObjectDecorator
() =
default
;
105
~
SimpleDataObjectDecorator
()
override
=
default
;
106
void
107
PrintSelf(std::ostream & os,
Indent
indent)
const override
;
108
109
protected
:
110
private
:
111
ComponentType
m_Component{};
112
bool
m_Initialized{};
113
};
114
}
// end namespace itk
115
116
#ifndef ITK_MANUAL_INSTANTIATION
117
# include "itkSimpleDataObjectDecorator.hxx"
118
#endif
119
120
#endif
itk::SimpleDataObjectDecorator
Decorates any "simple" data type (data types without smart pointers) with a DataObject API.
Definition:
itkSimpleDataObjectDecorator.h:66
itkObjectFactory.h
itk::SimpleDataObjectDecorator::Get
virtual const T & Get() const
Definition:
itkSimpleDataObjectDecorator.h:97
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition:
itkIndent.h:49
itkDataObject.h
itk::SimpleDataObjectDecorator::ComponentType
T ComponentType
Definition:
itkSimpleDataObjectDecorator.h:78
itk::DataObject
class ITK_FORWARD_EXPORT DataObject
Definition:
itkDataObject.h:42
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
itk::Object
Base class for most ITK classes.
Definition:
itkObject.h:61
itk::SimpleDataObjectDecorator::Get
virtual T & Get()
Definition:
itkSimpleDataObjectDecorator.h:92
itk::DataObject
Base class for all data objects in ITK.
Definition:
itkDataObject.h:293
Generated on
unknown
for ITK by
1.8.16