32 #ifndef vtkGeneralTransform_h
33 #define vtkGeneralTransform_h
35 #include "vtkCommonTransformsModule.h"
54 { this->Concatenation->Identity(); this->
Modified(); };
62 { this->Concatenation->Inverse(); this->
Modified(); }
70 this->Concatenation->Translate(x,y,z); };
82 void RotateWXYZ(
double angle,
double x,
double y,
double z) {
83 this->Concatenation->Rotate(angle,x,y,z); };
85 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]); };
87 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) {
108 this->Concatenation->Scale(x,y,z); };
109 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); };
110 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); };
119 this->Concatenate(*matrix->
Element); };
121 this->Concatenation->Concatenate(elements); };
141 if (this->Concatenation->GetPreMultiplyFlag()) {
return; }
142 this->Concatenation->SetPreMultiplyFlag(1); this->
Modified(); };
152 if (!this->Concatenation->GetPreMultiplyFlag()) {
return; }
153 this->Concatenation->SetPreMultiplyFlag(0); this->
Modified(); };
160 return this->Concatenation->GetNumberOfTransforms() +
161 (this->Input == NULL ? 0 : 1); };
171 if (this->Input == NULL) {
172 return this->Concatenation->GetTransform(i); }
173 else if (i < this->Concatenation->GetNumberOfPreTransforms()) {
174 return this->Concatenation->GetTransform(i); }
175 else if (i > this->Concatenation->GetNumberOfPreTransforms()) {
176 return this->Concatenation->GetTransform(i-1); }
177 else if (this->GetInverseFlag()) {
180 return this->Input; } };
203 return this->Concatenation->GetInverseFlag(); };
209 void Push() {
if (this->Stack == NULL) {
211 this->Stack->Push(&this->Concatenation);
220 void Pop() {
if (this->Stack == NULL) {
return; }
221 this->Stack->Pop(&this->Concatenation);
241 float derivative[3][3]) VTK_OVERRIDE;
243 double derivative[3][3]) VTK_OVERRIDE;
268 ~vtkGeneralTransform() VTK_OVERRIDE;
271 void InternalUpdate() VTK_OVERRIDE;
277 vtkGeneralTransform(const vtkGeneralTransform&) VTK_DELETE_FUNCTION;
278 void operator=(const vtkGeneralTransform&) VTK_DELETE_FUNCTION;
represent and manipulate 4x4 transformation matrices
vtkTypeUInt64 vtkMTimeType
a simple class to control print indentation
virtual void Modified()
Update the modification time for this object.
double Element[4][4]
The internal data is public for historical reasons. Do not use!
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...