Common/vtkWarpTransform.h Source File

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

# 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 =========================================================================*/
    00038 #ifndef __vtkWarpTransform_h
    00039 #define __vtkWarpTransform_h
    00040
    00041 #include "vtkAbstractTransform.h"
    00042
    00043 class VTK_COMMON_EXPORT vtkWarpTransform : public vtkAbstractTransform
    00044 {
    00045 public:
    00046
    00047   vtkTypeRevisionMacro(vtkWarpTransform,vtkAbstractTransform);
    00048   void PrintSelf(ostream& os, vtkIndent indent);
    00049
    00054   void Inverse();
    00055
    00057
    00060   vtkGetMacro(InverseFlag,int);
    00062
    00064
    00065   vtkSetMacro(InverseTolerance,double);
    00066   vtkGetMacro(InverseTolerance,double);
    00068
    00070
    00074   vtkSetMacro(InverseIterations,int);
    00075   vtkGetMacro(InverseIterations,int);
    00077
    00079
    00081   void InternalTransformPoint(const float in[3], float out[3]);
    00082   void InternalTransformPoint(const double in[3], double out[3]);
    00084
    00086
    00088   void InternalTransformDerivative(const float in[3], float out[3],
    00089                                    float derivative[3][3]);
    00090   void InternalTransformDerivative(const double in[3], double out[3],
    00091                                    double derivative[3][3]);
    00093
    00095
    00099   void TemplateTransformPoint(const float in[3], float out[3]) {
    00100     this->ForwardTransformPoint(in,out); };
    00101   void TemplateTransformPoint(const double in[3], double out[3]) {
    00102     this->ForwardTransformPoint(in,out); };
    00103   void TemplateTransformPoint(const float in[3], float out[3],
    00104                               float derivative[3][3]) {
    00105     this->ForwardTransformDerivative(in,out,derivative); };
    00106   void TemplateTransformPoint(const double in[3], double out[3],
    00107                               double derivative[3][3]) {
    00108     this->ForwardTransformDerivative(in,out,derivative); };
    00109   void TemplateTransformInverse(const float in[3], float out[3]) {
    00110     this->InverseTransformPoint(in,out); };
    00111   void TemplateTransformInverse(const double in[3], double out[3]) {
    00112     this->InverseTransformPoint(in,out); };
    00113   void TemplateTransformInverse(const float in[3], float out[3],
    00114                                 float derivative[3][3]) {
    00115     this->InverseTransformDerivative(in,out,derivative); };
    00116   void TemplateTransformInverse(const double in[3], double out[3],
    00117                                 double derivative[3][3]) {
    00118     this->InverseTransformDerivative(in,out,derivative); };
    00120
    00121 protected:
    00122   vtkWarpTransform();
    00123   ~vtkWarpTransform();
    00124
    00126
    00128   virtual void ForwardTransformPoint(const float in[3], float out[3]) = 0;
    00129   virtual void ForwardTransformPoint(const double in[3], double out[3]) = 0;
    00131
    00133
    00134   virtual void ForwardTransformDerivative(const float in[3], float out[3],
    00135                                           float derivative[3][3]) = 0;
    00136   virtual void ForwardTransformDerivative(const double in[3], double out[3],
    00137                                           double derivative[3][3]) = 0;
    00139
    00141
    00144   virtual void InverseTransformPoint(const float in[3], float out[3]);
    00145   virtual void InverseTransformPoint(const double in[3], double out[3]);
    00147
    00149
    00152   virtual void InverseTransformDerivative(const float in[3], float out[3],
    00153                                           float derivative[3][3]);
    00154   virtual void InverseTransformDerivative(const double in[3], double out[3],
    00155                                           double derivative[3][3]);
    00157
    00158   int InverseFlag;
    00159   int InverseIterations;
    00160   double InverseTolerance;
    00161 private:
    00162   vtkWarpTransform(const vtkWarpTransform&);  // Not implemented.
    00163   void operator=(const vtkWarpTransform&);  // Not implemented.
    00164 };
    00165
    00166 #endif
    00167
    00168
    00169
    00170
    00171