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); }
78 return this->TransformDoublePoint(x,y,z);
94 this->InternalFloatPoint[0] = x;
95 this->InternalFloatPoint[1] = y;
96 this->InternalFloatPoint[2] = z;
97 this->TransformPoint(this->InternalFloatPoint,this->InternalFloatPoint);
98 return this->InternalFloatPoint;
115 this->InternalDoublePoint[0] = x;
116 this->InternalDoublePoint[1] = y;
117 this->InternalDoublePoint[2] = z;
118 this->TransformPoint(this->InternalDoublePoint,this->InternalDoublePoint);
119 return this->InternalDoublePoint;
134 void TransformNormalAtPoint(
const float point[3],
const float in[3],
136 void TransformNormalAtPoint(
const double point[3],
const double in[3],
141 const double normal[3])
144 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
145 return this->InternalDoublePoint;
155 const double normal[3])
158 this->TransformNormalAtPoint(point,normal,this->InternalDoublePoint);
159 return this->InternalDoublePoint;
170 const float normal[3])
173 this->TransformNormalAtPoint(point,normal,this->InternalFloatPoint);
174 return this->InternalFloatPoint;
184 void TransformVectorAtPoint(
const float point[3],
const float in[3],
186 void TransformVectorAtPoint(
const double point[3],
const double in[3],
194 this->TransformVectorAtPoint(point,
vector,this->InternalDoublePoint);
195 return this->InternalDoublePoint;
208 this->TransformVectorAtPoint(point,
vector,this->InternalDoublePoint);
209 return this->InternalDoublePoint;
223 this->TransformVectorAtPoint(point,
vector,this->InternalFloatPoint);
224 return this->InternalFloatPoint;
238 virtual void TransformPointsNormalsVectors(
vtkPoints *inPts,
244 int nOptionalVectors = 0,
267 virtual void Inverse() = 0;
287 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
288 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
298 virtual void InternalTransformDerivative(
const float in[3],
float out[3],
299 float derivative[3][3]) = 0;
300 virtual void InternalTransformDerivative(
const double in[3],
double out[3],
301 double derivative[3][3]) = 0;
344 float InternalFloatPoint[3];
345 double InternalDoublePoint[3];
359 int DependsOnInverse;
386 this->ForwardTransform = this->InverseTransform;
387 this->InverseTransform = tmp; }
409 void Concatenate(
const double elements[16]);
423 void Translate(
double x,
double y,
double z);
424 void Rotate(
double angle,
double x,
double y,
double z);
425 void Scale(
double x,
double y,
double z);
462 return this->NumberOfTransforms-this->NumberOfPreTransforms; }
474 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.
vtkTypeUInt32 vtkMTimeType
record modification and/or execution time
virtual void UnRegister(vtkObjectBase *o)
Decrease the reference count (release by another object).
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
#define VTK_SIZEHINT(...)
Critical section locking class.
represent and manipulate 3D points