VTK  9.1.0
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
32#include "vtkImagingCoreModule.h" // For export macro
33
34class VTKIMAGINGCORE_EXPORT vtkImageInterpolator : public vtkAbstractImageInterpolator
35{
36public:
39 void PrintSelf(ostream& os, vtkIndent indent) override;
40
42
46 virtual void SetInterpolationMode(int mode);
47 void SetInterpolationModeToNearest() { this->SetInterpolationMode(VTK_NEAREST_INTERPOLATION); }
48 void SetInterpolationModeToLinear() { this->SetInterpolationMode(VTK_LINEAR_INTERPOLATION); }
49 void SetInterpolationModeToCubic() { this->SetInterpolationMode(VTK_CUBIC_INTERPOLATION); }
50 int GetInterpolationMode() { return this->InterpolationMode; }
51 virtual const char* GetInterpolationModeAsString();
53
60 void ComputeSupportSize(const double matrix[16], int size[3]) override;
61
66 bool IsSeparable() override;
67
69
78 void PrecomputeWeightsForExtent(const double matrix[16], const int extent[6], int newExtent[6],
79 vtkInterpolationWeights*& weights) override;
80 void PrecomputeWeightsForExtent(const float matrix[16], const int extent[6], int newExtent[6],
81 vtkInterpolationWeights*& weights) override;
83
88
89protected:
92
96 void InternalUpdate() override;
97
102
104
108 void (**doublefunc)(vtkInterpolationInfo*, const double[3], double*)) override;
110 void (**floatfunc)(vtkInterpolationInfo*, const float[3], float*)) override;
112
114
118 void (**doublefunc)(vtkInterpolationWeights*, int, int, int, double*, int)) override;
120 void (**floatfunc)(vtkInterpolationWeights*, int, int, int, float*, int)) override;
122
124
125private:
127 void operator=(const vtkImageInterpolator&) = delete;
128};
129
130#endif
interpolate data values from images
interpolate data values from images
void GetRowInterpolationFunc(void(**doublefunc)(vtkInterpolationWeights *, int, int, int, double *, int)) override
Get the row interpolation functions.
void SetInterpolationModeToCubic()
The interpolation mode for point scalars (default: linear).
virtual const char * GetInterpolationModeAsString()
The interpolation mode for point scalars (default: linear).
void InternalDeepCopy(vtkAbstractImageInterpolator *obj) override
Copy all members.
void GetInterpolationFunc(void(**doublefunc)(vtkInterpolationInfo *, const double[3], double *)) override
Get the interpolation functions.
void SetInterpolationModeToLinear()
The interpolation mode for point scalars (default: linear).
void PrecomputeWeightsForExtent(const float 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...
bool IsSeparable() override
Returns true if the interpolator supports weight precomputation.
void InternalUpdate() override
Update the interpolator.
int GetInterpolationMode()
The interpolation mode for point scalars (default: linear).
static vtkImageInterpolator * New()
virtual void SetInterpolationMode(int mode)
The interpolation mode for point scalars (default: linear).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void FreePrecomputedWeights(vtkInterpolationWeights *&weights) override
Free the precomputed weights.
~vtkImageInterpolator() override
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...
void GetRowInterpolationFunc(void(**floatfunc)(vtkInterpolationWeights *, int, int, int, float *, int)) override
Get the row interpolation functions.
void SetInterpolationModeToNearest()
The interpolation mode for point scalars (default: linear).
void GetInterpolationFunc(void(**floatfunc)(vtkInterpolationInfo *, const float[3], float *)) override
Get the interpolation functions.
void ComputeSupportSize(const double matrix[16], int size[3]) override
Get the support size for use in computing update extents.
a simple class to control print indentation
Definition: vtkIndent.h:113
#define VTK_CUBIC_INTERPOLATION
#define VTK_NEAREST_INTERPOLATION
#define VTK_LINEAR_INTERPOLATION