ITK
5.2.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkAutoPointerDataObjectDecorator.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
* http://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 itkAutoPointerDataObjectDecorator_h
29
#define itkAutoPointerDataObjectDecorator_h
30
31
#include <memory>
32
#include "
itkDataObject.h
"
33
#include "
itkObjectFactory.h
"
34
35
namespace
itk
36
{
60
template
<
typename
T>
61
class
ITK_TEMPLATE_EXPORT
AutoPointerDataObjectDecorator
:
public
DataObject
62
{
63
public
:
64
ITK_DISALLOW_COPY_AND_MOVE(
AutoPointerDataObjectDecorator
);
65
67
using
Self
=
AutoPointerDataObjectDecorator
;
68
using
Superclass
=
DataObject
;
69
using
Pointer
=
SmartPointer<Self>
;
70
using
ConstPointer
=
SmartPointer<const Self>
;
71
73
using
ComponentType
= T;
74
using
ComponentPointer
= std::unique_ptr<T>;
75
77
itkNewMacro(
Self
);
78
80
itkTypeMacro(
AutoPointerDataObjectDecorator
,
DataObject
);
81
83
virtual
void
84
Set(T * val);
85
87
virtual
T *
88
Get
()
89
{
90
return
m_Component.get();
91
}
92
virtual
const
T *
93
Get
()
const
94
{
95
return
m_Component.get();
96
}
98
99
protected
:
100
AutoPointerDataObjectDecorator
() =
default
;
101
~
AutoPointerDataObjectDecorator
()
override
=
default
;
102
void
103
PrintSelf(std::ostream & os,
Indent
indent)
const override
;
104
105
protected
:
106
private
:
107
ComponentPointer
m_Component
;
108
};
109
}
// end namespace itk
110
111
#ifndef ITK_MANUAL_INSTANTIATION
112
# include "itkAutoPointerDataObjectDecorator.hxx"
113
#endif
114
115
#endif
itk::AutoPointerDataObjectDecorator::ComponentPointer
std::unique_ptr< T > ComponentPointer
Definition:
itkAutoPointerDataObjectDecorator.h:74
itkObjectFactory.h
itk::AutoPointerDataObjectDecorator
Decorates any pointer to a simple object with a DataObject API using AutoPointer semantics.
Definition:
itkAutoPointerDataObjectDecorator.h:61
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition:
itkIndent.h:49
itkDataObject.h
itk::AutoPointerDataObjectDecorator::Get
virtual const T * Get() const
Definition:
itkAutoPointerDataObjectDecorator.h:93
itk::AutoPointerDataObjectDecorator::m_Component
ComponentPointer m_Component
Definition:
itkAutoPointerDataObjectDecorator.h:107
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:
itkAnnulusOperator.h:24
itk::AutoPointerDataObjectDecorator::ComponentType
T ComponentType
Definition:
itkAutoPointerDataObjectDecorator.h:73
itk::AutoPointerDataObjectDecorator::Get
virtual T * Get()
Definition:
itkAutoPointerDataObjectDecorator.h:88
itk::DataObject
Base class for all data objects in ITK.
Definition:
itkDataObject.h:293
Generated on Thu Apr 1 2021 01:35:11 for ITK by
1.8.16