Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
Src
E
elastix
Core
Install
elxComponentInstaller.h
Go to the documentation of this file.
1
/*=========================================================================
2
*
3
* Copyright UMC Utrecht and contributors
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
#ifndef elxComponentInstaller_h
20
#define elxComponentInstaller_h
21
22
#include "
elxInstallFunctions.h
"
23
#include "
elxPrepareImageTypeSupport.h
"
// For ElastixTypedef.
24
#include "elxSupportedImageTypes.h"
// For NrOfSupportedImageTypes.
25
26
namespace
elastix
27
{
31
template
<
template
<
class
TElastix>
class
TComponent,
unsigned
VIndex = 1>
32
class
ComponentInstaller
33
{
34
public
:
35
static
int
36
DO
(
ComponentDatabase
* cdb)
37
{
38
using
ElastixType =
typename
ElastixTypedef<VIndex>::ElastixType
;
39
const
auto
name = TComponent<ElastixType>::elxGetClassNameStatic();
40
const
int
dummy =
InstallFunctions<TComponent<ElastixType>
>::InstallComponent(name, VIndex, cdb);
41
if
(
ElastixTypedef<VIndex + 1>::IsDefined
)
42
{
43
return
ComponentInstaller<TComponent, VIndex + 1>::DO
(cdb);
44
}
45
return
dummy;
46
}
47
};
48
49
50
template
<
template
<
class
TElastix>
class
TComponent>
51
class
ComponentInstaller
<TComponent, NrOfSupportedImageTypes + 1>
52
{
53
public
:
54
static
int
55
DO
(
ComponentDatabase
* )
56
{
57
return
0;
58
}
59
};
60
61
}
// namespace elastix
62
63
#endif
elastix::ComponentDatabase
The ComponentDatabase class is a class that stores the New() functions of all components.
Definition
elxComponentDatabase.h:53
elastix::ComponentInstaller< TComponent, NrOfSupportedImageTypes+1 >::DO
static int DO(ComponentDatabase *)
Definition
elxComponentInstaller.h:55
elastix::ComponentInstaller
Definition
elxComponentInstaller.h:33
elastix::ComponentInstaller::DO
static int DO(ComponentDatabase *cdb)
Definition
elxComponentInstaller.h:36
elastix::ElastixTypedef
Definition
elxPrepareImageTypeSupport.h:35
elastix::ElastixTypedef::ElastixType
::itk::Object ElastixType
Definition
elxPrepareImageTypeSupport.h:39
elastix::InstallFunctions
A class with functions that are used to install elastix components.
Definition
elxInstallFunctions.h:47
elxInstallFunctions.h
elxPrepareImageTypeSupport.h
elastix
Definition
elxDefaultConstruct.h:25
Generated on 2024-07-17 for elastix by
1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d)