Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Common/vtkWarpTransform.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkWarpTransform.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00028 #ifndef __vtkWarpTransform_h 00029 #define __vtkWarpTransform_h 00030 00031 #include "vtkAbstractTransform.h" 00032 00033 class VTK_COMMON_EXPORT vtkWarpTransform : public vtkAbstractTransform 00034 { 00035 public: 00036 00037 vtkTypeRevisionMacro(vtkWarpTransform,vtkAbstractTransform); 00038 void PrintSelf(ostream& os, vtkIndent indent); 00039 00044 void Inverse(); 00045 00047 00050 vtkGetMacro(InverseFlag,int); 00052 00054 00055 vtkSetMacro(InverseTolerance,double); 00056 vtkGetMacro(InverseTolerance,double); 00058 00060 00064 vtkSetMacro(InverseIterations,int); 00065 vtkGetMacro(InverseIterations,int); 00067 00069 00071 void InternalTransformPoint(const float in[3], float out[3]); 00072 void InternalTransformPoint(const double in[3], double out[3]); 00074 00076 00078 void InternalTransformDerivative(const float in[3], float out[3], 00079 float derivative[3][3]); 00080 void InternalTransformDerivative(const double in[3], double out[3], 00081 double derivative[3][3]); 00083 00085 00089 void TemplateTransformPoint(const float in[3], float out[3]) { 00090 this->ForwardTransformPoint(in,out); }; 00091 void TemplateTransformPoint(const double in[3], double out[3]) { 00092 this->ForwardTransformPoint(in,out); }; 00093 void TemplateTransformPoint(const float in[3], float out[3], 00094 float derivative[3][3]) { 00095 this->ForwardTransformDerivative(in,out,derivative); }; 00096 void TemplateTransformPoint(const double in[3], double out[3], 00097 double derivative[3][3]) { 00098 this->ForwardTransformDerivative(in,out,derivative); }; 00099 void TemplateTransformInverse(const float in[3], float out[3]) { 00100 this->InverseTransformPoint(in,out); }; 00101 void TemplateTransformInverse(const double in[3], double out[3]) { 00102 this->InverseTransformPoint(in,out); }; 00103 void TemplateTransformInverse(const float in[3], float out[3], 00104 float derivative[3][3]) { 00105 this->InverseTransformDerivative(in,out,derivative); }; 00106 void TemplateTransformInverse(const double in[3], double out[3], 00107 double derivative[3][3]) { 00108 this->InverseTransformDerivative(in,out,derivative); }; 00110 00111 protected: 00112 vtkWarpTransform(); 00113 ~vtkWarpTransform(); 00114 00116 00118 virtual void ForwardTransformPoint(const float in[3], float out[3]) = 0; 00119 virtual void ForwardTransformPoint(const double in[3], double out[3]) = 0; 00121 00123 00124 virtual void ForwardTransformDerivative(const float in[3], float out[3], 00125 float derivative[3][3]) = 0; 00126 virtual void ForwardTransformDerivative(const double in[3], double out[3], 00127 double derivative[3][3]) = 0; 00129 00131 00134 virtual void InverseTransformPoint(const float in[3], float out[3]); 00135 virtual void InverseTransformPoint(const double in[3], double out[3]); 00137 00139 00142 virtual void InverseTransformDerivative(const float in[3], float out[3], 00143 float derivative[3][3]); 00144 virtual void InverseTransformDerivative(const double in[3], double out[3], 00145 double derivative[3][3]); 00147 00148 int InverseFlag; 00149 int InverseIterations; 00150 double InverseTolerance; 00151 private: 00152 vtkWarpTransform(const vtkWarpTransform&); // Not implemented. 00153 void operator=(const vtkWarpTransform&); // Not implemented. 00154 }; 00155 00156 #endif 00157 00158 00159 00160 00161