20#ifndef vtkGeneralTransform_h
21#define vtkGeneralTransform_h
24#include "vtkCommonTransformsModule.h"
28VTK_ABI_NAMESPACE_BEGIN
44 this->Concatenation->Identity();
55 this->Concatenation->Inverse();
64 void Translate(
double x,
double y,
double z) { this->Concatenation->Translate(x, y, z); }
76 void RotateWXYZ(
double angle,
double x,
double y,
double z)
78 this->Concatenation->Rotate(angle, x, y, z);
82 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
86 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
96 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
97 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
98 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
107 void Scale(
double x,
double y,
double z) { this->Concatenation->Scale(x, y, z); }
108 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
109 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
118 void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
139 if (this->Concatenation->GetPreMultiplyFlag())
143 this->Concatenation->SetPreMultiplyFlag(1);
156 if (!this->Concatenation->GetPreMultiplyFlag())
160 this->Concatenation->SetPreMultiplyFlag(0);
170 return this->Concatenation->GetNumberOfTransforms() + (this->Input ==
nullptr ? 0 : 1);
182 if (this->Input ==
nullptr)
184 return this->Concatenation->GetTransform(i);
186 else if (i < this->Concatenation->GetNumberOfPreTransforms())
188 return this->Concatenation->GetTransform(i);
190 else if (i > this->Concatenation->GetNumberOfPreTransforms())
192 return this->Concatenation->GetTransform(i - 1);
194 else if (this->GetInverseFlag())
232 if (this->Stack ==
nullptr)
236 this->Stack->Push(&this->Concatenation);
248 if (this->Stack ==
nullptr)
252 this->Stack->Pop(&this->Concatenation);
273 const float in[3],
float out[3],
float derivative[3][3])
override;
275 const double in[3],
double out[3],
double derivative[3][3])
override;
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
double Element[4][4]
The internal data is public for historical reasons. Do not use!
vtkTypeUInt32 vtkMTimeType