]> Creatis software - creaRigidRegistration.git/blob - lib/Transformer3D.cxx
Added transform3D library classes
[creaRigidRegistration.git] / lib / Transformer3D.cxx
1
2 #include "Transformer3D.h"
3 #include "vtkMatrix4x4.h"
4
5 /*
6         CONSTRUCTOR: Initializes the two points with empty vectors, the angle in 0.
7 */
8 Transformer3D::Transformer3D() 
9 {
10         std::vector<int> empty (3,0); 
11         _centerPoint=empty;     
12         //If the transform already exists, we delete it before we create a new transform 
13         //and set the matrix with the identity matrix
14         _transform= vtkTransform::New();
15         vtkMatrix4x4 *_matrix = vtkMatrix4x4::New();
16         _matrix->Identity();
17         _transform->SetMatrix(_matrix);
18         
19 }
20
21 /*
22         DESTRUCTOR
23 */
24 Transformer3D::~Transformer3D()
25 {
26         //We delete the existing transform
27         if (_transform != NULL ) { _transform->Delete(); }
28 }
29
30 /*
31         SETS A NEW TRANSFORM
32 */
33 void Transformer3D::SetTransform(vtkTransform *transform)
34 {
35         _transform=transform;
36 }
37
38 /*
39         SETS CENTER POINT
40 */
41 void Transformer3D::SetCenterPoint(std::vector<int> point)
42 {
43     _centerPoint=point;
44 }
45
46
47 /*
48         GETS THE RESULTANT TRANSFORM
49 */
50 vtkTransform *Transformer3D::GetResult()
51 {
52         return _transform;
53 }
54
55 /*
56         MAKES THE TRANSFORMATIONS
57 */
58 void Transformer3D::Run()
59 {       
60         _transform->Identity();
61         std::cout << "Center points transform 3D: " << "X: " << _centerPoint[0] << "Y: " << _centerPoint[1] << "Z: " << _centerPoint[2] << std::endl;
62         _transform->Translate(_centerPoint[0], _centerPoint[1], _centerPoint[2]);
63
64         //_transform->Scale(_scaleX, _scaleY,_scaleZ);
65         //_transform->RotateWXYZ(_angle, 0, 0, 1);
66         
67         _transform->Update();
68 }