![]() |
Raven Engine v0.1
|
Core vector arithmetic and geometric operations for Crux. More...
#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 > &a, const Vector< T, N > &b) |
| Component-wise addition of two vectors. | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > | Crux::operator- (const Vector< T, N > &a, const Vector< T, N > &b) |
| Component-wise subtraction of two vectors. | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > | Crux::operator* (const Vector< T, N > &a, const T &scalar) |
| Scalar multiplication (vector * scalar). | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > | Crux::operator* (const T &scalar, const Vector< T, N > &a) |
| Scalar multiplication (scalar * vector). | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > | Crux::operator/ (const Vector< T, N > &a, const T &scalar) |
| Scalar division of a vector. | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > & | Crux::operator+= (Vector< T, N > &a, const Vector< T, N > &b) |
| Compound addition assignment (vector += vector). | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > & | Crux::operator-= (Vector< T, N > &a, const Vector< T, N > &b) |
| Compound subtraction assignment (vector -= vector). | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > & | Crux::operator*= (Vector< T, N > &a, const T &scalar) |
| Compound scalar multiplication assignment (vector *= scalar). | |
| template<typename T, size_t N> | |
| constexpr Vector< T, N > & | Crux::operator/= (Vector< T, N > &a, const T &scalar) |
| Compound scalar division assignment (vector /= 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> | |
| T | 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> | |
| T | 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. | |
Core vector arithmetic and geometric operations for Crux.
Provides templated implementations of common vector operations such as addition, dot/cross products, normalization, projections, reflections, and more. All functions are constexpr-friendly for compile-time use with Vector<T, N> types.