VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkIdentityTransform.h 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 =========================================================================*/ 00028 #ifndef __vtkIdentityTransform_h 00029 #define __vtkIdentityTransform_h 00030 00031 #include "vtkLinearTransform.h" 00032 00033 class VTK_COMMON_EXPORT vtkIdentityTransform : public vtkLinearTransform 00034 { 00035 public: 00036 static vtkIdentityTransform *New(); 00037 00038 vtkTypeMacro(vtkIdentityTransform,vtkLinearTransform); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00043 void TransformPoints(vtkPoints *inPts, vtkPoints *outPts); 00044 00047 void TransformNormals(vtkDataArray *inNms, vtkDataArray *outNms); 00048 00051 void TransformVectors(vtkDataArray *inVrs, vtkDataArray *outVrs); 00052 00054 00056 void TransformPointsNormalsVectors(vtkPoints *inPts, 00057 vtkPoints *outPts, 00058 vtkDataArray *inNms, 00059 vtkDataArray *outNms, 00060 vtkDataArray *inVrs, 00061 vtkDataArray *outVrs); 00063 00064 // Invert the transformation. This doesn't do anything to the 00065 // identity transformation. 00066 void Inverse() {}; 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 InternalTransformNormal(const float in[3], float out[3]); 00079 void InternalTransformNormal(const double in[3], double out[3]); 00081 00083 00085 void InternalTransformVector(const float in[3], float out[3]); 00086 void InternalTransformVector(const double in[3], double out[3]); 00088 00090 00092 void InternalTransformDerivative(const float in[3], float out[3], 00093 float derivative[3][3]); 00094 void InternalTransformDerivative(const double in[3], double out[3], 00095 double derivative[3][3]); 00097 00100 vtkAbstractTransform *MakeTransform(); 00101 00102 protected: 00103 vtkIdentityTransform(); 00104 ~vtkIdentityTransform(); 00105 00106 void InternalDeepCopy(vtkAbstractTransform *t); 00107 00108 private: 00109 vtkIdentityTransform(const vtkIdentityTransform&); // Not implemented. 00110 void operator=(const vtkIdentityTransform&); // Not implemented. 00111 }; 00112 00113 #endif 00114 00115 00116 00117 00118