00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_VECTOR2_HPP
00026 #define SFML_VECTOR2_HPP
00027
00028
00029 namespace sf
00030 {
00036 template <typename T>
00037 class Vector2
00038 {
00039 public :
00040
00047 Vector2();
00048
00056 Vector2(T X, T Y);
00057
00069 template <typename U>
00070 explicit Vector2(const Vector2<U>& vector);
00071
00073
00075 T x;
00076 T y;
00077 };
00078
00088 template <typename T>
00089 Vector2<T> operator -(const Vector2<T>& right);
00090
00104 template <typename T>
00105 Vector2<T>& operator +=(Vector2<T>& left, const Vector2<T>& right);
00106
00120 template <typename T>
00121 Vector2<T>& operator -=(Vector2<T>& left, const Vector2<T>& right);
00122
00133 template <typename T>
00134 Vector2<T> operator +(const Vector2<T>& left, const Vector2<T>& right);
00135
00146 template <typename T>
00147 Vector2<T> operator -(const Vector2<T>& left, const Vector2<T>& right);
00148
00159 template <typename T>
00160 Vector2<T> operator *(const Vector2<T>& left, T right);
00161
00172 template <typename T>
00173 Vector2<T> operator *(T left, const Vector2<T>& right);
00174
00188 template <typename T>
00189 Vector2<T>& operator *=(Vector2<T>& left, T right);
00190
00201 template <typename T>
00202 Vector2<T> operator /(const Vector2<T>& left, T right);
00203
00217 template <typename T>
00218 Vector2<T>& operator /=(Vector2<T>& left, T right);
00219
00232 template <typename T>
00233 bool operator ==(const Vector2<T>& left, const Vector2<T>& right);
00234
00247 template <typename T>
00248 bool operator !=(const Vector2<T>& left, const Vector2<T>& right);
00249
00250 #include <SFML/System/Vector2.inl>
00251
00252
00253 typedef Vector2<int> Vector2i;
00254 typedef Vector2<unsigned int> Vector2u;
00255 typedef Vector2<float> Vector2f;
00256
00257 }
00258
00259
00260 #endif // SFML_VECTOR2_HPP
00261
00262