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.h | |
parent | 9c3baab33a0fa48e7379f0485116452779a1cd37 (diff) |
vector2f files
Diffstat (limited to 'src/math/vector2f.h')
-rw-r--r-- | src/math/vector2f.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/math/vector2f.h b/src/math/vector2f.h new file mode 100644 index 0000000..87f61a8 --- /dev/null +++ b/src/math/vector2f.h @@ -0,0 +1,74 @@ +/* + math/vector2f.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_MATH_VECTOR2F_H__ +#define __INCLUDED_MATH_VECTOR2F_H__ + +#include <iostream> + +namespace math { + +/// a point or vector in 2D space +class Vector2f { + +public: + /// default constructor + Vector2f(); + /// assignment constructor + Vector2f(float const x, float const y); + /// copy constructor + Vector2f(Vector2f const &other); + + /// assign (0,0) + void clear(); + + /// assignment operator + void assign(float const x, float const y); + /// assignment operator + void assign(Vector2f const &other); + + /// assignment operator + Vector2f & operator=(Vector2f const &other); + + /// vector subtraction + Vector2f & operator-=(Vector2f const &other); + + /// vector sum + Vector2f & operator+=(Vector2f const &other); + + /// vector subtraction + Vector2f operator-(Vector2f const &other) const; + + /// vector sum + Vector2f operator+(Vector2f const &other) const; + + + /// array operator + inline float& operator[](const size_t index) { + return coord[index]; + } + + /// array operator + inline float operator[](const size_t index) const { + return coord[index]; + } + + /// a pointer to the internal data + inline float *ptr() const { return (float *) coord; } + + /// x coordinate + float &x; + + /// y coordinate + float &y; + +private: + float coord[2]; +}; + +} +#endif // __INCLUDED_MATH_VECTOR2F_H__ + |