29#ifndef vtkGeneralTransform_h
30#define vtkGeneralTransform_h
33#include "vtkCommonTransformsModule.h"
52 this->Concatenation->Identity();
63 this->Concatenation->Inverse();
72 void Translate(
double x,
double y,
double z) { this->Concatenation->Translate(x, y, z); }
84 void RotateWXYZ(
double angle,
double x,
double y,
double z)
86 this->Concatenation->Rotate(angle, x, y, z);
90 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
94 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
104 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
105 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
106 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
115 void Scale(
double x,
double y,
double z) { this->Concatenation->Scale(x, y, z); }
116 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
117 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
126 void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
147 if (this->Concatenation->GetPreMultiplyFlag())
151 this->Concatenation->SetPreMultiplyFlag(1);
164 if (!this->Concatenation->GetPreMultiplyFlag())
168 this->Concatenation->SetPreMultiplyFlag(0);
178 return this->Concatenation->GetNumberOfTransforms() + (this->Input ==
nullptr ? 0 : 1);
190 if (this->Input ==
nullptr)
192 return this->Concatenation->GetTransform(i);
194 else if (i < this->Concatenation->GetNumberOfPreTransforms())
196 return this->Concatenation->GetTransform(i);
198 else if (i > this->Concatenation->GetNumberOfPreTransforms())
200 return this->Concatenation->GetTransform(i - 1);
202 else if (this->GetInverseFlag())
240 if (this->Stack ==
nullptr)
244 this->Stack->Push(&this->Concatenation);
256 if (this->Stack ==
nullptr)
260 this->Stack->Pop(&this->Concatenation);
281 const float in[3],
float out[3],
float derivative[3][3])
override;
283 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!
virtual void Modified()
Update the modification time for this object.
vtkTypeUInt32 vtkMTimeType