]> Creatis software - creaRigidRegistration.git/blob - lib/VectorMath.h
*** empty log message ***
[creaRigidRegistration.git] / lib / VectorMath.h
1 #ifndef _$PROJECT_NAME$SOURCE01_H_
2 #define _$PROJECT_NAME$SOURCE01_H_
3
4 #include "vtkMath.h"
5 #include <vector>
6
7 class VectorMath{
8 public: 
9         VectorMath();
10     ~VectorMath();
11
12         /*Sets all the vector points*/
13         void SetData(std::vector<int> pointsX1, std::vector<int> pointsX2, std::vector<int> pointsY1, std::vector<int> pointsY2, std::vector<int> pointsZ1, std::vector<int> pointsZ2);
14         
15         /*Runs the calculations*/
16         void Run();
17         
18         /*Returns the origin of the second vector*/
19         std::vector<int> GetOrigin();
20
21         /*Returns the origin of the first vector*/
22         std::vector<int> GetOriginReslicer();
23         
24         /*Returns the cross product of the two vectors*/
25         void GetResult(double result[3]);
26
27         /*Rotation angle (dot product)*/
28         double GetAngle();
29
30         /*Scale in X*/
31         double GetScaleX();
32
33         /*Scale in Y*/
34         double GetScaleY();
35
36         /*Scale in Z*/
37         double GetScaleZ();
38         
39 private:
40         ///////////////////
41         /* Vector Points */
42         ///////////////////
43         
44         /*The points are defined by the following naming pattern: _point[axis(x,y or z)][vector(1 {first image} or 2{second image})][a{starting piont} or b{end point}]*/
45         
46         int _pointx1a;
47         int _pointx1b;
48         int _pointx2a;
49         int _pointx2b;
50
51         int _pointy1a;
52         int _pointy1b;
53         int _pointy2a;
54         int _pointy2b;
55
56         int _pointz1a;
57         int _pointz1b;
58         int _pointz2a;
59         int _pointz2b;
60
61         //////////////////
62         /* Results   */
63         /////////////////
64         
65         std::vector<int> _origin;
66         std::vector<int> _originReslicer;
67         double _result[3];
68         
69         double _scaleX;
70         double _scaleY;
71         double _scaleZ;
72
73         double _angle;  
74 };
75
76 #endif
77