/usr/include/vtk-6.2/vtkGridTransform.h is in libvtk6-dev 6.2.0+dfsg1-10build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkGridTransform.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkGridTransform - a nonlinear warp transformation
// .SECTION Description
// vtkGridTransform describes a nonlinear warp transformation as a set
// of displacement vectors sampled along a uniform 3D grid.
// .SECTION Caveats
// The inverse grid transform is calculated using an iterative method,
// and is several times more expensive than the forward transform.
// .SECTION see also
// vtkThinPlateSplineTransform vtkGeneralTransform vtkTransformToGrid
#ifndef vtkGridTransform_h
#define vtkGridTransform_h
#include "vtkFiltersHybridModule.h" // For export macro
#include "vtkWarpTransform.h"
class vtkAlgorithmOutput;
class vtkGridTransformConnectionHolder;
class vtkImageData;
#define VTK_GRID_NEAREST VTK_NEAREST_INTERPOLATION
#define VTK_GRID_LINEAR VTK_LINEAR_INTERPOLATION
#define VTK_GRID_CUBIC VTK_CUBIC_INTERPOLATION
class VTKFILTERSHYBRID_EXPORT vtkGridTransform : public vtkWarpTransform
{
public:
static vtkGridTransform *New();
vtkTypeMacro(vtkGridTransform,vtkWarpTransform);
virtual void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set/Get the grid transform (the grid transform must have three
// components for displacement in x, y, and z respectively).
// The vtkGridTransform class will never modify the data.
// Note that SetDisplacementGridData() does not setup a pipeline
// connection whereas SetDisplacementGridConnection does.
virtual void SetDisplacementGridConnection(vtkAlgorithmOutput*);
virtual void SetDisplacementGridData(vtkImageData*);
virtual vtkImageData* GetDisplacementGrid();
// Description:
// Set scale factor to be applied to the displacements.
// This is used primarily for grids which contain integer
// data types. Default: 1
vtkSetMacro(DisplacementScale,double);
vtkGetMacro(DisplacementScale,double);
// Description:
// Set a shift to be applied to the displacements. The shift
// is applied after the scale, i.e. x = scale*y + shift.
// Default: 0
vtkSetMacro(DisplacementShift,double);
vtkGetMacro(DisplacementShift,double);
// Description:
// Set interpolation mode for sampling the grid. Higher-order
// interpolation allows you to use a sparser grid.
// Default: Linear.
void SetInterpolationMode(int mode);
vtkGetMacro(InterpolationMode,int);
void SetInterpolationModeToNearestNeighbor()
{ this->SetInterpolationMode(VTK_NEAREST_INTERPOLATION); };
void SetInterpolationModeToLinear()
{ this->SetInterpolationMode(VTK_LINEAR_INTERPOLATION); };
void SetInterpolationModeToCubic()
{ this->SetInterpolationMode(VTK_CUBIC_INTERPOLATION); };
const char *GetInterpolationModeAsString();
// Description:
// Make another transform of the same type.
vtkAbstractTransform *MakeTransform();
// Description:
// Get the MTime.
unsigned long GetMTime();
protected:
vtkGridTransform();
~vtkGridTransform();
// Description:
// Update the displacement grid.
void InternalUpdate();
// Description:
// Copy this transform from another of the same type.
void InternalDeepCopy(vtkAbstractTransform *transform);
// Description:
// Internal functions for calculating the transformation.
void ForwardTransformPoint(const float in[3], float out[3]);
void ForwardTransformPoint(const double in[3], double out[3]);
void ForwardTransformDerivative(const float in[3], float out[3],
float derivative[3][3]);
void ForwardTransformDerivative(const double in[3], double out[3],
double derivative[3][3]);
void InverseTransformPoint(const float in[3], float out[3]);
void InverseTransformPoint(const double in[3], double out[3]);
void InverseTransformDerivative(const float in[3], float out[3],
float derivative[3][3]);
void InverseTransformDerivative(const double in[3], double out[3],
double derivative[3][3]);
//BTX
void (*InterpolationFunction)(double point[3], double displacement[3],
double derivatives[3][3],
void *gridPtr, int gridType,
int inExt[6], vtkIdType inInc[3]);
//ETX
int InterpolationMode;
double DisplacementScale;
double DisplacementShift;
void *GridPointer;
int GridScalarType;
double GridSpacing[3];
double GridOrigin[3];
int GridExtent[6];
vtkIdType GridIncrements[3];
private:
vtkGridTransform(const vtkGridTransform&); // Not implemented.
void operator=(const vtkGridTransform&); // Not implemented.
vtkGridTransformConnectionHolder* ConnectionHolder;
};
//BTX
//----------------------------------------------------------------------------
inline const char *vtkGridTransform::GetInterpolationModeAsString()
{
switch (this->InterpolationMode)
{
case VTK_GRID_NEAREST:
return "NearestNeighbor";
case VTK_GRID_LINEAR:
return "Linear";
case VTK_GRID_CUBIC:
return "Cubic";
default:
return "";
}
}
//ETX
#endif
|