From cd5832676aa34e693ebc0391cd0994f8e60c7120 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 5 Oct 2008 20:29:47 +0000 Subject: vector2f files --- src/math/vector2f.cc | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/math/vector2f.cc (limited to 'src/math/vector2f.cc') diff --git a/src/math/vector2f.cc b/src/math/vector2f.cc new file mode 100644 index 0000000..c6f1504 --- /dev/null +++ b/src/math/vector2f.cc @@ -0,0 +1,78 @@ +/* + math/vector2f.cc + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#include + +#include "math/vector2f.h" + +namespace math { + +Vector2f::Vector2f() : x(coord[0]), y(coord[1]) +{ + clear(); +} + +Vector2f::Vector2f(Vector2f const &other) : x(coord[0]), y(coord[1]) +{ + assign(other); +} + +Vector2f::Vector2f(float const x, float const y) : x(coord[0]), y(coord[1]) +{ + assign(x, y); +} + +void Vector2f::clear() +{ + memset(coord, 0, sizeof(coord)); +} + +void Vector2f::assign(Vector2f const &other) +{ + memcpy(coord, other.coord, sizeof(coord)); +} + +void Vector2f::assign(float const x, float const y) +{ + coord[0] = x; + coord[1] = y; +} + +Vector2f &Vector2f::operator=(Vector2f const &other) +{ + assign(other); + return (*this); +} + +Vector2f &Vector2f::operator+=(Vector2f const &other) +{ + coord[0] += other.coord[0]; + coord[1] += other.coord[1]; + return (*this); +} + +Vector2f &Vector2f::operator-=(Vector2f const &other) +{ + coord[0] -= other.coord[0]; + coord[1] -= other.coord[1]; + return (*this); +} + +Vector2f Vector2f::operator-(Vector2f const &other) const +{ + Vector2f v(*this); + v -= other; + return v; +} + +Vector2f Vector2f::operator+(Vector2f const &other) const +{ + Vector2f v(*this); + v += other; + return v; +} + +} -- cgit v1.2.3