/* 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; } }