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

vtkIdentityTransform.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkIdentityTransform.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 =========================================================================*/
00039 #ifndef __vtkIdentityTransform_h
00040 #define __vtkIdentityTransform_h
00041 
00042 #include "vtkLinearTransform.h"
00043 
00044 class VTK_COMMON_EXPORT vtkIdentityTransform : public vtkLinearTransform
00045 {
00046 public:
00047   static vtkIdentityTransform *New();
00048 
00049   vtkTypeRevisionMacro(vtkIdentityTransform,vtkLinearTransform);
00050   void PrintSelf(ostream& os, vtkIndent indent);
00051 
00054   void TransformPoints(vtkPoints *inPts, vtkPoints *outPts);
00055 
00058   void TransformNormals(vtkDataArray *inNms, vtkDataArray *outNms);
00059 
00062   void TransformVectors(vtkDataArray *inVrs, vtkDataArray *outVrs);
00063 
00065 
00067   void TransformPointsNormalsVectors(vtkPoints *inPts, 
00068                                      vtkPoints *outPts, 
00069                                      vtkDataArray *inNms, 
00070                                      vtkDataArray *outNms,
00071                                      vtkDataArray *inVrs, 
00072                                      vtkDataArray *outVrs);
00074 
00075   // Invert the transformation.  This doesn't do anything to the 
00076   // identity transformation.
00077   void Inverse() {};
00078 
00080 
00082   void InternalTransformPoint(const float in[3], float out[3]);
00083   void InternalTransformPoint(const double in[3], double out[3]);
00085 
00087 
00089   void InternalTransformNormal(const float in[3], float out[3]);
00090   void InternalTransformNormal(const double in[3], double out[3]);
00092 
00094 
00096   void InternalTransformVector(const float in[3], float out[3]);
00097   void InternalTransformVector(const double in[3], double out[3]);
00099 
00101 
00103   void InternalTransformDerivative(const float in[3], float out[3],
00104                                    float derivative[3][3]);
00105   void InternalTransformDerivative(const double in[3], double out[3],
00106                                    double derivative[3][3]);
00108 
00111   vtkAbstractTransform *MakeTransform();
00112 
00113 protected:
00114   vtkIdentityTransform();
00115   ~vtkIdentityTransform();
00116 
00117   void InternalDeepCopy(vtkAbstractTransform *t);
00118 
00119 private:
00120   vtkIdentityTransform(const vtkIdentityTransform&);  // Not implemented.
00121   void operator=(const vtkIdentityTransform&);  // Not implemented.
00122 };
00123 
00124 #endif
00125 
00126 
00127 
00128 
00129