27 #ifndef vtkAbstractTransform_h
28 #define vtkAbstractTransform_h
30 #include "vtkCommonTransformsModule.h"
33 VTK_ABI_NAMESPACE_BEGIN
51 this->InternalTransformPoint(in, out);
61 this->InternalTransformPoint(in, out);
70 return this->TransformDoublePoint(x, y, z);
84 this->InternalFloatPoint[0] = x;
85 this->InternalFloatPoint[1] = y;
86 this->InternalFloatPoint[2] = z;
87 this->TransformPoint(this->InternalFloatPoint, this->InternalFloatPoint);
88 return this->InternalFloatPoint;
103 this->InternalDoublePoint[0] = x;
104 this->InternalDoublePoint[1] = y;
105 this->InternalDoublePoint[2] = z;
106 this->TransformPoint(this->InternalDoublePoint, this->InternalDoublePoint);
107 return this->InternalDoublePoint;
121 void TransformNormalAtPoint(
const float point[3],
const float in[3],
float out[3]);
122 void TransformNormalAtPoint(
const double point[3],
const double in[3],
double out[3]);
127 this->TransformNormalAtPoint(
point, normal, this->InternalDoublePoint);
128 return this->InternalDoublePoint;
140 this->TransformNormalAtPoint(
point, normal, this->InternalDoublePoint);
141 return this->InternalDoublePoint;
153 this->TransformNormalAtPoint(
point, normal, this->InternalFloatPoint);
154 return this->InternalFloatPoint;
164 void TransformVectorAtPoint(
const float point[3],
const float in[3],
float out[3]);
165 void TransformVectorAtPoint(
const double point[3],
const double in[3],
double out[3]);
170 this->TransformVectorAtPoint(
point,
vector, this->InternalDoublePoint);
171 return this->InternalDoublePoint;
183 this->TransformVectorAtPoint(
point,
vector, this->InternalDoublePoint);
184 return this->InternalDoublePoint;
196 this->TransformVectorAtPoint(
point,
vector, this->InternalFloatPoint);
197 return this->InternalFloatPoint;
213 int nOptionalVectors = 0,
vtkDataArray** inVrsArr =
nullptr,
235 virtual void Inverse() = 0;
255 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
256 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
266 virtual void InternalTransformDerivative(
267 const float in[3],
float out[3],
float derivative[3][3]) = 0;
268 virtual void InternalTransformDerivative(
269 const double in[3],
double out[3],
double derivative[3][3]) = 0;
312 float InternalFloatPoint[3];
313 double InternalDoublePoint[3];
318 vtkInternals* Internals;
340 this->InverseTransform = tmp;
362 void Concatenate(
const double elements[16]);
376 void Translate(
double x,
double y,
double z);
377 void Rotate(
double angle,
double x,
double y,
double z);
378 void Scale(
double x,
double y,
double z);
426 void PrintSelf(ostream& os,
vtkIndent indent);
487 VTK_ABI_NAMESPACE_END
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
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(...)
represent and manipulate 3D points