VTK
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
44 
45 #define VTK_IMAGE_BSPLINE_DEGREE_MAX 9
46 
47 class vtkImageData;
49 
52 {
53 public:
56  virtual void PrintSelf(ostream& os, vtkIndent indent);
57 
59 
63  int GetSplineDegree() { return this->SplineDegree; };
64  int GetSplineDegreeMinValue() { return 0; }
67 
73  virtual void ComputeSupportSize(const double matrix[16], int support[3]);
74 
77  virtual bool IsSeparable();
78 
80 
88  const double matrix[16], const int extent[6], int newExtent[6],
91  const float matrix[16], const int extent[6], int newExtent[6],
94 
97 
98 protected:
101 
103  virtual void InternalUpdate();
104 
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 
121  void (**doublefunc)(
122  vtkInterpolationWeights *, int, int, int, double *, int));
124  void (**floatfunc)(
125  vtkInterpolationWeights *, int, int, int, float *, int));
127 
129  virtual void BuildKernelLookupTable();
130 
132  virtual void FreeKernelLookupTable();
133 
136 
137 private:
138  vtkImageBSplineInterpolator(const vtkImageBSplineInterpolator&); // Not implemented.
139  void operator=(const vtkImageBSplineInterpolator&); // Not implemented.
140 };
141 
142 #endif
vtkImageBSplineInterpolator::PrecomputeWeightsForExtent
virtual void PrecomputeWeightsForExtent(const double matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)
vtkImageBSplineInterpolator::GetRowInterpolationFunc
virtual void GetRowInterpolationFunc(void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int))
vtkImageBSplineInterpolator::InternalDeepCopy
virtual void InternalDeepCopy(vtkAbstractImageInterpolator *obj)
vtkgl::weights
const GLbyte * weights
Definition: vtkgl.h:12766
VTK_IMAGE_BSPLINE_DEGREE_MAX
#define VTK_IMAGE_BSPLINE_DEGREE_MAX
Definition: vtkImageBSplineInterpolator.h:45
vtkgl::obj
GLsizei GLsizei GLuint * obj
Definition: vtkgl.h:11994
vtkImageBSplineInterpolator::GetInterpolationFunc
virtual void GetInterpolationFunc(void(**floatfunc)(vtkInterpolationInfo *, const float[3], float *))
vtkImageBSplineInterpolator::vtkImageBSplineInterpolator
vtkImageBSplineInterpolator()
vtkInterpolationInfo
Definition: vtkImageInterpolatorInternals.h:26
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkImageBSplineInterpolator::GetSplineDegreeMinValue
int GetSplineDegreeMinValue()
Definition: vtkImageBSplineInterpolator.h:64
vtkImageBSplineInterpolator::PrecomputeWeightsForExtent
virtual void PrecomputeWeightsForExtent(const float matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights)
vtkImageBSplineInterpolator::GetSplineDegree
int GetSplineDegree()
Definition: vtkImageBSplineInterpolator.h:63
vtkImageBSplineInterpolator::GetInterpolationFunc
virtual void GetInterpolationFunc(void(**doublefunc)(vtkInterpolationInfo *, const double[3], double *))
vtkImageBSplineInterpolator::ComputeSupportSize
virtual void ComputeSupportSize(const double matrix[16], int support[3])
vtkAbstractImageInterpolator.h
vtkImageBSplineInterpolator::New
static vtkImageBSplineInterpolator * New()
vtkImageBSplineInterpolator::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkImageBSplineInterpolator::GetSplineDegreeMaxValue
int GetSplineDegreeMaxValue()
Definition: vtkImageBSplineInterpolator.h:65
degree
boost::graph_traits< vtkGraph * >::degree_size_type degree(boost::graph_traits< vtkGraph * >::vertex_descriptor u, vtkGraph *g)
Definition: vtkBoostGraphAdapter.h:927
vtkImageBSplineInterpolator::KernelLookupTable
float * KernelLookupTable
Definition: vtkImageBSplineInterpolator.h:135
vtkImageBSplineInterpolator
perform b-spline interpolation on images
Definition: vtkImageBSplineInterpolator.h:52
vtkImageBSplineInterpolator::FreeKernelLookupTable
virtual void FreeKernelLookupTable()
vtkInterpolationWeights
Definition: vtkImageInterpolatorInternals.h:39
vtkgl::matrix
GLuint GLenum matrix
Definition: vtkgl.h:16451
vtkImageBSplineInterpolator::BuildKernelLookupTable
virtual void BuildKernelLookupTable()
vtkImageBSplineInterpolator::InternalUpdate
virtual void InternalUpdate()
vtkImageBSplineInterpolator::IsSeparable
virtual bool IsSeparable()
vtkImagingCoreModule.h
vtkX3D::extent
@ extent
Definition: vtkX3D.h:345
VTKIMAGINGCORE_EXPORT
#define VTKIMAGINGCORE_EXPORT
Definition: vtkImagingCoreModule.h:15
vtkImageBSplineInterpolator::FreePrecomputedWeights
virtual void FreePrecomputedWeights(vtkInterpolationWeights *&weights)
vtkImageBSplineInterpolator::SplineDegree
int SplineDegree
Definition: vtkImageBSplineInterpolator.h:134
vtkAbstractImageInterpolator
interpolate data values from images
Definition: vtkAbstractImageInterpolator.h:46
vtkImageBSplineInterpolator::SetSplineDegree
void SetSplineDegree(int degree)
vtkImageBSplineInterpolator::~vtkImageBSplineInterpolator
~vtkImageBSplineInterpolator()
vtkImageBSplineInterpolator::GetRowInterpolationFunc
virtual void GetRowInterpolationFunc(void(**floatfunc)(vtkInterpolationWeights *, int, int, int, float *, int))