37 #ifndef __vtkBSplineTransform_h
38 #define __vtkBSplineTransform_h
40 #include "vtkFiltersHybridModule.h"
41 #include "vtkWarpTransform.h"
43 class vtkAlgorithmOutput;
44 class vtkBSplineTransformConnectionHolder;
47 #define VTK_BSPLINE_EDGE 0
48 #define VTK_BSPLINE_ZERO 1
49 #define VTK_BSPLINE_ZERO_AT_BORDER 2
56 virtual void PrintSelf(ostream& os, vtkIndent indent);
63 virtual void SetCoefficientConnection(vtkAlgorithmOutput*);
64 virtual void SetCoefficientData(vtkImageData*);
65 virtual vtkImageData* GetCoefficientData();
70 vtkSetMacro(DisplacementScale,
double);
82 vtkSetClampMacro(BorderMode,
int,
90 vtkGetMacro(BorderMode,
int);
91 const char *GetBorderModeAsString();
95 vtkAbstractTransform *MakeTransform();
98 unsigned long GetMTime();
105 void InternalUpdate();
108 void InternalDeepCopy(vtkAbstractTransform *transform);
112 void ForwardTransformPoint(
const float in[3],
float out[3]);
113 void ForwardTransformPoint(
const double in[3],
double out[3]);
116 void ForwardTransformDerivative(
const float in[3],
float out[3],
117 float derivative[3][3]);
118 void ForwardTransformDerivative(
const double in[3],
double out[3],
119 double derivative[3][3]);
121 void InverseTransformPoint(
const float in[3],
float out[3]);
122 void InverseTransformPoint(
const double in[3],
double out[3]);
124 void InverseTransformDerivative(
const float in[3],
float out[3],
125 float derivative[3][3]);
126 void InverseTransformDerivative(
const double in[3],
double out[3],
127 double derivative[3][3]);
130 void (*CalculateSpline)(
const double point[3],
double displacement[3],
131 double derivatives[3][3],
132 void *gridPtr,
int inExt[6], vtkIdType inInc[3],
140 double GridSpacing[3];
141 double GridOrigin[3];
143 vtkIdType GridIncrements[3];
149 vtkBSplineTransformConnectionHolder* ConnectionHolder;