Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
src
Common
Transforms
itkBSplineInterpolationWeightFunction2.h
Go to the documentation of this file.
1
/*======================================================================
2
3
This file is part of the elastix software.
4
5
Copyright (c) University Medical Center Utrecht. All rights reserved.
6
See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7
details.
8
9
This software is distributed WITHOUT ANY WARRANTY; without even
10
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11
PURPOSE. See the above copyright notices for more information.
12
13
======================================================================*/
14
#ifndef __itkBSplineInterpolationWeightFunction2_h
15
#define __itkBSplineInterpolationWeightFunction2_h
16
17
#include "
itkBSplineInterpolationWeightFunctionBase.h
"
18
19
namespace
itk
20
{
21
38
template
<
class
TCoordRep =
float
,
39
unsigned
int
VSpaceDimension = 2,
40
unsigned
int
VSplineOrder = 3 >
41
class
ITK_EXPORT
BSplineInterpolationWeightFunction2
:
42
public
BSplineInterpolationWeightFunctionBase
<
43
TCoordRep, VSpaceDimension, VSplineOrder >
44
{
45
public
:
47
typedef
BSplineInterpolationWeightFunction2
Self
;
48
typedef
BSplineInterpolationWeightFunctionBase
<
49
TCoordRep, VSpaceDimension, VSplineOrder >
Superclass
;
50
typedef
SmartPointer<Self>
Pointer
;
51
typedef
SmartPointer<const Self>
ConstPointer
;
52
54
itkNewMacro(
Self
);
55
57
itkTypeMacro(
BSplineInterpolationWeightFunction2
,
58
BSplineInterpolationWeightFunctionBase
);
59
61
itkStaticConstMacro( SpaceDimension,
unsigned
int
, VSpaceDimension );
62
64
itkStaticConstMacro( SplineOrder,
unsigned
int
, VSplineOrder );
65
67
typedef
typename
Superclass::WeightsType
WeightsType
;
68
typedef
typename
Superclass::IndexType
IndexType
;
69
typedef
typename
Superclass::SizeType
SizeType
;
70
typedef
typename
Superclass::ContinuousIndexType
ContinuousIndexType
;
71
72
protected
:
73
BSplineInterpolationWeightFunction2
();
74
~BSplineInterpolationWeightFunction2
() {};
75
77
typedef
typename
Superclass::KernelType KernelType;
78
typedef
typename
Superclass::DerivativeKernelType
DerivativeKernelType
;
79
typedef
typename
Superclass
80
::SecondOrderDerivativeKernelType
SecondOrderDerivativeKernelType
;
81
typedef
typename
Superclass::TableType
TableType
;
82
typedef
typename
Superclass::OneDWeightsType
OneDWeightsType
;
83
typedef
typename
Superclass::WeightArrayType
WeightArrayType
;
84
85
/* Compute the 1D weights, which are:
86
* [ \beta^3( x[i] - startIndex[i] ), \beta^3( x[i] - startIndex[i] - 1 ),
87
* \beta^3( x[i] - startIndex[i] - 2 ), \beta^3( x[i] - startIndex[i] - 3 ) ]
88
*/
89
virtual
void
Compute1DWeights(
90
const
ContinuousIndexType
& index,
91
const
IndexType
& startIndex,
92
OneDWeightsType
& weights1D )
const
;
93
94
private
:
95
BSplineInterpolationWeightFunction2
(
const
Self
&);
//purposely not implemented
96
void
operator=(
const
Self
&);
//purposely not implemented
97
98
};
99
100
}
// end namespace itk
101
102
// Define instantiation macro for this template.
103
#define ITK_TEMPLATE_BSplineInterpolationWeightFunction2(_, EXPORT, x, y) namespace itk { \
104
_(3(class EXPORT BSplineInterpolationWeightFunction2< ITK_TEMPLATE_3 x >)) \
105
namespace Templates { typedef BSplineInterpolationWeightFunction2< ITK_TEMPLATE_3 x > BSplineInterpolationWeightFunction2##y; } \
106
}
107
108
#if ITK_TEMPLATE_EXPLICIT
109
# include "Templates/itkBSplineInterpolationWeightFunction2+-.h"
110
#endif
111
112
#if ITK_TEMPLATE_TXX
113
# include "itkBSplineInterpolationWeightFunction2.txx"
114
#endif
115
116
117
#endif
Generated on 27-06-2013 for elastix by
1.8.3.1