VTK
vtkHomogeneousTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkHomogeneousTransform.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
25 #ifndef __vtkHomogeneousTransform_h
26 #define __vtkHomogeneousTransform_h
27 
28 #include "vtkAbstractTransform.h"
29 
30 class vtkMatrix4x4;
31 
33 {
34 public:
35 
37  void PrintSelf(ostream& os, vtkIndent indent);
38 
41  void TransformPoints(vtkPoints *inPts, vtkPoints *outPts);
42 
44 
46  virtual void TransformPointsNormalsVectors(vtkPoints *inPts,
47  vtkPoints *outPts,
48  vtkDataArray *inNms,
49  vtkDataArray *outNms,
50  vtkDataArray *inVrs,
51  vtkDataArray *outVrs);
53 
56  void GetMatrix(vtkMatrix4x4 *m);
57 
62  vtkMatrix4x4 *GetMatrix() { this->Update(); return this->Matrix; };
63 
65 
68  {
69  return static_cast<vtkHomogeneousTransform *>(this->GetInverse());
70  }
72 
74 
76  void InternalTransformPoint(const float in[3], float out[3]);
77  void InternalTransformPoint(const double in[3], double out[3]);
79 
81 
83  void InternalTransformDerivative(const float in[3], float out[3],
84  float derivative[3][3]);
85  void InternalTransformDerivative(const double in[3], double out[3],
86  double derivative[3][3]);
88 
89 protected:
92 
93  void InternalDeepCopy(vtkAbstractTransform *transform);
94 
96 
97 private:
98  vtkHomogeneousTransform(const vtkHomogeneousTransform&); // Not implemented.
99  void operator=(const vtkHomogeneousTransform&); // Not implemented.
100 };
101 
102 #endif
103 
104 
105 
106 
107 
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:37
superclass for homogeneous transformations
void PrintSelf(ostream &os, vtkIndent indent)
virtual void TransformPoints(vtkPoints *inPts, vtkPoints *outPts)
vtkAbstractTransform * GetInverse()
vtkHomogeneousTransform * GetHomogeneousInverse()
virtual void TransformPointsNormalsVectors(vtkPoints *inPts, vtkPoints *outPts, vtkDataArray *inNms, vtkDataArray *outNms, vtkDataArray *inVrs, vtkDataArray *outVrs)
virtual void InternalDeepCopy(vtkAbstractTransform *)
a simple class to control print indentation
Definition: vtkIndent.h:37
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
superclass for all geometric transformations
#define VTK_COMMON_EXPORT
virtual void InternalTransformPoint(const float in[3], float out[3])=0
virtual void InternalTransformDerivative(const float in[3], float out[3], float derivative[3][3])=0
represent and manipulate 3D points
Definition: vtkPoints.h:38