#ifndef _$PROJECT_NAME$SOURCE01_H_ #define _$PROJECT_NAME$SOURCE01_H_ #include "vtkMath.h" #include class VectorMath{ public: VectorMath(); ~VectorMath(); /*Sets all the vector points*/ void SetData(std::vector pointsX1, std::vector pointsX2, std::vector pointsY1, std::vector pointsY2, std::vector pointsZ1, std::vector pointsZ2); /*Runs the calculations*/ void Run(); /*Returns the origin of the second vector*/ std::vector GetOrigin(); /*Returns the origin of the first vector*/ std::vector GetOriginReslicer(); /*Returns the cross product of the two vectors*/ void GetResult(double result[3]); /*Rotation angle (dot product)*/ double GetAngle(); /*Scale in X*/ double GetScaleX(); /*Scale in Y*/ double GetScaleY(); /*Scale in Z*/ double GetScaleZ(); private: /////////////////// /* Vector Points */ /////////////////// /*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}]*/ int _pointx1a; int _pointx1b; int _pointx2a; int _pointx2b; int _pointy1a; int _pointy1b; int _pointy2a; int _pointy2b; int _pointz1a; int _pointz1b; int _pointz2a; int _pointz2b; ////////////////// /* Results */ ///////////////// std::vector _origin; std::vector _originReslicer; double _result[3]; double _scaleX; double _scaleY; double _scaleZ; double _angle; }; #endif