39 #ifndef vtkAbstractTransform_h
40 #define vtkAbstractTransform_h
42 #include "vtkCommonTransformsModule.h"
64 this->InternalTransformPoint(in, out);
74 this->InternalTransformPoint(in, out);
83 return this->TransformDoublePoint(x, y, z);
97 this->InternalFloatPoint[0] = x;
98 this->InternalFloatPoint[1] = y;
99 this->InternalFloatPoint[2] = z;
100 this->TransformPoint(this->InternalFloatPoint, this->InternalFloatPoint);
101 return this->InternalFloatPoint;
116 this->InternalDoublePoint[0] = x;
117 this->InternalDoublePoint[1] = y;
118 this->InternalDoublePoint[2] = z;
119 this->TransformPoint(this->InternalDoublePoint, this->InternalDoublePoint);
120 return this->InternalDoublePoint;
134 void TransformNormalAtPoint(
const float point[3],
const float in[3],
float out[3]);
135 void TransformNormalAtPoint(
const double point[3],
const double in[3],
double out[3]);
140 this->TransformNormalAtPoint(
point, normal, this->InternalDoublePoint);
141 return this->InternalDoublePoint;
153 this->TransformNormalAtPoint(
point, normal, this->InternalDoublePoint);
154 return this->InternalDoublePoint;
166 this->TransformNormalAtPoint(
point, normal, this->InternalFloatPoint);
167 return this->InternalFloatPoint;
177 void TransformVectorAtPoint(
const float point[3],
const float in[3],
float out[3]);
178 void TransformVectorAtPoint(
const double point[3],
const double in[3],
double out[3]);
183 this->TransformVectorAtPoint(
point,
vector, this->InternalDoublePoint);
184 return this->InternalDoublePoint;
196 this->TransformVectorAtPoint(
point,
vector, this->InternalDoublePoint);
197 return this->InternalDoublePoint;
209 this->TransformVectorAtPoint(
point,
vector, this->InternalFloatPoint);
210 return this->InternalFloatPoint;
226 int nOptionalVectors = 0,
vtkDataArray** inVrsArr =
nullptr,
248 virtual void Inverse() = 0;
268 virtual void InternalTransformPoint(
const float in[3],
float out[3]) = 0;
269 virtual void InternalTransformPoint(
const double in[3],
double out[3]) = 0;
279 virtual void InternalTransformDerivative(
280 const float in[3],
float out[3],
float derivative[3][3]) = 0;
281 virtual void InternalTransformDerivative(
282 const double in[3],
double out[3],
double derivative[3][3]) = 0;
325 float InternalFloatPoint[3];
326 double InternalDoublePoint[3];
337 std::mutex UpdateMutex;
338 std::mutex InverseMutex;
339 int DependsOnInverse;
368 this->InverseTransform = tmp;
390 void Concatenate(
const double elements[16]);
404 void Translate(
double x,
double y,
double z);
405 void Rotate(
double angle,
double x,
double y,
double z);
406 void Scale(
double x,
double y,
double z);
454 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(...)
represent and manipulate 3D points