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 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00025 #ifndef __vtkHomogeneousTransform_h 00026 #define __vtkHomogeneousTransform_h 00027 00028 #include "vtkAbstractTransform.h" 00029 00030 class vtkMatrix4x4; 00031 00032 class VTK_COMMON_EXPORT vtkHomogeneousTransform : public vtkAbstractTransform 00033 { 00034 public: 00035 00036 vtkTypeRevisionMacro(vtkHomogeneousTransform,vtkAbstractTransform); 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 00041 void TransformPoints(vtkPoints *inPts, vtkPoints *outPts); 00042 00044 00046 virtual void TransformPointsNormalsVectors(vtkPoints *inPts, 00047 vtkPoints *outPts, 00048 vtkDataArray *inNms, 00049 vtkDataArray *outNms, 00050 vtkDataArray *inVrs, 00051 vtkDataArray *outVrs); 00053 00056 void GetMatrix(vtkMatrix4x4 *m); 00057 00062 vtkMatrix4x4 *GetMatrix() { this->Update(); return this->Matrix; }; 00063 00065 00067 vtkHomogeneousTransform *GetHomogeneousInverse() { 00068 return (vtkHomogeneousTransform *)this->GetInverse(); }; 00070 00072 00074 void InternalTransformPoint(const float in[3], float out[3]); 00075 void InternalTransformPoint(const double in[3], double out[3]); 00077 00079 00081 void InternalTransformDerivative(const float in[3], float out[3], 00082 float derivative[3][3]); 00083 void InternalTransformDerivative(const double in[3], double out[3], 00084 double derivative[3][3]); 00086 00087 protected: 00088 vtkHomogeneousTransform(); 00089 ~vtkHomogeneousTransform(); 00090 00091 void InternalDeepCopy(vtkAbstractTransform *transform); 00092 00093 vtkMatrix4x4 *Matrix; 00094 00095 private: 00096 vtkHomogeneousTransform(const vtkHomogeneousTransform&); // Not implemented. 00097 void operator=(const vtkHomogeneousTransform&); // Not implemented. 00098 }; 00099 00100 #endif 00101 00102 00103 00104 00105