ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
Common
include
itkMetaDataObjectBase.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 itkMetaDataObjectBase_h
29
#define itkMetaDataObjectBase_h
30
31
#include "
itkLightObject.h
"
32
#include <typeinfo>
33
#include <iostream>
34
35
namespace
itk
36
{
47
class
ITKCommon_EXPORT
MetaDataObjectBase
:
public
LightObject
48
{
49
public
:
50
ITK_DISALLOW_COPY_AND_MOVE(
MetaDataObjectBase
);
51
53
using
Self
=
MetaDataObjectBase
;
54
using
Superclass
=
LightObject
;
55
using
Pointer
=
SmartPointer<Self>
;
56
using
ConstPointer
=
SmartPointer<const Self>
;
57
59
itkOverrideGetNameOfClassMacro(
MetaDataObjectBase
);
60
65
virtual
const
char
*
66
GetMetaDataObjectTypeName()
const
;
67
72
virtual
const
std::type_info &
73
GetMetaDataObjectTypeInfo()
const
;
74
76
friend
bool
77
operator==
(
const
Self
& lhs,
const
Self
& rhs)
78
{
79
return
lhs.Equal(rhs);
80
}
81
83
friend
bool
84
operator!=
(
const
Self
& lhs,
const
Self
& rhs)
85
{
86
return
!(lhs == rhs);
87
}
88
89
94
virtual
void
95
Print(std::ostream & os)
const
;
96
97
protected
:
98
MetaDataObjectBase
();
99
~
MetaDataObjectBase
()
override
;
100
101
private
:
102
virtual
bool
103
Equal(
const
MetaDataObjectBase
&)
const
= 0;
104
};
105
}
// namespace itk
106
107
#endif // itkMetaDataObjectBase_h
itk::MetaDataObjectBase
The common interface for MetaDataObject's.
Definition:
itkMetaDataObjectBase.h:47
itk::SmartPointer< Self >
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:55
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
itk::MetaDataObjectBase::operator==
friend bool operator==(const Self &lhs, const Self &rhs)
Definition:
itkMetaDataObjectBase.h:77
itk::MetaDataObjectBase::operator!=
friend bool operator!=(const Self &lhs, const Self &rhs)
Definition:
itkMetaDataObjectBase.h:84
itkLightObject.h
Generated on
unknown
for ITK by
1.8.16