#include "vec.h"

vec::vec()
{
  theta=mag=0;
}

vec::vec(double t,double m)
{
  theta = t;
  mag = m;
}

int vec::reverse()
{
  if(theta > 0)
    theta = theta -180;
  else
    theta = theta + 180;
  return 1;
}

vec vec::operator+(vec b)
{
  vec tempVector;
  double x1,x2,y1,y2,xs,ys;
  
  x1 = mag * sin(DTOR(theta));
  x2 = b.mag * sin(DTOR(b.theta));
  y1 = mag * cos(DTOR(theta));	
  y2 = b.mag * cos(DTOR(b.theta));
  xs = x1 + x2;
  ys = y1 + y2;
  
  tempVector.mag = sqrt(xs*xs + ys*ys);
  if(!tempVector.mag)
    {
      tempVector.theta = 180;
    }
  else
    {
      if(ys>=0)
	{
	  tempVector.theta = RTOD(asin(xs/tempVector.mag));
	}
      else if(xs>=0)
	{
	  tempVector.theta = 180 - RTOD(asin(xs/tempVector.mag));
	}
      else if(xs<0)
	{
	  tempVector.theta = -180 - RTOD(asin(xs/tempVector.mag));
	}
    }
  
  return tempVector;
}

vec reverse(vec vector)
{
  if(vector.theta>0)
    vector.theta = vector.theta - 180;
  else
    vector.theta = vector.theta + 180;
  return vector;
}
