Raven Engine v0.1
A modern 3D Game Engine
Loading...
Searching...
No Matches
VectorOps.h File Reference
#include <cmath>
#include "Crux/Utils/Constants.h"
#include "Crux/Math/BasicMath.h"
#include "Crux/Types/Vector.h"

Namespaces

namespace  Crux

Functions

template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator- (const Vector< T, N > &v)
template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator+ (const Vector< T, N > &a, const Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator- (const Vector< T, N > &a, const Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator* (const Vector< T, N > &a, const T &scalar)
template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator* (const T &scalar, const Vector< T, N > &a)
template<typename T, size_t N>
constexpr Vector< T, N > Crux::operator/ (const Vector< T, N > &a, const T &scalar)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator+= (Vector< T, N > &a, const Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator* (const Vector< T, N > &a, const Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator*= (Vector< T, N > &a, Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator-= (Vector< T, N > &a, const Vector< T, N > &b)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator*= (Vector< T, N > &a, const T &scalar)
template<typename T, size_t N>
constexpr Vector< T, N > & Crux::operator/= (Vector< T, N > &a, const T &scalar)
template<typename T, size_t N>
constexpr T Crux::Dot (const Vector< T, N > &a, const Vector< T, N > &b)
 Dot product of two vectors.
template<typename T>
constexpr Vector< T, 3 > Crux::Cross (const Vector< T, 3 > &a, const Vector< T, 3 > &b)
 Cross product for 3D vectors.
template<typename T, size_t N>
constexpr T Crux::LengthSq (const Vector< T, N > &a)
 Squared length (magnitude) of a vector.
template<typename T, size_t N>
Crux::Length (const Vector< T, N > &a)
 Length (magnitude) of a vector.
template<typename T, size_t N>
Vector< T, N > Crux::Normalize (const Vector< T, N > &a)
 Normalizes a vector to unit length.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::Project (const Vector< T, N > &a, const Vector< T, N > &b)
 Projects vector a onto vector b.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::Reflect (const Vector< T, N > &a, const Vector< T, N > &normal)
 Reflects vector a around the given normal.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::MinComponent (const Vector< T, N > &a, const Vector< T, N > &b)
 Element-wise minimum of two vectors.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::MaxComponent (const Vector< T, N > &a, const Vector< T, N > &b)
 Element-wise maximum of two vectors.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::Abs (const Vector< T, N > &a)
 Element-wise absolute value of a vector.
template<typename T, size_t N>
constexpr bool Crux::operator== (const Vector< T, N > &a, const Vector< T, N > &b)
 Approximate equality comparison with tolerance.
template<typename T, size_t N>
constexpr bool Crux::operator!= (const Vector< T, N > &a, const Vector< T, N > &b)
 Inequality comparison.
template<typename T, size_t N>
Crux::AngleBetween (const Vector< T, N > &a, const Vector< T, N > &b)
 Angle between two vectors in radians.
template<typename T, size_t N>
constexpr Vector< T, N > Crux::Lerp (const Vector< T, N > &a, const Vector< T, N > &b, T t)
 Linear interpolation between two vectors.