32#ifndef vtkGeneralTransform_h
33#define vtkGeneralTransform_h
36#include "vtkCommonTransformsModule.h"
55 this->Concatenation->Identity();
66 this->Concatenation->Inverse();
75 void Translate(
double x,
double y,
double z) { this->Concatenation->Translate(x, y, z); }
87 void RotateWXYZ(
double angle,
double x,
double y,
double z)
89 this->Concatenation->Rotate(angle, x, y, z);
93 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
97 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
107 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
108 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
109 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
118 void Scale(
double x,
double y,
double z) { this->Concatenation->Scale(x, y, z); }
119 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
120 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
129 void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
150 if (this->Concatenation->GetPreMultiplyFlag())
154 this->Concatenation->SetPreMultiplyFlag(1);
167 if (!this->Concatenation->GetPreMultiplyFlag())
171 this->Concatenation->SetPreMultiplyFlag(0);
181 return this->Concatenation->GetNumberOfTransforms() + (this->Input ==
nullptr ? 0 : 1);
193 if (this->Input ==
nullptr)
195 return this->Concatenation->GetTransform(i);
197 else if (i < this->Concatenation->GetNumberOfPreTransforms())
199 return this->Concatenation->GetTransform(i);
201 else if (i > this->Concatenation->GetNumberOfPreTransforms())
203 return this->Concatenation->GetTransform(i - 1);
205 else if (this->GetInverseFlag())
207 return this->Input->GetInverse();
243 if (this->Stack ==
nullptr)
247 this->Stack->Push(&this->Concatenation);
259 if (this->Stack ==
nullptr)
263 this->Stack->Pop(&this->Concatenation);
284 const float in[3],
float out[3],
float derivative[3][3])
override;
286 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