{
_transform->Identity();
_transform->Translate(_centerPoint[0], _centerPoint[1], _centerPoint[2]);
+
+ std::cout << "Transformer: Center points: X = " << _centerPoint[0] << " Y = " << _centerPoint[1] << " Z = " << _centerPoint[2] << std::endl;
+ std::cout << "Transformer Angle: " << _angle << std::endl;
+
_transform->Scale(_scaleX, _scaleY,_scaleZ);
if(_3D)
{
- _transform->RotateWXYZ(_angle, _transformAxis[0], _transformAxis[1], _transformAxis[2]);
+ _transform->RotateWXYZ(_angle, _transformAxis[0], _transformAxis[1], _transformAxis[2]);
+ std::cout << "Transformer 3D Version" << std::endl;
}
else
{
#include "VectorMath.h"
+
+
VectorMath::VectorMath()
{
}
+/*Sets all the vector points*/
void VectorMath::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)
{
_pointx1a = pointsX1[0];
_pointz2b = pointsZ2[1];
}
+/*Runs the calculations*/
void VectorMath::Run()
{
_origin.clear();
_origin.push_back(_pointy2a);
_origin.push_back(_pointz2a);
+ std::cout << "Vector Math: Origin points: X = " << _pointx2a << " Y = " << _pointy2a << " Z = " << _pointz2a << std::endl;
+
_originReslicer.clear();
_originReslicer.push_back(_pointx1a);
_originReslicer.push_back(_pointy1a);
_originReslicer.push_back(_pointz1a);
+ std::cout << "Vector Math: Origin Reslicer points: X = " << _pointx1a << " Y = " << _pointy1a << " Z = " << _pointz1a << std::endl;
+
double _vectorA[3];
_vectorA[0] =(double)(_pointx1b - _pointx1a);
_vectorA[1] =(double)(_pointy1b - _pointy1a);
double distanceB = vtkMath::Distance2BetweenPoints(_vectorOrigin, _vectorA);
double proportion = distanceA/distanceB;
-
+ /*
_scaleX = proportion;
_scaleY = proportion;
_scaleZ = proportion;
+ */
+
+ _scaleX = 1;
+ _scaleY = 1;
+ _scaleZ = 1;
_angle = acos(vtkMath::Dot(_vectorA, _vectorB));
std::cout << "Angle " << (double)_angle << std::endl;
}
-
+/*Returns the origin of the second vector*/
std::vector<int> VectorMath::GetOrigin()
{
return _origin;
}
+/*Returns the origin of the first vector*/
std::vector<int> VectorMath::GetOriginReslicer()
{
return _originReslicer;
}
+/*Returns the cross product of the two vectors*/
void VectorMath::GetResult(double result[3])
{
result = _result;
}
+/*Scale in X*/
double VectorMath::GetScaleX()
{
return _scaleX;
}
+/*Scale in Y*/
double VectorMath::GetScaleY()
{
return _scaleY;
}
+/*Scale in Z*/
double VectorMath::GetScaleZ()
{
return _scaleZ;
}
+/*Rotation angle (dot product)*/
double VectorMath::GetAngle()
{
return _angle;
public:
VectorMath();
~VectorMath();
+
+ /*Sets all the vector points*/
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);
+
+ /*Runs the calculations*/
void Run();
+
+ /*Returns the origin of the second vector*/
std::vector<int> GetOrigin();
+
+ /*Returns the origin of the first vector*/
std::vector<int> 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 _pointz1b;
int _pointz2a;
int _pointz2b;
+
+ //////////////////
+ /* Results */
+ /////////////////
std::vector<int> _origin;
std::vector<int> _originReslicer;