161 #ifndef vtkTransform_h
162 #define vtkTransform_h
164 #include "vtkCommonTransformsModule.h"
195 void Translate(
double x,
double y,
double z) { this->Concatenation->Translate(x, y, z); }
209 this->Concatenation->Rotate(angle, x, y, z);
213 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
217 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
227 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
228 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
229 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
238 void Scale(
double x,
double y,
double z) { this->Concatenation->Scale(x, y, z); }
239 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
240 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
251 this->Concatenation->Identity();
252 this->Concatenate(elements);
262 void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
283 if (this->Concatenation->GetPreMultiplyFlag())
287 this->Concatenation->SetPreMultiplyFlag(1);
300 if (!this->Concatenation->GetPreMultiplyFlag())
304 this->Concatenation->SetPreMultiplyFlag(0);
314 return this->Concatenation->GetNumberOfTransforms() + (this->Input ==
nullptr ? 0 : 1);
328 if (this->Input ==
nullptr)
330 t = this->Concatenation->GetTransform(i);
332 else if (i < this->Concatenation->GetNumberOfPreTransforms())
334 t = this->Concatenation->GetTransform(i);
336 else if (i > this->Concatenation->GetNumberOfPreTransforms())
338 t = this->Concatenation->GetTransform(i - 1);
340 else if (this->GetInverseFlag())
361 this->GetOrientation(temp);
362 orient[0] =
static_cast<float>(temp[0]);
363 orient[1] =
static_cast<float>(temp[1]);
364 orient[2] =
static_cast<float>(temp[2]);
368 this->GetOrientation(this->ReturnValue);
369 return this->ReturnValue;
388 this->GetOrientationWXYZ(temp);
389 wxyz[0] =
static_cast<float>(temp[0]);
390 wxyz[1] =
static_cast<float>(temp[1]);
391 wxyz[2] =
static_cast<float>(temp[2]);
392 wxyz[3] =
static_cast<float>(temp[3]);
396 this->GetOrientationWXYZ(this->ReturnValue);
397 return this->ReturnValue;
411 this->GetPosition(temp);
412 pos[0] =
static_cast<float>(temp[0]);
413 pos[1] =
static_cast<float>(temp[1]);
414 pos[2] =
static_cast<float>(temp[2]);
418 this->GetPosition(this->ReturnValue);
419 return this->ReturnValue;
434 this->GetScale(temp);
435 scale[0] =
static_cast<float>(temp[0]);
436 scale[1] =
static_cast<float>(temp[1]);
437 scale[2] =
static_cast<float>(temp[2]);
441 this->GetScale(this->ReturnValue);
442 return this->ReturnValue;
487 if (this->Stack ==
nullptr)
491 this->Stack->Push(&this->Concatenation);
503 if (this->Stack ==
nullptr)
507 this->Stack->Pop(&this->Concatenation);
566 double DoublePoint[4];
567 double ReturnValue[4];
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
void MultiplyPoint(const float in[4], float out[4])
Multiply a homogeneous coordinate by this matrix, i.e.
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
#define VTK_SIZEHINT(...)