diff options
author | Stijn Buys <ingar@osirion.org> | 2008-10-05 20:29:47 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-10-05 20:29:47 +0000 |
commit | cd5832676aa34e693ebc0391cd0994f8e60c7120 (patch) | |
tree | 412686fbdf7507e5127f1c5253bede055165bab0 /src/math/vector2f.cc | |
parent | 9c3baab33a0fa48e7379f0485116452779a1cd37 (diff) |
vector2f files
Diffstat (limited to 'src/math/vector2f.cc')
-rw-r--r-- | src/math/vector2f.cc | 78 |
1 files changed, 78 insertions, 0 deletions
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 <cstring> + +#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; +} + +} |