VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Imaging
Core
vtkImageBSplineInterpolator.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkImageBSplineInterpolator.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
39
#ifndef __vtkImageBSplineInterpolator_h
40
#define __vtkImageBSplineInterpolator_h
41
42
#include "vtkImagingCoreModule.h"
// For export macro
43
#include "
vtkAbstractImageInterpolator.h
"
44
45
#define VTK_IMAGE_BSPLINE_DEGREE_MAX 9
46
47
class
vtkImageData
;
48
struct
vtkInterpolationInfo
;
49
50
class
VTKIMAGINGCORE_EXPORT
vtkImageBSplineInterpolator
:
51
public
vtkAbstractImageInterpolator
52
{
53
public
:
54
static
vtkImageBSplineInterpolator
*
New
();
55
vtkTypeMacro(
vtkImageBSplineInterpolator
,
vtkAbstractImageInterpolator
);
56
virtual
void
PrintSelf
(ostream& os,
vtkIndent
indent);
57
59
62
void
SetSplineDegree(
int
degree
);
63
int
GetSplineDegree
() {
return
this->SplineDegree; };
64
int
GetSplineDegreeMinValue
() {
return
0; }
65
int
GetSplineDegreeMaxValue
() {
return
VTK_IMAGE_BSPLINE_DEGREE_MAX
; }
67
73
virtual
void
ComputeSupportSize
(
const
double
matrix[16],
int
support[3]);
74
77
virtual
bool
IsSeparable
();
78
80
87
virtual
void
PrecomputeWeightsForExtent
(
88
const
double
matrix[16],
const
int
extent
[6],
int
newExtent[6],
89
vtkInterpolationWeights
*&weights);
90
virtual
void
PrecomputeWeightsForExtent
(
91
const
float
matrix[16],
const
int
extent
[6],
int
newExtent[6],
92
vtkInterpolationWeights
*&weights);
94
96
virtual
void
FreePrecomputedWeights
(
vtkInterpolationWeights
*&weights);
97
98
protected
:
99
vtkImageBSplineInterpolator
();
100
~
vtkImageBSplineInterpolator
();
101
103
virtual
void
InternalUpdate
();
104
106
virtual
void
InternalDeepCopy
(
vtkAbstractImageInterpolator
*obj);
107
109
110
virtual
void
GetInterpolationFunc
(
111
void
(**doublefunc)(
112
vtkInterpolationInfo
*,
const
double
[3],
double
*));
113
virtual
void
GetInterpolationFunc
(
114
void
(**floatfunc)(
115
vtkInterpolationInfo
*,
const
float
[3],
float
*));
117
119
120
virtual
void
GetRowInterpolationFunc
(
121
void
(**doublefunc)(
122
vtkInterpolationWeights
*,
int
,
int
,
int
,
double
*,
int
));
123
virtual
void
GetRowInterpolationFunc
(
124
void
(**floatfunc)(
125
vtkInterpolationWeights
*,
int
,
int
,
int
,
float
*,
int
));
127
129
virtual
void
BuildKernelLookupTable();
130
132
virtual
void
FreeKernelLookupTable();
133
134
int
SplineDegree
;
135
float
*
KernelLookupTable
;
136
137
private
:
138
vtkImageBSplineInterpolator
(
const
vtkImageBSplineInterpolator
&);
// Not implemented.
139
void
operator=(
const
vtkImageBSplineInterpolator
&);
// Not implemented.
140
};
141
142
#endif
Generated on Thu May 24 2012 22:22:24 for VTK by
1.8.1