Face Engine SDK  4.6.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
fsdk::Vector2< T > Struct Template Reference

Generic 2D vector. More...

#include <Vector2.h>

Public Member Functions

 Vector2 () noexcept
 Initializes a vector with zeroes.
 
 Vector2 (T x_) noexcept
 Initializes all elements with the same value. More...
 
 Vector2 (T x_, T y_) noexcept
 Initializes elements with given value. More...
 
template<typename Other >
 Vector2 (const Vector2< Other > &other) noexcept
 Copies another vector. More...
 
template<typename Other >
Vector2< T > & operator= (const Vector2< Other > &other) noexcept
 Copies another vector. More...
 
bool operator== (const Vector2 &other) const noexcept
 Checks if two vectors are equal. More...
 
bool operator!= (const Vector2 &other) const noexcept
 Checks if two vectors are not equal. More...
 
bool operator> (const Vector2 &other) const noexcept
 Checks if both coordinates are greater then respective coordinates of another vector. More...
 
bool operator>= (const Vector2 &other) const noexcept
 Checks if both coordinates are greater or equal to respective coordinates of another vector. More...
 
bool operator< (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller then respective coordinates of another vector. More...
 
bool operator<= (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller or equal to respective coordinates of another vector. More...
 
T & operator[] (int n) noexcept
 Indexes the vector. More...
 
const T & operator[] (int n) const noexcept
 Indexes the vector. More...
 
Vector2 operator- (void) const noexcept
 Negates all elements. More...
 
Vector2 operator+ (const Vector2 &rhs) const noexcept
 Adds (per-element) two vectors. More...
 
Vector2 operator- (const Vector2 &rhs) const noexcept
 Subtracts (per-element) two vectors. More...
 
Vector2 operator* (const Vector2 &rhs) const noexcept
 Multiplies (per-element) two vectors. More...
 
Vector2 operator/ (const Vector2 &rhs) const noexcept
 Divides (per-element) two vectors. More...
 
Vector2operator+= (const Vector2 &rhs) noexcept
 Adds (per-element) two vectors. More...
 
Vector2operator-= (const Vector2 &rhs) noexcept
 Subtracts (per-element) two vectors. More...
 
Vector2operator*= (const Vector2 &rhs) noexcept
 Multiplies (per-element) two vectors. More...
 
Vector2operator/= (const Vector2 &rhs) noexcept
 Divides (per-element) two vectors. More...
 
Vector2 operator+ (T rhs) const noexcept
 Adds (per-element) a constant to each element of the vector. More...
 
Vector2 operator- (T rhs) const noexcept
 Subtracts (per-element) a constant to each element of the vector. More...
 
Vector2 operator* (T rhs) const noexcept
 Multiplies (per-element) a constant to each element of the vector. More...
 
Vector2 operator/ (T rhs) const noexcept
 Divides (per-element) a constant to each element of the vector. More...
 
Vector2operator+= (T rhs) noexcept
 Adds (per-element) a constant to each element of the vector. More...
 
Vector2operator-= (T rhs) noexcept
 Subtracts (per-element) a constant to each element of the vector. More...
 
Vector2operator*= (T rhs) noexcept
 Multiplies (per-element) a constant to each element of the vector. More...
 
Vector2operator/= (T rhs) noexcept
 Divides (per-element) a constant to each element of the vector. More...
 

Public Attributes

union {
   struct {
      T   x
 x coordinate.
 
      T   y
 y coordinate.
 
   } 
 Ordered vector elements structure.
 
   T   array [2]
 Array for iteration.
 
}; 
 Union to make enable iteration through vector elements.
 

Detailed Description

template<typename T>
struct fsdk::Vector2< T >

Generic 2D vector.

Template Parameters
Tany POD numeric type.

Constructor & Destructor Documentation

template<typename T>
fsdk::Vector2< T >::Vector2 ( x_)
inlineexplicitnoexcept

Initializes all elements with the same value.

Parameters
[in]x_value to initialize with.
template<typename T>
fsdk::Vector2< T >::Vector2 ( x_,
y_ 
)
inlinenoexcept

Initializes elements with given value.

Parameters
[in]x_x coordinate value.
[in]y_y coordinate value.
template<typename T>
template<typename Other >
fsdk::Vector2< T >::Vector2 ( const Vector2< Other > &  other)
inlinenoexcept

Copies another vector.

Parameters
[in]otheranother vector.

Member Function Documentation

template<typename T>
bool fsdk::Vector2< T >::operator!= ( const Vector2< T > &  other) const
inlinenoexcept

Checks if two vectors are not equal.

Parameters
[in]othervector to check against.
Returns
true if two vectors are not equal.
template<typename T>
Vector2 fsdk::Vector2< T >::operator* ( const Vector2< T > &  rhs) const
inlinenoexcept

Multiplies (per-element) two vectors.

Parameters
[in]rhsvector to multiply by.
Returns
resulting vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator* ( rhs) const
inlinenoexcept

Multiplies (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to multiply by.
Returns
resulting vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator*= ( const Vector2< T > &  rhs)
inlinenoexcept

Multiplies (per-element) two vectors.

Parameters
[in]rhsvector to multiply by.
Returns
modified vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator*= ( rhs)
inlinenoexcept

Multiplies (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to multiply by.
Returns
modified vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator+ ( const Vector2< T > &  rhs) const
inlinenoexcept

Adds (per-element) two vectors.

Parameters
[in]rhsvector to add.
Returns
resulting vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator+ ( rhs) const
inlinenoexcept

Adds (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to add.
Returns
resulting vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator+= ( const Vector2< T > &  rhs)
inlinenoexcept

Adds (per-element) two vectors.

Parameters
[in]rhsvector to add.
Returns
modified vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator+= ( rhs)
inlinenoexcept

Adds (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to add.
Returns
modified vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator- ( void  ) const
inlinenoexcept

Negates all elements.

Returns
resulting vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator- ( const Vector2< T > &  rhs) const
inlinenoexcept

Subtracts (per-element) two vectors.

Parameters
[in]rhsvector to subtract.
Returns
resulting vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator- ( rhs) const
inlinenoexcept

Subtracts (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to subtract.
Returns
resulting vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator-= ( const Vector2< T > &  rhs)
inlinenoexcept

Subtracts (per-element) two vectors.

Parameters
[in]rhsvector to subtract.
Returns
modified vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator-= ( rhs)
inlinenoexcept

Subtracts (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to subtract.
Returns
modified vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator/ ( const Vector2< T > &  rhs) const
inlinenoexcept

Divides (per-element) two vectors.

Parameters
[in]rhsvector to divide by.
Returns
resulting vector.
template<typename T>
Vector2 fsdk::Vector2< T >::operator/ ( rhs) const
inlinenoexcept

Divides (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to divide by.
Returns
resulting vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator/= ( const Vector2< T > &  rhs)
inlinenoexcept

Divides (per-element) two vectors.

Parameters
[in]rhsvector to divide by.
Returns
modified vector.
template<typename T>
Vector2& fsdk::Vector2< T >::operator/= ( rhs)
inlinenoexcept

Divides (per-element) a constant to each element of the vector.

Parameters
[in]rhsvalue to divide by.
Returns
modified vector.
template<typename T>
bool fsdk::Vector2< T >::operator< ( const Vector2< T > &  other) const
inlinenoexcept

Checks if both coordinates are smaller then respective coordinates of another vector.

Parameters
[in]othervector to check against.
Returns
true if smaller.
template<typename T>
bool fsdk::Vector2< T >::operator<= ( const Vector2< T > &  other) const
inlinenoexcept

Checks if both coordinates are smaller or equal to respective coordinates of another vector.

Parameters
[in]othervector to check against.
Returns
true if smaller or equal.
template<typename T>
template<typename Other >
Vector2<T>& fsdk::Vector2< T >::operator= ( const Vector2< Other > &  other)
inlinenoexcept

Copies another vector.

Parameters
[in]otheranother vector.
Returns
reference for call chaining.
template<typename T>
bool fsdk::Vector2< T >::operator== ( const Vector2< T > &  other) const
inlinenoexcept

Checks if two vectors are equal.

Parameters
[in]othervector to check against.
Returns
true if two vectors are equal.
template<typename T>
bool fsdk::Vector2< T >::operator> ( const Vector2< T > &  other) const
inlinenoexcept

Checks if both coordinates are greater then respective coordinates of another vector.

Parameters
[in]othervector to check against.
Returns
true if greater.
template<typename T>
bool fsdk::Vector2< T >::operator>= ( const Vector2< T > &  other) const
inlinenoexcept

Checks if both coordinates are greater or equal to respective coordinates of another vector.

Parameters
[in]othervector to check against.
Returns
true if greater or equal.
template<typename T>
T& fsdk::Vector2< T >::operator[] ( int  n)
inlinenoexcept

Indexes the vector.

Parameters
[in]nelement index.
Returns
element reference.
template<typename T>
const T& fsdk::Vector2< T >::operator[] ( int  n) const
inlinenoexcept

Indexes the vector.

Parameters
[in]nelement index.
Returns
element const reference.

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