VTK
dox/Common/Transforms/vtkIdentityTransform.h
Go to the documentation of this file.
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