Face Engine SDK 5.25.0
A face detection, recognition and tracking engine.
Loading...
Searching...
No Matches
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.
 
 Vector2 (T x_, T y_) noexcept
 Initializes elements with given value.
 
template<typename Other >
 Vector2 (const Vector2< Other > &other) noexcept
 Copies another vector.
 
template<typename Other >
Vector2< T > & operator= (const Vector2< Other > &other) noexcept
 Copies another vector.
 
bool operator== (const Vector2 &other) const noexcept
 Checks if two vectors are equal.
 
bool operator!= (const Vector2 &other) const noexcept
 Checks if two vectors are not equal.
 
bool operator> (const Vector2 &other) const noexcept
 Checks if both coordinates are greater then respective coordinates of another vector.
 
bool operator>= (const Vector2 &other) const noexcept
 Checks if both coordinates are greater or equal to respective coordinates of another vector.
 
bool operator< (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller then respective coordinates of another vector.
 
bool operator<= (const Vector2 &other) const noexcept
 Checks if both coordinates are smaller or equal to respective coordinates of another vector.
 
T & operator[] (int n) noexcept
 Indexes the vector.
 
const T & operator[] (int n) const noexcept
 Indexes the vector.
 
Vector2 operator- (void) const noexcept
 Negates all elements.
 
Vector2 operator+ (const Vector2 &rhs) const noexcept
 Adds (per-element) two vectors.
 
Vector2 operator- (const Vector2 &rhs) const noexcept
 Subtracts (per-element) two vectors.
 
Vector2 operator* (const Vector2 &rhs) const noexcept
 Multiplies (per-element) two vectors.
 
Vector2 operator/ (const Vector2 &rhs) const noexcept
 Divides (per-element) two vectors.
 
Vector2operator+= (const Vector2 &rhs) noexcept
 Adds (per-element) two vectors.
 
Vector2operator-= (const Vector2 &rhs) noexcept
 Subtracts (per-element) two vectors.
 
Vector2operator*= (const Vector2 &rhs) noexcept
 Multiplies (per-element) two vectors.
 
Vector2operator/= (const Vector2 &rhs) noexcept
 Divides (per-element) two vectors.
 
Vector2 operator+ (T rhs) const noexcept
 Adds (per-element) a constant to each element of the vector.
 
Vector2 operator- (T rhs) const noexcept
 Subtracts (per-element) a constant to each element of the vector.
 
Vector2 operator* (T rhs) const noexcept
 Multiplies (per-element) a constant to each element of the vector.
 
Vector2 operator/ (T rhs) const noexcept
 Divides (per-element) a constant to each element of the vector.
 
Vector2operator+= (T rhs) noexcept
 Adds (per-element) a constant to each element of the vector.
 
Vector2operator-= (T rhs) noexcept
 Subtracts (per-element) a constant to each element of the vector.
 
Vector2operator*= (T rhs) noexcept
 Multiplies (per-element) a constant to each element of the vector.
 
Vector2operator/= (T rhs) noexcept
 Divides (per-element) a constant to each element of the vector.
 

Public Attributes

x
 x coordinate.
 
y
 y coordinate.
 

Detailed Description

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

Generic 2D vector.

Template Parameters
Tany POD numeric type.

Constructor & Destructor Documentation

◆ Vector2() [1/3]

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

Initializes all elements with the same value.

Parameters
[in]x_value to initialize with.

◆ Vector2() [2/3]

template<typename T >
fsdk::Vector2< T >::Vector2 ( T x_,
T y_ )
inlinenoexcept

Initializes elements with given value.

Parameters
[in]x_x coordinate value.
[in]y_y coordinate value.

◆ Vector2() [3/3]

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

◆ operator!=()

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.

◆ operator*() [1/2]

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.

◆ operator*() [2/2]

template<typename T >
Vector2 fsdk::Vector2< T >::operator* ( T rhs) const
inlinenoexcept

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

Parameters
[in]rhsvalue to multiply by.
Returns
resulting vector.

◆ operator*=() [1/2]

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.

◆ operator*=() [2/2]

template<typename T >
Vector2 & fsdk::Vector2< T >::operator*= ( T rhs)
inlinenoexcept

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

Parameters
[in]rhsvalue to multiply by.
Returns
modified vector.

◆ operator+() [1/2]

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.

◆ operator+() [2/2]

template<typename T >
Vector2 fsdk::Vector2< T >::operator+ ( T rhs) const
inlinenoexcept

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

Parameters
[in]rhsvalue to add.
Returns
resulting vector.

◆ operator+=() [1/2]

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.

◆ operator+=() [2/2]

template<typename T >
Vector2 & fsdk::Vector2< T >::operator+= ( T rhs)
inlinenoexcept

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

Parameters
[in]rhsvalue to add.
Returns
modified vector.

◆ operator-() [1/3]

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.

◆ operator-() [2/3]

template<typename T >
Vector2 fsdk::Vector2< T >::operator- ( T rhs) const
inlinenoexcept

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

Parameters
[in]rhsvalue to subtract.
Returns
resulting vector.

◆ operator-() [3/3]

template<typename T >
Vector2 fsdk::Vector2< T >::operator- ( void ) const
inlinenoexcept

Negates all elements.

Returns
resulting vector.

◆ operator-=() [1/2]

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.

◆ operator-=() [2/2]

template<typename T >
Vector2 & fsdk::Vector2< T >::operator-= ( T rhs)
inlinenoexcept

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

Parameters
[in]rhsvalue to subtract.
Returns
modified vector.

◆ operator/() [1/2]

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.

◆ operator/() [2/2]

template<typename T >
Vector2 fsdk::Vector2< T >::operator/ ( T rhs) const
inlinenoexcept

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

Parameters
[in]rhsvalue to divide by.
Returns
resulting vector.

◆ operator/=() [1/2]

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.

◆ operator/=() [2/2]

template<typename T >
Vector2 & fsdk::Vector2< T >::operator/= ( T rhs)
inlinenoexcept

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

Parameters
[in]rhsvalue to divide by.
Returns
modified vector.

◆ operator<()

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.

◆ operator<=()

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.

◆ operator=()

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.

◆ operator==()

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.

◆ operator>()

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.

◆ operator>=()

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.

◆ operator[]() [1/2]

template<typename T >
const T & fsdk::Vector2< T >::operator[] ( int n) const
inlinenoexcept

Indexes the vector.

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

◆ operator[]() [2/2]

template<typename T >
T & fsdk::Vector2< T >::operator[] ( int n)
inlinenoexcept

Indexes the vector.

Parameters
[in]nelement index.
Returns
element reference.

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