VTK
vtkImageInterpolator.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageInterpolator.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 =========================================================================*/
34 #ifndef vtkImageInterpolator_h
35 #define vtkImageInterpolator_h
36 
37 #include "vtkImagingCoreModule.h" // For export macro
39 
40 class VTKIMAGINGCORE_EXPORT vtkImageInterpolator :
42 {
43 public:
46  void PrintSelf(ostream& os, vtkIndent indent) override;
47 
49 
53  virtual void SetInterpolationMode(int mode);
55  this->SetInterpolationMode(VTK_NEAREST_INTERPOLATION); }
57  this->SetInterpolationMode(VTK_LINEAR_INTERPOLATION); }
59  this->SetInterpolationMode(VTK_CUBIC_INTERPOLATION); }
60  int GetInterpolationMode() { return this->InterpolationMode; }
61  virtual const char *GetInterpolationModeAsString();
63 
70  void ComputeSupportSize(const double matrix[16], int support[3]) override;
71 
76  bool IsSeparable() override;
77 
79 
89  const double matrix[16], const int extent[6], int newExtent[6],
90  vtkInterpolationWeights *&weights) override;
92  const float matrix[16], const int extent[6], int newExtent[6],
93  vtkInterpolationWeights *&weights) override;
95 
100 
101 protected:
104 
108  void InternalUpdate() override;
109 
114 
116 
120  void (**doublefunc)(
121  vtkInterpolationInfo *, const double [3], double *)) override;
123  void (**floatfunc)(
124  vtkInterpolationInfo *, const float [3], float *)) override;
126 
128 
132  void (**doublefunc)(
133  vtkInterpolationWeights *, int, int, int, double *, int)) override;
135  void (**floatfunc)(
136  vtkInterpolationWeights *, int, int, int, float *, int)) override;
138 
140 
141 private:
143  void operator=(const vtkImageInterpolator&) = delete;
144 };
145 
146 #endif
vtkImageInterpolator::GetRowInterpolationFunc
void GetRowInterpolationFunc(void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int)) override
Get the row interpolation functions.
vtkImageInterpolator::FreePrecomputedWeights
void FreePrecomputedWeights(vtkInterpolationWeights *&weights) override
Free the precomputed weights.
vtkInterpolationInfo
Definition: vtkImageInterpolatorInternals.h:27
vtkImageInterpolator::InternalUpdate
void InternalUpdate() override
Update the interpolator.
VTK_CUBIC_INTERPOLATION
#define VTK_CUBIC_INTERPOLATION
Definition: vtkSystemIncludes.h:109
vtkImageInterpolator::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
VTK_NEAREST_INTERPOLATION
#define VTK_NEAREST_INTERPOLATION
Definition: vtkSystemIncludes.h:107
vtkImageInterpolator::SetInterpolationModeToCubic
void SetInterpolationModeToCubic()
Definition: vtkImageInterpolator.h:58
vtkImageInterpolator::New
static vtkImageInterpolator * New()
vtkImageInterpolator
interpolate data values from images
Definition: vtkImageInterpolator.h:42
vtkImageInterpolator::SetInterpolationMode
virtual void SetInterpolationMode(int mode)
The interpolation mode for point scalars (default: linear).
vtkImageInterpolator::GetInterpolationFunc
void GetInterpolationFunc(void(**doublefunc)(vtkInterpolationInfo *, const double[3], double *)) override
Get the interpolation functions.
vtkImageInterpolator::~vtkImageInterpolator
~vtkImageInterpolator() override
vtkImageInterpolator::GetInterpolationMode
int GetInterpolationMode()
Definition: vtkImageInterpolator.h:60
vtkImageInterpolator::vtkImageInterpolator
vtkImageInterpolator()
vtkImageInterpolator::InterpolationMode
int InterpolationMode
Definition: vtkImageInterpolator.h:139
vtkAbstractImageInterpolator.h
vtkImageInterpolator::PrecomputeWeightsForExtent
void PrecomputeWeightsForExtent(const double matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights) override
If the data is going to be sampled on a regular grid, then the interpolation weights can be precomput...
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
VTK_LINEAR_INTERPOLATION
#define VTK_LINEAR_INTERPOLATION
Definition: vtkSystemIncludes.h:108
vtkImageInterpolator::ComputeSupportSize
void ComputeSupportSize(const double matrix[16], int support[3]) override
Get the support size for use in computing update extents.
vtkImageInterpolator::IsSeparable
bool IsSeparable() override
Returns true if the interpolator supports weight precomputation.
vtkImageInterpolator::GetRowInterpolationFunc
void GetRowInterpolationFunc(void(**floatfunc)(vtkInterpolationWeights *, int, int, int, float *, int)) override
vtkInterpolationWeights
Definition: vtkImageInterpolatorInternals.h:40
vtkImageInterpolator::PrecomputeWeightsForExtent
void PrecomputeWeightsForExtent(const float matrix[16], const int extent[6], int newExtent[6], vtkInterpolationWeights *&weights) override
vtkX3D::mode
@ mode
Definition: vtkX3D.h:247
vtkX3D::extent
@ extent
Definition: vtkX3D.h:345
vtkAbstractImageInterpolator
interpolate data values from images
Definition: vtkAbstractImageInterpolator.h:50
vtkImageInterpolator::SetInterpolationModeToNearest
void SetInterpolationModeToNearest()
Definition: vtkImageInterpolator.h:54
vtkImageInterpolator::SetInterpolationModeToLinear
void SetInterpolationModeToLinear()
Definition: vtkImageInterpolator.h:56
vtkImageInterpolator::GetInterpolationModeAsString
virtual const char * GetInterpolationModeAsString()
vtkImageInterpolator::InternalDeepCopy
void InternalDeepCopy(vtkAbstractImageInterpolator *obj) override
Copy all members.
vtkImageInterpolator::GetInterpolationFunc
void GetInterpolationFunc(void(**floatfunc)(vtkInterpolationInfo *, const float[3], float *)) override