Back to index

libsfml  1.6+dfsg2
Vector2.hpp
Go to the documentation of this file.
00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
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 
00045     Vector2();
00046 
00054     Vector2(T X, T Y);
00055 
00057     // Member data
00059     T x; 
00060     T y; 
00061 };
00062 
00071 template <typename T>
00072 Vector2<T> operator -(const Vector2<T>& V);
00073 
00083 template <typename T>
00084 Vector2<T>& operator +=(Vector2<T>& V1, const Vector2<T>& V2);
00085 
00095 template <typename T>
00096 Vector2<T>& operator -=(Vector2<T>& V1, const Vector2<T>& V2);
00097 
00107 template <typename T>
00108 Vector2<T> operator +(const Vector2<T>& V1, const Vector2<T>& V2);
00109 
00119 template <typename T>
00120 Vector2<T> operator -(const Vector2<T>& V1, const Vector2<T>& V2);
00121 
00131 template <typename T>
00132 Vector2<T> operator *(const Vector2<T>& V, T X);
00133 
00143 template <typename T>
00144 Vector2<T> operator *(T X, const Vector2<T>& V);
00145 
00155 template <typename T>
00156 Vector2<T>& operator *=(Vector2<T>& V, T X);
00157 
00167 template <typename T>
00168 Vector2<T> operator /(const Vector2<T>& V, T X);
00169 
00179 template <typename T>
00180 Vector2<T>& operator /=(Vector2<T>& V, T X);
00181 
00191 template <typename T>
00192 bool operator ==(const Vector2<T>& V1, const Vector2<T>& V2);
00193 
00203 template <typename T>
00204 bool operator !=(const Vector2<T>& V1, const Vector2<T>& V2);
00205 
00206 #include <SFML/System/Vector2.inl>
00207 
00208 // Define the most common types
00209 typedef Vector2<int>   Vector2i;
00210 typedef Vector2<float> Vector2f;
00211 
00212 } // namespace sf
00213 
00214 
00215 #endif // SFML_VECTOR2_HPP