29 #ifndef vtkGeneralTransform_h 30 #define vtkGeneralTransform_h 32 #include "vtkCommonTransformsModule.h" 51 { this->Concatenation->Identity(); this->
Modified(); };
59 { this->Concatenation->Inverse(); this->
Modified(); }
67 this->Concatenation->Translate(x,y,z); };
79 void RotateWXYZ(
double angle,
double x,
double y,
double z) {
80 this->Concatenation->Rotate(angle,x,y,z); };
82 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]); };
84 this->RotateWXYZ(angle, axis[0], axis[1], axis[2]); };
93 void RotateX(
double angle) { this->RotateWXYZ(angle, 1, 0, 0); };
94 void RotateY(
double angle) { this->RotateWXYZ(angle, 0, 1, 0); };
95 void RotateZ(
double angle) { this->RotateWXYZ(angle, 0, 0, 1); };
104 void Scale(
double x,
double y,
double z) {
105 this->Concatenation->Scale(x,y,z); };
106 void Scale(
const double s[3]) { this->
Scale(s[0], s[1], s[2]); };
107 void Scale(
const float s[3]) { this->
Scale(s[0], s[1], s[2]); };
116 this->Concatenate(*matrix->
Element); };
118 this->Concatenation->Concatenate(elements); };
138 if (this->Concatenation->GetPreMultiplyFlag()) {
return; }
139 this->Concatenation->SetPreMultiplyFlag(1); this->
Modified(); };
149 if (!this->Concatenation->GetPreMultiplyFlag()) {
return; }
150 this->Concatenation->SetPreMultiplyFlag(0); this->
Modified(); };
157 return this->Concatenation->GetNumberOfTransforms() +
158 (this->Input ==
nullptr ? 0 : 1); };
168 if (this->Input ==
nullptr) {
169 return this->Concatenation->GetTransform(i); }
170 else if (i < this->Concatenation->GetNumberOfPreTransforms()) {
171 return this->Concatenation->GetTransform(i); }
172 else if (i > this->Concatenation->GetNumberOfPreTransforms()) {
173 return this->Concatenation->GetTransform(i-1); }
174 else if (this->GetInverseFlag()) {
177 return this->Input; } };
200 return this->Concatenation->GetInverseFlag(); };
206 void Push() {
if (this->Stack ==
nullptr) {
208 this->Stack->Push(&this->Concatenation);
217 void Pop() {
if (this->Stack ==
nullptr) {
return; }
218 this->Stack->Pop(&this->Concatenation);
238 float derivative[3][3])
override;
240 double derivative[3][3])
override;
represent and manipulate 4x4 transformation matrices
vtkTypeUInt32 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...