ITK
6.0.0
Insight Toolkit
ITK
Modules
Core
SpatialObjects
include
itkSpatialObjectFactoryBase.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 itkSpatialObjectFactoryBase_h
29
#define itkSpatialObjectFactoryBase_h
30
31
#include "
itkObjectFactoryBase.h
"
32
#include "
itkSpatialObjectExport.h
"
33
#include "ITKSpatialObjectsExport.h"
34
35
namespace
itk
36
{
43
class
ITKSpatialObjects_EXPORT
SpatialObjectFactoryBase
:
public
ObjectFactoryBase
44
{
45
public
:
46
ITK_DISALLOW_COPY_AND_MOVE(
SpatialObjectFactoryBase
);
47
49
using
Self
=
SpatialObjectFactoryBase
;
50
using
Superclass
=
ObjectFactoryBase
;
51
using
Pointer
=
SmartPointer<Self>
;
52
using
ConstPointer
=
SmartPointer<const Self>
;
53
55
const
char
*
56
GetITKSourceVersion()
const override
;
57
58
const
char
*
59
GetDescription()
const override
;
60
62
itkOverrideGetNameOfClassMacro(
SpatialObjectFactoryBase
);
63
65
itkFactorylessNewMacro(
Self
);
66
68
static
void
69
RegisterDefaultSpatialObjects();
70
72
static
SpatialObjectFactoryBase
*
73
GetFactory
()
74
{
75
if
(m_Factory ==
nullptr
)
76
{
77
// Make and register the factory
78
auto
p =
SpatialObjectFactoryBase::New
();
79
m_Factory = p.GetPointer();
80
ObjectFactoryBase::RegisterFactory
(p);
81
p->RegisterDefaultSpatialObjects();
82
}
83
return
m_Factory;
84
}
87
void
88
RegisterSpatialObject
(
const
char
* classOverride,
89
const
char
* overrideClassName,
90
const
char
* description,
91
bool
enableFlag,
92
CreateObjectFunctionBase
* createFunction)
93
{
94
this->RegisterOverride(classOverride, overrideClassName, description, enableFlag, createFunction);
95
}
96
97
protected
:
98
SpatialObjectFactoryBase
();
99
~
SpatialObjectFactoryBase
()
override
;
100
101
private
:
102
static
SpatialObjectFactoryBase
*
m_Factory
;
103
};
104
}
// end namespace itk
105
#endif
itk::ObjectFactoryBase
Create instances of classes using an object factory.
Definition:
itkObjectFactoryBase.h:59
itk::SpatialObjectFactoryBase::RegisterSpatialObject
void RegisterSpatialObject(const char *classOverride, const char *overrideClassName, const char *description, bool enableFlag, CreateObjectFunctionBase *createFunction)
Definition:
itkSpatialObjectFactoryBase.h:88
itk::SpatialObjectFactoryBase
Create instances of SpatialObjects.
Definition:
itkSpatialObjectFactoryBase.h:43
itk::SmartPointer< Self >
itk::CreateObjectFunctionBase
Define API for object creation callback functions.
Definition:
itkCreateObjectFunction.h:31
itkSpatialObjectExport.h
itk::LightObject
Light weight base class for most itk classes.
Definition:
itkLightObject.h:55
itkObjectFactoryBase.h
itk::SpatialObjectFactoryBase::m_Factory
static SpatialObjectFactoryBase * m_Factory
Definition:
itkSpatialObjectFactoryBase.h:102
itk::SpatialObjectFactoryBase::GetFactory
static SpatialObjectFactoryBase * GetFactory()
Definition:
itkSpatialObjectFactoryBase.h:73
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition:
itkAnatomicalOrientation.h:29
itk::SpatialObjectFactoryBase::New
static Pointer New()
itk::ObjectFactoryBase::RegisterFactory
static bool RegisterFactory(ObjectFactoryBase *, InsertionPositionEnum where=InsertionPositionEnum::INSERT_AT_BACK, vcl_size_t position=0)
Generated on
unknown
for ITK by
1.8.16