ShishGL  1.0
A simple modular cross-platform graphics library
Vector2.hpp
Go to the documentation of this file.
1 /*============================================================================*/
2 #ifndef SHISHGL_VECTOR_2_HPP
3 #define SHISHGL_VECTOR_2_HPP
4 /*============================================================================*/
5 namespace Sh {
6 
7  template <typename T>
8  struct Vector2 {
9 
10  T x, y;
11 
12  T length() const;
13 
14  Vector2<T> operator-() const;
15 
16  Vector2<T> operator!() const;
17 
18  Vector2<T>& operator+=(const Vector2<T>& right);
19  Vector2<T> operator+ (const Vector2<T>& right) const;
20 
21  Vector2<T>& operator-=(const Vector2<T>& right);
22  Vector2<T> operator- (const Vector2<T>& right) const;
23 
24  Vector2<T>& operator*=(const T& mul);
25 
26  T operator^(const Vector2<T>& right) const;
27 
28  Vector2<T>& operator|=(const Vector2<T>& right);
29  Vector2<T> operator| (const Vector2<T>& right) const;
30 
31  template <typename P>
32  explicit operator Vector2<P>() const;
33 
34  };
35 
36  template <typename T>
37  Vector2<T> operator*(const T& mul, const Vector2<T>& vec);
38 
39 }
40 /*============================================================================*/
41 #include "Vector2.ipp"
42 /*============================================================================*/
43 #endif //SHISHGL_VECTOR_2_HPP
44 /*============================================================================*/
Vector2.ipp
Sh::Vector2::x
T x
Definition: Vector2.hpp:10
Sh::Vector2
Definition: Vector2.hpp:8
Sh::Vector2::operator+=
Vector2< T > & operator+=(const Vector2< T > &right)
Definition: Vector2.ipp:35
Sh::Vector2::length
T length() const
Definition: Vector2.ipp:10
Sh::Vector2::operator^
T operator^(const Vector2< T > &right) const
Definition: Vector2.ipp:75
Sh::Vector2::operator!
Vector2< T > operator!() const
Definition: Vector2.ipp:95
Sh::Vector2::y
T y
Definition: Vector2.hpp:10
Sh::Vector2::operator+
Vector2< T > operator+(const Vector2< T > &right) const
Definition: Vector2.ipp:42
Sh::Vector2::operator|
Vector2< T > operator|(const Vector2< T > &right) const
Definition: Vector2.ipp:88
Sh::Vector2::operator-=
Vector2< T > & operator-=(const Vector2< T > &right)
Definition: Vector2.ipp:49
Sh
Definition: CoreApplication.hpp:10
Sh::Vector2::operator*=
Vector2< T > & operator*=(const T &mul)
Definition: Vector2.ipp:61
Sh::operator*
Vector2< T > operator*(const T &mul, const Vector2< T > &vec)
Definition: Vector2.ipp:68
Sh::Vector2::operator|=
Vector2< T > & operator|=(const Vector2< T > &right)
Definition: Vector2.ipp:82
Sh::Vector2::operator-
Vector2< T > operator-() const
Definition: Vector2.ipp:28