#include "Transformer3D.h" #include "vtkMatrix4x4.h" /* CONSTRUCTOR: Initializes the two points with empty vectors, the angle in 0. */ Transformer3D::Transformer3D() { std::vector 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 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(); }