2 #include "Transformer.h"
3 #include "vtkMatrix4x4.h"
6 CONSTRUCTOR: Initializes the two points with empty vectors, the angle in 0.
8 Transformer::Transformer()
10 std::vector<int> empty (3,0);
15 //If the transform already exists, we delete it before we create a new transform
16 //and set the matrix with the identity matrix
17 _transform= vtkTransform::New();
18 vtkMatrix4x4 *_matrix = vtkMatrix4x4::New();
20 _transform->SetMatrix(_matrix);
27 Transformer::~Transformer()
29 //We delete the existing transform
30 if (_transform != NULL ) { _transform->Delete(); }
36 void Transformer::SetTransform(vtkTransform *transform)
44 void Transformer::SetCenterPoint(std::vector<int> point)
52 void Transformer::SetAxis(std::vector<double> axis)
60 void Transformer::SetAngle(double angle)
68 void Transformer::SetScaleX(double scaleX)
76 void Transformer::SetScaleY(double scaleY)
84 void Transformer::SetScaleZ(double scaleZ)
92 GETS THE RESULTANT TRANSFORM
94 vtkTransform *Transformer::GetResult()
100 MAKES THE TRANSFORMATIONS
102 void Transformer::Run(bool _3D)
104 _transform->Identity();
105 _transform->Translate(_centerPoint[0], _centerPoint[1], _centerPoint[2]);
107 std::cout << "Transformer: Center points: X = " << _centerPoint[0] << " Y = " << _centerPoint[1] << " Z = " << _centerPoint[2] << std::endl;
108 std::cout << "Transformer Angle: " << _angle << std::endl;
110 _transform->Scale(_scaleX, _scaleY,_scaleZ);
113 _transform->RotateWXYZ(_angle, _transformAxis[0], _transformAxis[1], _transformAxis[2]);
114 std::cout << "Transformer 3D Version" << std::endl;
118 _transform->RotateWXYZ(_angle, 0, 0, 1);
121 _transform->Update();