X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?p=physics.git;a=blobdiff_plain;f=src%2FVector2.cpp;h=2a8c8af0c2402dd7c12f1d4853fdf5acee0a45e5;hp=d13ea958e4b080a904b74f69fa71b75e088396c2;hb=9d6dea5f1cfd43cfa136241b352830371acfdc88;hpb=e86c86b38b25bcb463943dc166b60f236aa4af10 diff --git a/src/Vector2.cpp b/src/Vector2.cpp index d13ea95..2a8c8af 100644 --- a/src/Vector2.cpp +++ b/src/Vector2.cpp @@ -16,26 +16,19 @@ */ #include "Vector2.h" +#include "debug.h" + #include "mathw.h" /// ***** Constructors/Destructors ***** Vector2::Vector2() - : x(0), y(0) + : m_fX(0), m_fY(0) { } -Vector2::Vector2(float x, float y) - : x(x), y(y) -{ - -} -Vector2::Vector2(const Vector2& vec) - : x(vec.x), y(vec.y) -{ - -} -Vector2::~Vector2() +Vector2::Vector2(float fX, float fY) + : m_fX(fX), m_fY(fY) { } @@ -44,21 +37,22 @@ Vector2::~Vector2() void Vector2::zero() { - x = 0; - y = 0; + m_fX = 0; + m_fY = 0; } void Vector2::unit() { - float len = length(); + float fLen = length(); - x /= len; - y /= len; + m_fX /= fLen; + m_fY /= fLen; } float Vector2::angle() const { //TODO - //return atan2A(y,x); + DASSERT(false); + //return atan2A(m_fY,m_fX); return 0; } float Vector2::length() const @@ -67,53 +61,45 @@ float Vector2::length() const } float Vector2::sqrLength() const { - return x*x + y*y; + return this->dot(*this); } -float Vector2::dot(const Vector2& v) const +float Vector2::dot(const Vector2& vec) const { - return x*v.x + y*v.y; + return m_fX * vec.m_fX + m_fY * vec.m_fY; } string Vector2::toString() const { // long just to be safe - char* strX = new char[50]; - char* strY = new char[50]; - - sprintf(strX, "%f", x); - sprintf(strY, "%f", y); - - string val = (string)"Vector2 x: " + strX + ", y: " + strY; + char rgchars[100]; - // deletes the allocated memory, not just what is used by sprintf - delete []strX; - delete []strY; + sprintf(rgchars, "Vector2 X: %f, Y: %f", m_fX, m_fY); - return val; + return rgchars; } void Vector2::print() const { - printf("%s\n",toString().c_str()); + printf("%s\n", toString().c_str()); } Vector2 Vector2::add(const Vector2& vec) const { - return Vector2(x+vec.x, y+vec.y); + return Vector2(m_fX + vec.m_fX, m_fY + vec.m_fY); } Vector2 Vector2::subtract(const Vector2& vec) const { - return Vector2(x-vec.x, y-vec.y); + return Vector2(m_fX - vec.m_fX, m_fY - vec.m_fY); } -Vector2 Vector2::multiply(float c) const +Vector2 Vector2::multiply(float f) const { - return Vector2(x*c, y*c); + return Vector2(m_fX * f, m_fY * f); } -Vector2 Vector2::divide(float c) const +Vector2 Vector2::divide(float f) const { - return Vector2(x/c, y/c); + return Vector2(m_fX / f, m_fY / f); } /// ***** Public Methods ***** @@ -126,37 +112,37 @@ Vector2 operator-(const Vector2& vec1, const Vector2& vec2) { return vec1.subtract(vec2); } -Vector2 operator*(float c, const Vector2& vec) +Vector2 operator*(float f, const Vector2& vec) { - return vec.multiply(c); + return vec.multiply(f); } -Vector2 operator*(const Vector2& vec, float c) +Vector2 operator*(const Vector2& vec, float f) { - return vec.multiply(c); + return vec.multiply(f); } -Vector2 operator/(const Vector2& vec, float c) +Vector2 operator/(const Vector2& vec, float f) { - return vec.divide(c); + return vec.divide(f); } void operator+=(Vector2& vec1, const Vector2& vec2) { - vec1.x += vec2.x; - vec1.y += vec2.y; + vec1.m_fX += vec2.m_fX; + vec1.m_fY += vec2.m_fY; } void operator-=(Vector2& vec1, const Vector2& vec2) { - vec1.x -= vec2.x; - vec1.y -= vec2.y; + vec1.m_fX -= vec2.m_fX; + vec1.m_fY -= vec2.m_fY; } -void operator*=(Vector2& vec, float c) +void operator*=(Vector2& vec, float f) { - vec.x *= c; - vec.y *= c; + vec.m_fX *= f; + vec.m_fY *= f; } -void operator/=(Vector2& vec, float c) +void operator/=(Vector2& vec, float f) { - vec.x /= c; - vec.y /= c; + vec.m_fX /= f; + vec.m_fY /= f; }