VTK
vtkWarpTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkWarpTransform.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 =========================================================================*/
24 #ifndef vtkWarpTransform_h
25 #define vtkWarpTransform_h
26 
27 #include "vtkCommonTransformsModule.h" // For export macro
28 #include "vtkAbstractTransform.h"
29 
31 {
32 public:
33 
35  void PrintSelf(ostream& os, vtkIndent indent);
36 
41  void Inverse();
42 
44 
47  vtkGetMacro(InverseFlag,int);
49 
51 
52  vtkSetMacro(InverseTolerance,double);
53  vtkGetMacro(InverseTolerance,double);
55 
57 
61  vtkSetMacro(InverseIterations,int);
62  vtkGetMacro(InverseIterations,int);
64 
66 
68  void InternalTransformPoint(const float in[3], float out[3]);
69  void InternalTransformPoint(const double in[3], double out[3]);
71 
73 
75  void InternalTransformDerivative(const float in[3], float out[3],
76  float derivative[3][3]);
77  void InternalTransformDerivative(const double in[3], double out[3],
78  double derivative[3][3]);
80 
82 
86  void TemplateTransformPoint(const float in[3], float out[3]) {
87  this->ForwardTransformPoint(in,out); };
88  void TemplateTransformPoint(const double in[3], double out[3]) {
89  this->ForwardTransformPoint(in,out); };
90  void TemplateTransformPoint(const float in[3], float out[3],
91  float derivative[3][3]) {
92  this->ForwardTransformDerivative(in,out,derivative); };
93  void TemplateTransformPoint(const double in[3], double out[3],
94  double derivative[3][3]) {
95  this->ForwardTransformDerivative(in,out,derivative); };
96  void TemplateTransformInverse(const float in[3], float out[3]) {
97  this->InverseTransformPoint(in,out); };
98  void TemplateTransformInverse(const double in[3], double out[3]) {
99  this->InverseTransformPoint(in,out); };
100  void TemplateTransformInverse(const float in[3], float out[3],
101  float derivative[3][3]) {
102  this->InverseTransformDerivative(in,out,derivative); };
103  void TemplateTransformInverse(const double in[3], double out[3],
104  double derivative[3][3]) {
105  this->InverseTransformDerivative(in,out,derivative); };
107 
108 protected:
110  ~vtkWarpTransform();
111 
113 
115  virtual void ForwardTransformPoint(const float in[3], float out[3]) = 0;
116  virtual void ForwardTransformPoint(const double in[3], double out[3]) = 0;
118 
120 
121  virtual void ForwardTransformDerivative(const float in[3], float out[3],
122  float derivative[3][3]) = 0;
123  virtual void ForwardTransformDerivative(const double in[3], double out[3],
124  double derivative[3][3]) = 0;
126 
128 
131  virtual void InverseTransformPoint(const float in[3], float out[3]);
132  virtual void InverseTransformPoint(const double in[3], double out[3]);
134 
136 
139  virtual void InverseTransformDerivative(const float in[3], float out[3],
140  float derivative[3][3]);
141  virtual void InverseTransformDerivative(const double in[3], double out[3],
142  double derivative[3][3]);
144 
148 private:
149  vtkWarpTransform(const vtkWarpTransform&); // Not implemented.
150  void operator=(const vtkWarpTransform&); // Not implemented.
151 };
152 
153 #endif
154 
155 
156 
157 
158 
void TemplateTransformPoint(const double in[3], double out[3])
void TemplateTransformPoint(const float in[3], float out[3])
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKCOMMONTRANSFORMS_EXPORT
a simple class to control print indentation
Definition: vtkIndent.h:38
void TemplateTransformInverse(const float in[3], float out[3], float derivative[3][3])
void TemplateTransformInverse(const float in[3], float out[3])
superclass for all geometric transformations
virtual void Inverse()=0
void TemplateTransformInverse(const double in[3], double out[3], double derivative[3][3])
superclass for nonlinear geometric transformations
void TemplateTransformInverse(const double in[3], double out[3])
virtual void InternalTransformPoint(const float in[3], float out[3])=0
virtual void InternalTransformDerivative(const float in[3], float out[3], float derivative[3][3])=0
void TemplateTransformPoint(const float in[3], float out[3], float derivative[3][3])
void TemplateTransformPoint(const double in[3], double out[3], double derivative[3][3])