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 "vtkCommonTransformsModule.h" // For export macro 00032 #include "vtkLinearTransform.h" 00033 00034 class VTKCOMMONTRANSFORMS_EXPORT vtkIdentityTransform : public vtkLinearTransform 00035 { 00036 public: 00037 static vtkIdentityTransform *New(); 00038 00039 vtkTypeMacro(vtkIdentityTransform,vtkLinearTransform); 00040 void PrintSelf(ostream& os, vtkIndent indent); 00041 00044 void TransformPoints(vtkPoints *inPts, vtkPoints *outPts); 00045 00048 void TransformNormals(vtkDataArray *inNms, vtkDataArray *outNms); 00049 00052 void TransformVectors(vtkDataArray *inVrs, vtkDataArray *outVrs); 00053 00055 00057 void TransformPointsNormalsVectors(vtkPoints *inPts, 00058 vtkPoints *outPts, 00059 vtkDataArray *inNms, 00060 vtkDataArray *outNms, 00061 vtkDataArray *inVrs, 00062 vtkDataArray *outVrs); 00064 00065 // Invert the transformation. This doesn't do anything to the 00066 // identity transformation. 00067 void Inverse() {}; 00068 00070 00072 void InternalTransformPoint(const float in[3], float out[3]); 00073 void InternalTransformPoint(const double in[3], double out[3]); 00075 00077 00079 void InternalTransformNormal(const float in[3], float out[3]); 00080 void InternalTransformNormal(const double in[3], double out[3]); 00082 00084 00086 void InternalTransformVector(const float in[3], float out[3]); 00087 void InternalTransformVector(const double in[3], double out[3]); 00089 00091 00093 void InternalTransformDerivative(const float in[3], float out[3], 00094 float derivative[3][3]); 00095 void InternalTransformDerivative(const double in[3], double out[3], 00096 double derivative[3][3]); 00098 00101 vtkAbstractTransform *MakeTransform(); 00102 00103 protected: 00104 vtkIdentityTransform(); 00105 ~vtkIdentityTransform(); 00106 00107 void InternalDeepCopy(vtkAbstractTransform *t); 00108 00109 private: 00110 vtkIdentityTransform(const vtkIdentityTransform&); // Not implemented. 00111 void operator=(const vtkIdentityTransform&); // Not implemented. 00112 }; 00113 00114 #endif 00115 00116 00117 00118 00119