38 #ifndef vtkAbstractTransform_h
39 #define vtkAbstractTransform_h
60 this->
Update(); this->InternalTransformPoint(in,out); };
67 this->
Update(); this->InternalTransformPoint(in,out); };
74 return this->TransformDoublePoint(x,y,z); }
76 return this->TransformPoint(point[0],point[1],point[2]); };
83 this->InternalFloatPoint[0] = x;
84 this->InternalFloatPoint[1] = y;
85 this->InternalFloatPoint[2] = z;
86 this->TransformPoint(this->InternalFloatPoint,this->InternalFloatPoint);
87 return this->InternalFloatPoint; };
89 return this->TransformFloatPoint(point[0],point[1],point[2]); };
96 this->InternalDoublePoint[0] = x;
97 this->InternalDoublePoint[1] = y;
98 this->InternalDoublePoint[2] = z;
99 this->TransformPoint(this->InternalDoublePoint,this->InternalDoublePoint);
100 return this->InternalDoublePoint; };
102 return this->TransformDoublePoint(point[0],point[1],point[2]); };
109 void TransformNormalAtPoint(
const float point[3],
const float in[3],
111 void TransformNormalAtPoint(
const double point[3],
const double in[3],
116 const double normal[3]) {
117 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
118 return this->InternalDoublePoint; };
125 const double normal[3]) {
126 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
127 return this->InternalDoublePoint; };
135 const float normal[3]) {
136 this->TransformNormalAtPoint(point,normal,this->InternalFloatPoint);
137 return this->InternalFloatPoint; };
144 void TransformVectorAtPoint(
const float point[3],
const float in[3],
146 void TransformVectorAtPoint(
const double point[3],
const double in[3],
152 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
153 return this->InternalDoublePoint; };
161 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
162 return this->InternalDoublePoint; };
171 this->TransformVectorAtPoint(point,vector,this->InternalFloatPoint);
172 return this->InternalFloatPoint; };
182 virtual void TransformPointsNormalsVectors(
vtkPoints *inPts,
203 virtual void Inverse() = 0;
216 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
217 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
225 virtual void InternalTransformDerivative(
const float in[3],
float out[3],
226 float derivative[3][3]) = 0;
227 virtual void InternalTransformDerivative(
const double in[3],
double out[3],
228 double derivative[3][3]) = 0;
259 float InternalFloatPoint[3];
260 double InternalDoublePoint[3];
275 int DependsOnInverse;
305 this->InverseTransform = tmp; };
323 void Concatenate(
const double elements[16]);
333 void Translate(
double x,
double y,
double z);
334 void Rotate(
double angle,
double x,
double y,
double z);
335 void Scale(
double x,
double y,
double z);
361 return this->NumberOfTransforms-this->NumberOfPreTransforms; };
368 unsigned long GetMaxMTime();
370 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
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
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
Critical section locking class.
represent and manipulate 3D points