VTK
vtkBSplineTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: $RCSfile: vtkBSplineTransform.h,v $
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 =========================================================================*/
37 #ifndef vtkBSplineTransform_h
38 #define vtkBSplineTransform_h
39 
40 #include "vtkFiltersHybridModule.h" // For export macro
41 #include "vtkWarpTransform.h"
42 
43 class vtkAlgorithmOutput;
44 class vtkBSplineTransformConnectionHolder;
45 class vtkImageData;
46 
47 #define VTK_BSPLINE_EDGE 0
48 #define VTK_BSPLINE_ZERO 1
49 #define VTK_BSPLINE_ZERO_AT_BORDER 2
50 
52 {
53 public:
56  virtual void PrintSelf(ostream& os, vtkIndent indent);
57 
59 
67 
69 
70  vtkSetMacro(DisplacementScale, double);
71  vtkGetMacro(DisplacementScale, double);
73 
75 
83  vtkSetClampMacro(BorderMode, int,
86  this->SetBorderMode(VTK_BSPLINE_EDGE); }
88  this->SetBorderMode(VTK_BSPLINE_ZERO); }
90  this->SetBorderMode(VTK_BSPLINE_ZERO_AT_BORDER); }
91  vtkGetMacro(BorderMode, int);
92  const char *GetBorderModeAsString();
94 
97 
99  unsigned long GetMTime();
100 
101 protected:
104 
107 
110 
112 
113  void ForwardTransformPoint(const float in[3], float out[3]);
114  void ForwardTransformPoint(const double in[3], double out[3]);
116 
117  void ForwardTransformDerivative(const float in[3], float out[3],
118  float derivative[3][3]);
119  void ForwardTransformDerivative(const double in[3], double out[3],
120  double derivative[3][3]);
121 
122  void InverseTransformPoint(const float in[3], float out[3]);
123  void InverseTransformPoint(const double in[3], double out[3]);
124 
125  void InverseTransformDerivative(const float in[3], float out[3],
126  float derivative[3][3]);
127  void InverseTransformDerivative(const double in[3], double out[3],
128  double derivative[3][3]);
129 
130 //BTX
131  void (*CalculateSpline)(const double point[3], double displacement[3],
132  double derivatives[3][3],
133  void *gridPtr, int inExt[6], vtkIdType inInc[3],
134  int borderMode);
135 //ETX
136 
139 
140  void *GridPointer;
141  double GridSpacing[3];
142  double GridOrigin[3];
143  int GridExtent[6];
144  vtkIdType GridIncrements[3];
145 
146 private:
147  vtkBSplineTransform(const vtkBSplineTransform&); // Not implemented.
148  void operator=(const vtkBSplineTransform&); // Not implemented.
149 
150  vtkBSplineTransformConnectionHolder* ConnectionHolder;
151 };
152 
153 #endif
vtkBSplineTransform::SetBorderModeToZero
void SetBorderModeToZero()
Definition: vtkBSplineTransform.h:87
vtkBSplineTransform::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkAbstractTransform
superclass for all geometric transformations
Definition: vtkAbstractTransform.h:50
vtkBSplineTransform::~vtkBSplineTransform
~vtkBSplineTransform()
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkBSplineTransform::SetCoefficientData
virtual void SetCoefficientData(vtkImageData *)
vtkBSplineTransform::New
static vtkBSplineTransform * New()
vtkBSplineTransform::InverseTransformDerivative
void InverseTransformDerivative(const double in[3], double out[3], double derivative[3][3])
vtkBSplineTransform::SetBorderModeToEdge
void SetBorderModeToEdge()
Definition: vtkBSplineTransform.h:85
vtkBSplineTransform::InternalDeepCopy
void InternalDeepCopy(vtkAbstractTransform *transform)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkBSplineTransform::ForwardTransformPoint
void ForwardTransformPoint(const float in[3], float out[3])
vtkBSplineTransform::SetCoefficientConnection
virtual void SetCoefficientConnection(vtkAlgorithmOutput *)
vtkgl::in
GLuint in
Definition: vtkgl.h:16905
vtkBSplineTransform::GetBorderModeAsString
const char * GetBorderModeAsString()
vtkBSplineTransform::ForwardTransformDerivative
void ForwardTransformDerivative(const double in[3], double out[3], double derivative[3][3])
VTK_BSPLINE_EDGE
#define VTK_BSPLINE_EDGE
Definition: vtkBSplineTransform.h:47
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkX3D::point
@ point
Definition: vtkX3D.h:236
vtkBSplineTransform::GetCoefficientData
virtual vtkImageData * GetCoefficientData()
VTKFILTERSHYBRID_EXPORT
#define VTKFILTERSHYBRID_EXPORT
Definition: vtkFiltersHybridModule.h:15
vtkBSplineTransform::vtkBSplineTransform
vtkBSplineTransform()
vtkBSplineTransform::ForwardTransformPoint
void ForwardTransformPoint(const double in[3], double out[3])
vtkBSplineTransform::MakeTransform
vtkAbstractTransform * MakeTransform()
vtkBSplineTransform::SetBorderModeToZeroAtBorder
void SetBorderModeToZeroAtBorder()
Definition: vtkBSplineTransform.h:89
vtkBSplineTransform::ForwardTransformDerivative
void ForwardTransformDerivative(const float in[3], float out[3], float derivative[3][3])
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkBSplineTransform::GridPointer
void * GridPointer
Definition: vtkBSplineTransform.h:140
vtkBSplineTransform::InverseTransformPoint
void InverseTransformPoint(const double in[3], double out[3])
vtkBSplineTransform::GetMTime
unsigned long GetMTime()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkBSplineTransform::InverseTransformDerivative
void InverseTransformDerivative(const float in[3], float out[3], float derivative[3][3])
vtkBSplineTransform::InternalUpdate
void InternalUpdate()
vtkFiltersHybridModule.h
vtkBSplineTransform
a cubic b-spline deformation transformation
Definition: vtkBSplineTransform.h:52
vtkWarpTransform.h
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:39
vtkBSplineTransform::InverseTransformPoint
void InverseTransformPoint(const float in[3], float out[3])
vtkgl::void
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
VTK_BSPLINE_ZERO
#define VTK_BSPLINE_ZERO
Definition: vtkBSplineTransform.h:48
vtkgl::transform
GLuint GLenum GLenum transform
Definition: vtkgl.h:16451
VTK_BSPLINE_ZERO_AT_BORDER
#define VTK_BSPLINE_ZERO_AT_BORDER
Definition: vtkBSplineTransform.h:49
vtkBSplineTransform::BorderMode
int BorderMode
Definition: vtkBSplineTransform.h:138
vtkWarpTransform
superclass for nonlinear geometric transformations
Definition: vtkWarpTransform.h:31
vtkBSplineTransform::DisplacementScale
double DisplacementScale
Definition: vtkBSplineTransform.h:137