46 #ifndef vtkTransform_h
47 #define vtkTransform_h
49 #include "vtkCommonTransformsModule.h"
80 void Translate(
double x,
double y,
double z) { this->Concatenation->Translate(x, y, z); }
92 void RotateWXYZ(
double angle,
double x,
double y,
double z)
94 this->Concatenation->Rotate(angle, x, y, z);
98 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
102 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]);
112 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); }
113 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); }
114 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); }
123 void Scale(
double x,
double y,
double z) { this->Concatenation->Scale(x, y, z); }
124 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); }
125 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); }
136 this->Concatenation->Identity();
137 this->Concatenate(elements);
147 void Concatenate(
const double elements[16]) { this->Concatenation->Concatenate(elements); }
168 if (this->Concatenation->GetPreMultiplyFlag())
172 this->Concatenation->SetPreMultiplyFlag(1);
185 if (!this->Concatenation->GetPreMultiplyFlag())
189 this->Concatenation->SetPreMultiplyFlag(0);
199 return this->Concatenation->GetNumberOfTransforms() + (this->Input ==
nullptr ? 0 : 1);
213 if (this->Input ==
nullptr)
215 t = this->Concatenation->GetTransform(i);
217 else if (i < this->Concatenation->GetNumberOfPreTransforms())
219 t = this->Concatenation->GetTransform(i);
221 else if (i > this->Concatenation->GetNumberOfPreTransforms())
223 t = this->Concatenation->GetTransform(i - 1);
225 else if (this->GetInverseFlag())
246 this->GetOrientation(temp);
247 orient[0] =
static_cast<float>(temp[0]);
248 orient[1] =
static_cast<float>(temp[1]);
249 orient[2] =
static_cast<float>(temp[2]);
253 this->GetOrientation(this->ReturnValue);
254 return this->ReturnValue;
273 this->GetOrientationWXYZ(temp);
274 wxyz[0] =
static_cast<float>(temp[0]);
275 wxyz[1] =
static_cast<float>(temp[1]);
276 wxyz[2] =
static_cast<float>(temp[2]);
277 wxyz[3] =
static_cast<float>(temp[3]);
281 this->GetOrientationWXYZ(this->ReturnValue);
282 return this->ReturnValue;
296 this->GetPosition(temp);
297 pos[0] =
static_cast<float>(temp[0]);
298 pos[1] =
static_cast<float>(temp[1]);
299 pos[2] =
static_cast<float>(temp[2]);
303 this->GetPosition(this->ReturnValue);
304 return this->ReturnValue;
319 this->GetScale(temp);
320 scale[0] =
static_cast<float>(temp[0]);
321 scale[1] =
static_cast<float>(temp[1]);
322 scale[2] =
static_cast<float>(temp[2]);
326 this->GetScale(this->ReturnValue);
327 return this->ReturnValue;
372 if (this->Stack ==
nullptr)
376 this->Stack->Push(&this->Concatenation);
388 if (this->Stack ==
nullptr)
392 this->Stack->Pop(&this->Concatenation);
451 double DoublePoint[4];
452 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(...)