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 "vtkAbstractTransform.h"
28 
30 {
31 public:
32 
34  void PrintSelf(ostream& os, vtkIndent indent);
35 
40  void Inverse();
41 
43 
46  vtkGetMacro(InverseFlag,int);
48 
50 
51  vtkSetMacro(InverseTolerance,double);
52  vtkGetMacro(InverseTolerance,double);
54 
56 
60  vtkSetMacro(InverseIterations,int);
61  vtkGetMacro(InverseIterations,int);
63 
65 
67  void InternalTransformPoint(const float in[3], float out[3]);
68  void InternalTransformPoint(const double in[3], double out[3]);
70 
72 
74  void InternalTransformDerivative(const float in[3], float out[3],
75  float derivative[3][3]);
76  void InternalTransformDerivative(const double in[3], double out[3],
77  double derivative[3][3]);
79 
81 
85  void TemplateTransformPoint(const float in[3], float out[3]) {
86  this->ForwardTransformPoint(in,out); };
87  void TemplateTransformPoint(const double in[3], double out[3]) {
88  this->ForwardTransformPoint(in,out); };
89  void TemplateTransformPoint(const float in[3], float out[3],
90  float derivative[3][3]) {
91  this->ForwardTransformDerivative(in,out,derivative); };
92  void TemplateTransformPoint(const double in[3], double out[3],
93  double derivative[3][3]) {
94  this->ForwardTransformDerivative(in,out,derivative); };
95  void TemplateTransformInverse(const float in[3], float out[3]) {
96  this->InverseTransformPoint(in,out); };
97  void TemplateTransformInverse(const double in[3], double out[3]) {
98  this->InverseTransformPoint(in,out); };
99  void TemplateTransformInverse(const float in[3], float out[3],
100  float derivative[3][3]) {
101  this->InverseTransformDerivative(in,out,derivative); };
102  void TemplateTransformInverse(const double in[3], double out[3],
103  double derivative[3][3]) {
104  this->InverseTransformDerivative(in,out,derivative); };
106 
107 protected:
109  ~vtkWarpTransform();
110 
112 
114  virtual void ForwardTransformPoint(const float in[3], float out[3]) = 0;
115  virtual void ForwardTransformPoint(const double in[3], double out[3]) = 0;
117 
119 
120  virtual void ForwardTransformDerivative(const float in[3], float out[3],
121  float derivative[3][3]) = 0;
122  virtual void ForwardTransformDerivative(const double in[3], double out[3],
123  double derivative[3][3]) = 0;
125 
127 
130  virtual void InverseTransformPoint(const float in[3], float out[3]);
131  virtual void InverseTransformPoint(const double in[3], double out[3]);
133 
135 
138  virtual void InverseTransformDerivative(const float in[3], float out[3],
139  float derivative[3][3]);
140  virtual void InverseTransformDerivative(const double in[3], double out[3],
141  double derivative[3][3]);
143 
147 private:
148  vtkWarpTransform(const vtkWarpTransform&); // Not implemented.
149  void operator=(const vtkWarpTransform&); // Not implemented.
150 };
151 
152 #endif
153 
154 
155 
156 
157 
void TemplateTransformPoint(const double in[3], double out[3])
void TemplateTransformPoint(const float in[3], float out[3])
void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
Definition: vtkIndent.h:37
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
#define VTK_COMMON_EXPORT
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])