SDL Utility
Vector2< T, typename > Struct Template Reference

A struct to handle basic 2D vector operations. More...

#include <Vector2.hpp>

Public Member Functions

 Vector2 ()
 Initializes a zero vector. More...
 
 Vector2 (T x, T y)
 Initializes a vector with default values. More...
 
 Vector2 (const Vector2< T > &other)
 Copies the components of a vector. More...
 

Public Attributes

x
 x component More...
 
y
 y component More...
 

Friends

Vector2< T > operator- (const Vector2< T > &right)
 
Vector2< T > operator+ (const Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > operator- (const Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > operator* (const Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > operator/ (const Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > operator* (T left, const Vector2< T > &right)
 
Vector2< T > operator* (const Vector2< T > &left, T right)
 
Vector2< T > operator/ (const Vector2< T > &left, T right)
 
Vector2< T > & operator+= (Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > & operator-= (Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > & operator*= (Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > & operator/ (Vector2< T > &left, const Vector2< T > &right)
 
Vector2< T > & operator*= (Vector2< T > &left, T right)
 
Vector2< T > & operator/= (Vector2< T > &left, T right)
 
bool operator== (const Vector2< T > &left, const Vector2< T > &right)
 
bool operator!= (const Vector2< T > &left, const Vector2< T > &right)
 

Detailed Description

template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
struct Vector2< T, typename >

A struct to handle basic 2D vector operations.

Template Parameters
TThe (arithmetical) type of the vector components

Constructor & Destructor Documentation

◆ Vector2() [1/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2< T, typename >::Vector2 ( )
inline

Initializes a zero vector.

◆ Vector2() [2/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2< T, typename >::Vector2 ( x,
y 
)
inline

Initializes a vector with default values.

◆ Vector2() [3/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2< T, typename >::Vector2 ( const Vector2< T > &  other)
inline

Copies the components of a vector.

Friends And Related Function Documentation

◆ operator!=

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
bool operator!= ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator* [1/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator* ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator* [2/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator* ( const Vector2< T > &  left,
right 
)
friend

◆ operator* [3/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator* ( left,
const Vector2< T > &  right 
)
friend

◆ operator*= [1/2]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator*= ( Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator*= [2/2]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator*= ( Vector2< T > &  left,
right 
)
friend

◆ operator+

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator+ ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator+=

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator+= ( Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator- [1/2]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator- ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator- [2/2]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator- ( const Vector2< T > &  right)
friend

◆ operator-=

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator-= ( Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator/ [1/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator/ ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator/ [2/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T> operator/ ( const Vector2< T > &  left,
right 
)
friend

◆ operator/ [3/3]

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator/ ( Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

◆ operator/=

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
Vector2<T>& operator/= ( Vector2< T > &  left,
right 
)
friend

◆ operator==

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
bool operator== ( const Vector2< T > &  left,
const Vector2< T > &  right 
)
friend

Member Data Documentation

◆ x

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
T Vector2< T, typename >::x

x component

◆ y

template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
T Vector2< T, typename >::y

y component


The documentation for this struct was generated from the following file: