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 =========================================================================*/
28 #ifndef vtkImageInterpolator_h
29 #define vtkImageInterpolator_h
30 
31 #include "vtkImagingCoreModule.h" // For export macro
33 
34 class VTKIMAGINGCORE_EXPORT vtkImageInterpolator :
36 {
37 public:
38  static vtkImageInterpolator *New();
40  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
43 
47  virtual void SetInterpolationMode(int mode);
49  this->SetInterpolationMode(VTK_NEAREST_INTERPOLATION); }
51  this->SetInterpolationMode(VTK_LINEAR_INTERPOLATION); }
53  this->SetInterpolationMode(VTK_CUBIC_INTERPOLATION); }
54  int GetInterpolationMode() { return this->InterpolationMode; }
55  virtual const char *GetInterpolationModeAsString();
57 
64  void ComputeSupportSize(const double matrix[16], int support[3]) override;
65 
70  bool IsSeparable() override;
71 
73 
83  const double matrix[16], const int extent[6], int newExtent[6],
84  vtkInterpolationWeights *&weights) override;
86  const float matrix[16], const int extent[6], int newExtent[6],
87  vtkInterpolationWeights *&weights) override;
89 
93  void FreePrecomputedWeights(vtkInterpolationWeights *&weights) override;
94 
95 protected:
97  ~vtkImageInterpolator() override;
98 
102  void InternalUpdate() override;
103 
108 
110 
114  void (**doublefunc)(
115  vtkInterpolationInfo *, const double [3], double *)) override;
117  void (**floatfunc)(
118  vtkInterpolationInfo *, const float [3], float *)) override;
120 
122 
126  void (**doublefunc)(
127  vtkInterpolationWeights *, int, int, int, double *, int)) override;
129  void (**floatfunc)(
130  vtkInterpolationWeights *, int, int, int, float *, int)) override;
132 
134 
135 private:
137  void operator=(const vtkImageInterpolator&) = delete;
138 };
139 
140 #endif
interpolate data values from images
#define VTK_LINEAR_INTERPOLATION
virtual void InternalDeepCopy(vtkAbstractImageInterpolator *obj)=0
Subclass-specific copy.
virtual void InternalUpdate()=0
Subclass-specific updates.
#define VTK_CUBIC_INTERPOLATION
void SetInterpolationModeToNearest()
The interpolation mode for point scalars (default: linear).
a simple class to control print indentation
Definition: vtkIndent.h:33
virtual void PrecomputeWeightsForExtent(const double matrix[16], const int extent[6], int checkExtent[6], vtkInterpolationWeights *&weights)
If the data is going to be sampled on a regular grid, then the interpolation weights can be precomput...
int GetInterpolationMode()
The interpolation mode for point scalars (default: linear).
virtual void GetRowInterpolationFunc(void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int))
Get the row interpolation functions.
void SetInterpolationModeToLinear()
The interpolation mode for point scalars (default: linear).
virtual bool IsSeparable()=0
True if the interpolation is separable, which means that the weights can be precomputed in order to a...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void FreePrecomputedWeights(vtkInterpolationWeights *&weights)
Free the weights that were provided by PrecomputeWeightsForExtent.
interpolate data values from images
void SetInterpolationModeToCubic()
The interpolation mode for point scalars (default: linear).
virtual void GetInterpolationFunc(void(**doublefunc)(vtkInterpolationInfo *, const double [3], double *))
Get the interpolation functions.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
#define VTK_NEAREST_INTERPOLATION
virtual void ComputeSupportSize(const double matrix[16], int support[3])=0
Get the support size for use in computing update extents.