38 #ifndef __vtkAbstractTransform_h
39 #define __vtkAbstractTransform_h
59 this->Update(); this->InternalTransformPoint(in,out); };
66 this->Update(); this->InternalTransformPoint(in,out); };
73 return this->TransformDoublePoint(x,y,z); }
75 return this->TransformPoint(point[0],point[1],point[2]); };
82 this->InternalFloatPoint[0] = x;
83 this->InternalFloatPoint[1] = y;
84 this->InternalFloatPoint[2] = z;
85 this->TransformPoint(this->InternalFloatPoint,this->InternalFloatPoint);
86 return this->InternalFloatPoint; };
88 return this->TransformFloatPoint(point[0],point[1],point[2]); };
95 this->InternalDoublePoint[0] = x;
96 this->InternalDoublePoint[1] = y;
97 this->InternalDoublePoint[2] = z;
98 this->TransformPoint(this->InternalDoublePoint,this->InternalDoublePoint);
99 return this->InternalDoublePoint; };
101 return this->TransformDoublePoint(point[0],point[1],point[2]); };
108 void TransformNormalAtPoint(
const float point[3],
const float in[3],
110 void TransformNormalAtPoint(
const double point[3],
const double in[3],
115 const double normal[3]) {
116 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
117 return this->InternalDoublePoint; };
124 const double normal[3]) {
125 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
126 return this->InternalDoublePoint; };
134 const float normal[3]) {
135 this->TransformNormalAtPoint(point,normal,this->InternalFloatPoint);
136 return this->InternalFloatPoint; };
143 void TransformVectorAtPoint(
const float point[3],
const float in[3],
145 void TransformVectorAtPoint(
const double point[3],
const double in[3],
150 const double vector[3]) {
151 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
152 return this->InternalDoublePoint; };
159 const double vector[3]) {
160 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
161 return this->InternalDoublePoint; };
169 const float vector[3]) {
170 this->TransformVectorAtPoint(point,vector,this->InternalFloatPoint);
171 return this->InternalFloatPoint; };
181 virtual void TransformPointsNormalsVectors(
vtkPoints *inPts,
202 virtual void Inverse() = 0;
215 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
216 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
224 virtual void InternalTransformDerivative(
const float in[3],
float out[3],
225 float derivative[3][3]) = 0;
226 virtual void InternalTransformDerivative(
const double in[3],
double out[3],
227 double derivative[3][3]) = 0;
250 VTK_LEGACY(
void Identity());
262 float InternalFloatPoint[3];
263 double InternalDoublePoint[3];
278 int DependsOnInverse;
326 void Concatenate(
const double elements[16]);
336 void Translate(
double x,
double y,
double z);
337 void Rotate(
double angle,
double x,
double y,
double z);
338 void Scale(
double x,
double y,
double z);
364 return this->NumberOfTransforms-this->NumberOfPreTransforms; };
371 unsigned long GetMaxMTime();
373 void PrintSelf(ostream& os,
vtkIndent indent);
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
record modification and/or execution time
virtual void PrintSelf(ostream &os, vtkIndent indent)
virtual void UnRegister(vtkObjectBase *o)
virtual unsigned long GetMTime()
a simple class to control print indentation
abstract superclass for arrays of numeric data
abstract base class for most VTK objects
represent and manipulate 3D points