NcEngine
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Vector.h File Reference
#include "Math.h"

Go to the source code of this file.

Classes

struct  nc::Vector2
 A two component vector. More...
 
struct  nc::Vector3
 A three component vector. More...
 
struct  nc::Vector4
 A four component vector. More...
 

Functions

Vector2 Functions
constexpr auto nc::operator== (const Vector2 &lhs, const Vector2 &rhs) noexcept -> bool
 
constexpr auto nc::operator!= (const Vector2 &lhs, const Vector2 &rhs) noexcept -> bool
 
constexpr auto nc::operator+ (const Vector2 &lhs, const Vector2 &rhs) noexcept -> Vector2
 
constexpr auto nc::operator- (const Vector2 &lhs, const Vector2 &rhs) noexcept -> Vector2
 
constexpr auto nc::operator* (const Vector2 &vec, float scalar) noexcept -> Vector2
 
constexpr auto nc::operator* (float scalar, const Vector2 &vec) noexcept -> Vector2
 
constexpr auto nc::operator/ (const Vector2 &vec, float scalar) noexcept -> Vector2
 
constexpr auto nc::operator- (const Vector2 &vec) noexcept -> Vector2
 
constexpr auto nc::Dot (const Vector2 &lhs, const Vector2 &rhs) noexcept -> float
 
constexpr auto nc::HadamardProduct (const Vector2 &lhs, const Vector2 &rhs) noexcept -> Vector2
 
constexpr auto nc::SquareMagnitude (const Vector2 &vec) noexcept -> float
 
auto nc::Magnitude (const Vector2 &vec) noexcept -> float
 
auto nc::Normalize (const Vector2 &vec) noexcept -> Vector2
 
constexpr auto nc::SquareDistance (const Vector2 &lhs, const Vector2 &rhs) noexcept -> float
 
auto nc::Distance (const Vector2 &lhs, const Vector2 &rhs) noexcept -> float
 
constexpr auto nc::HasAnyZeroElement (const Vector2 &vec) noexcept -> bool
 
constexpr auto nc::HasUniformElements (const Vector2 &vec) noexcept -> bool
 
Vector3 Functions
constexpr auto nc::operator== (const Vector3 &lhs, const Vector3 &rhs) noexcept -> bool
 
constexpr auto nc::operator!= (const Vector3 &lhs, const Vector3 &rhs) noexcept -> bool
 
constexpr auto nc::operator+ (const Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3
 
constexpr auto nc::operator- (const Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3
 
constexpr auto nc::operator* (const Vector3 &vec, float scalar) noexcept -> Vector3
 
constexpr auto nc::operator* (float scalar, const Vector3 &vec) noexcept -> Vector3
 
constexpr auto nc::operator/ (const Vector3 &vec, float scalar) noexcept -> Vector3
 
constexpr auto nc::operator- (const Vector3 &vec) noexcept -> Vector3
 
constexpr auto nc::operator+= (Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3 &
 
constexpr auto nc::operator-= (Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3 &
 
constexpr auto nc::operator*= (Vector3 &lhs, float rhs) noexcept -> Vector3 &
 
constexpr auto nc::operator/= (Vector3 &lhs, float rhs) noexcept -> Vector3 &
 
constexpr auto nc::Dot (const Vector3 &lhs, const Vector3 &rhs) noexcept -> float
 
constexpr auto nc::CrossProduct (const Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3
 
constexpr auto nc::TripleCrossProduct (const Vector3 &a, const Vector3 &b, const Vector3 &c) noexcept -> Vector3
 
constexpr auto nc::HadamardProduct (const Vector3 &lhs, const Vector3 &rhs) noexcept -> Vector3
 
constexpr auto nc::SquareMagnitude (const Vector3 &vec) noexcept -> float
 
auto nc::Magnitude (const Vector3 &vec) noexcept -> float
 
auto nc::Normalize (const Vector3 &vec) noexcept -> Vector3
 
constexpr auto nc::SquareDistance (const Vector3 &lhs, const Vector3 &rhs) noexcept -> float
 
auto nc::Distance (const Vector3 &lhs, const Vector3 &rhs) noexcept -> float
 
constexpr auto nc::HasAnyZeroElement (const Vector3 &vec) noexcept -> bool
 
constexpr auto nc::HasUniformElements (const Vector3 &vec) noexcept -> bool
 
auto nc::OrthogonalTo (const Vector3 &vec) noexcept -> Vector3
 
void nc::OrthogonalBasis (const Vector3 &vec, Vector3 *a, Vector3 *b) noexcept
 
auto nc::ClosestOrthogonal (const Vector3 &target, const Vector3 &reference) noexcept -> Vector3
 
Vector4 Functions
constexpr auto nc::operator== (const Vector4 &lhs, const Vector4 &rhs) noexcept -> bool
 
constexpr auto nc::operator!= (const Vector4 &lhs, const Vector4 &rhs) noexcept -> bool
 
constexpr auto nc::operator+ (const Vector4 &lhs, const Vector4 &rhs) noexcept -> Vector4
 
constexpr auto nc::operator- (const Vector4 &lhs, const Vector4 &rhs) noexcept -> Vector4
 
constexpr auto nc::operator* (const Vector4 &vec, float scalar) noexcept -> Vector4
 
constexpr auto nc::operator* (float scalar, const Vector4 &vec) noexcept -> Vector4
 
constexpr auto nc::operator/ (const Vector4 &vec, float scalar) noexcept -> Vector4
 
constexpr auto nc::operator- (const Vector4 &vec) noexcept -> Vector4
 
constexpr auto nc::Dot (const Vector4 &lhs, const Vector4 &rhs) noexcept -> float
 
constexpr auto nc::HadamardProduct (const Vector4 &lhs, const Vector4 &rhs) noexcept -> Vector4
 
constexpr auto nc::SquareMagnitude (const Vector4 &vec) noexcept -> float
 
auto nc::Magnitude (const Vector4 &vec) noexcept -> float
 
auto nc::Normalize (const Vector4 &vec) noexcept -> Vector4
 
constexpr auto nc::SquareDistance (const Vector4 &lhs, const Vector4 &rhs) noexcept -> float
 
auto nc::Distance (const Vector4 &lhs, const Vector4 &rhs) noexcept -> float
 
constexpr auto nc::HasAnyZeroElement (const Vector4 &vec) noexcept -> bool
 
constexpr auto nc::HasUniformElements (const Vector4 &vec) noexcept -> bool
 
constexpr auto nc::ToVector3 (const Vector4 &vec) noexcept -> Vector3
 

Detailed Description