--- /dev/null
+
+#include "Transformer3D.h"
+#include "vtkMatrix4x4.h"
+
+/*
+ CONSTRUCTOR: Initializes the two points with empty vectors, the angle in 0.
+*/
+Transformer3D::Transformer3D()
+{
+ std::vector<int> empty (3,0);
+ _centerPoint=empty;
+ //If the transform already exists, we delete it before we create a new transform
+ //and set the matrix with the identity matrix
+ _transform= vtkTransform::New();
+ vtkMatrix4x4 *_matrix = vtkMatrix4x4::New();
+ _matrix->Identity();
+ _transform->SetMatrix(_matrix);
+
+}
+
+/*
+ DESTRUCTOR
+*/
+Transformer3D::~Transformer3D()
+{
+ //We delete the existing transform
+ if (_transform != NULL ) { _transform->Delete(); }
+}
+
+/*
+ SETS A NEW TRANSFORM
+*/
+void Transformer3D::SetTransform(vtkTransform *transform)
+{
+ _transform=transform;
+}
+
+/*
+ SETS CENTER POINT
+*/
+void Transformer3D::SetCenterPoint(std::vector<int> point)
+{
+ _centerPoint=point;
+}
+
+
+/*
+ GETS THE RESULTANT TRANSFORM
+*/
+vtkTransform *Transformer3D::GetResult()
+{
+ return _transform;
+}
+
+/*
+ MAKES THE TRANSFORMATIONS
+*/
+void Transformer3D::Run()
+{
+ _transform->Identity();
+ std::cout << "Center points transform 3D: " << "X: " << _centerPoint[0] << "Y: " << _centerPoint[1] << "Z: " << _centerPoint[2] << std::endl;
+ _transform->Translate(_centerPoint[0], _centerPoint[1], _centerPoint[2]);
+
+ //_transform->Scale(_scaleX, _scaleY,_scaleZ);
+ //_transform->RotateWXYZ(_angle, 0, 0, 1);
+
+ _transform->Update();
+}
--- /dev/null
+
+#ifndef Transformer3D_h
+#define Transformer3D_h
+
+#include "vtkTransform.h"
+#include <vector>
+
+class Transformer3D{
+public:
+ Transformer3D();
+ ~Transformer3D();
+ void SetTransform(vtkTransform *transform);
+ void SetCenterPoint(std::vector<int> point);
+ void Run();
+
+ vtkTransform *GetResult();
+private:
+ std::vector<int> _centerPoint;
+
+ vtkTransform *_transform;
+};
+
+#endif