39 #ifndef vtkAbstractTransform_h
40 #define vtkAbstractTransform_h
42 #include "vtkCommonTransformsModule.h"
62 this->
Update(); this->InternalTransformPoint(in,out); };
69 this->
Update(); this->InternalTransformPoint(in,out); };
76 return this->TransformDoublePoint(x,y,z); }
78 return this->TransformPoint(point[0],point[1],point[2]); };
86 this->InternalFloatPoint[0] = x;
87 this->InternalFloatPoint[1] = y;
88 this->InternalFloatPoint[2] = z;
89 this->TransformPoint(this->InternalFloatPoint,this->InternalFloatPoint);
90 return this->InternalFloatPoint; };
92 return this->TransformFloatPoint(point[0],point[1],point[2]); };
101 this->InternalDoublePoint[0] = x;
102 this->InternalDoublePoint[1] = y;
103 this->InternalDoublePoint[2] = z;
104 this->TransformPoint(this->InternalDoublePoint,this->InternalDoublePoint);
105 return this->InternalDoublePoint; };
107 return this->TransformDoublePoint(point[0],point[1],point[2]); };
116 void TransformNormalAtPoint(
const float point[3],
const float in[3],
118 void TransformNormalAtPoint(
const double point[3],
const double in[3],
123 const double normal[3]) {
124 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
125 return this->InternalDoublePoint; };
134 const double normal[3]) {
135 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
136 return this->InternalDoublePoint; };
146 const float normal[3]) {
147 this->TransformNormalAtPoint(point,normal,this->InternalFloatPoint);
148 return this->InternalFloatPoint; };
157 void TransformVectorAtPoint(
const float point[3],
const float in[3],
159 void TransformVectorAtPoint(
const double point[3],
const double in[3],
165 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
166 return this->InternalDoublePoint; };
176 this->TransformVectorAtPoint(point,vector,this->InternalDoublePoint);
177 return this->InternalDoublePoint; };
188 this->TransformVectorAtPoint(point,vector,this->InternalFloatPoint);
189 return this->InternalFloatPoint; };
202 virtual void TransformPointsNormalsVectors(
vtkPoints *inPts,
228 virtual void Inverse() = 0;
248 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
249 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
259 virtual void InternalTransformDerivative(
const float in[3],
float out[3],
260 float derivative[3][3]) = 0;
261 virtual void InternalTransformDerivative(
const double in[3],
double out[3],
262 double derivative[3][3]) = 0;
293 ~vtkAbstractTransform() VTK_OVERRIDE;
298 virtual
void InternalUpdate() {}
305 float InternalFloatPoint[3];
306 double InternalDoublePoint[3];
320 int DependsOnInverse;
347 this->ForwardTransform = this->InverseTransform;
348 this->InverseTransform = tmp; };
370 void Concatenate(
const double elements[16]);
384 void Translate(
double x,
double y,
double z);
385 void Rotate(
double angle,
double x,
double y,
double z);
386 void Scale(
double x,
double y,
double z);
423 return this->NumberOfTransforms-this->NumberOfPreTransforms; };
435 void PrintSelf(ostream& os,
vtkIndent indent);
abstract base class for most VTK objects
represent and manipulate 4x4 transformation matrices
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
record modification and/or execution time
void DeepCopy(vtkPistonReference *self, vtkPistonReference *other)
virtual void Update()
Updates the extensions string.
vtkTypeUInt64 vtkMTimeType
a simple class to control print indentation
abstract superclass for arrays of numeric data
virtual vtkMTimeType GetMTime()
Return this object's modified time.
abstract base class for most VTK objects
Critical section locking class.
represent and manipulate 3D points