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

dox/Common/vtkHomogeneousTransform.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkHomogeneousTransform.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 =========================================================================*/ 00029 #ifndef __vtkHomogeneousTransform_h 00030 #define __vtkHomogeneousTransform_h 00031 00032 #include "vtkAbstractTransform.h" 00033 00034 class vtkMatrix4x4; 00035 00036 class VTK_COMMON_EXPORT vtkHomogeneousTransform : public vtkAbstractTransform 00037 { 00038 public: 00039 00040 vtkTypeRevisionMacro(vtkHomogeneousTransform,vtkAbstractTransform); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00045 void TransformPoints(vtkPoints *inPts, vtkPoints *outPts); 00046 00048 00050 virtual void TransformPointsNormalsVectors(vtkPoints *inPts, 00051 vtkPoints *outPts, 00052 vtkDataArray *inNms, 00053 vtkDataArray *outNms, 00054 vtkDataArray *inVrs, 00055 vtkDataArray *outVrs); 00057 00060 void GetMatrix(vtkMatrix4x4 *m); 00061 00066 vtkMatrix4x4 *GetMatrix() { this->Update(); return this->Matrix; }; 00067 00069 00071 vtkHomogeneousTransform *GetHomogeneousInverse() { 00072 return (vtkHomogeneousTransform *)this->GetInverse(); }; 00074 00076 00078 void InternalTransformPoint(const float in[3], float out[3]); 00079 void InternalTransformPoint(const double in[3], double out[3]); 00081 00083 00085 void InternalTransformDerivative(const float in[3], float out[3], 00086 float derivative[3][3]); 00087 void InternalTransformDerivative(const double in[3], double out[3], 00088 double derivative[3][3]); 00090 00091 protected: 00092 vtkHomogeneousTransform(); 00093 ~vtkHomogeneousTransform(); 00094 00095 void InternalDeepCopy(vtkAbstractTransform *transform); 00096 00097 vtkMatrix4x4 *Matrix; 00098 00099 private: 00100 vtkHomogeneousTransform(const vtkHomogeneousTransform&); // Not implemented. 00101 void operator=(const vtkHomogeneousTransform&); // Not implemented. 00102 }; 00103 00104 #endif 00105 00106 00107 00108 00109