Vector2
The Vector2 type provides a highly optimized and flexible container for 2D vector mathematics. It supports efficient storage, manipulation, and arithmetic operations, and is designed for performance-critical applications such as graphics, physics, and simulation. Vector2 is available in multiple scalar type variants, and includes seamless conversions from 3D and 4D vector types.
Vector2 has the same alignment as its underlying type.
SIMD types can be used as template parameters for structure of array (SOA) calculations.
#include <math/TellusimVector.h>
Vector2i
Represents a 2D vector of 32-bit signed integers.
Vector2u
Represents a 2D vector of 32-bit unsigned integers.
Vector2f
Represents a 2D vector of 32-bit floating-point numbers.
Vector2d
Represents a 2D vector of 64-bit floating-point numbers.
Variables
Type | Name | Description |
---|---|---|
Type | x, y | Individual components. |
Type | v[2] | Array access. |
Constants
Type | Name | Description |
---|---|---|
Vector2 | zero | Vector of zeros. |
Vector2 | one | Vector of ones. |
Constructors
Vector2()
Vector2(const Vector2 &v)
Vector2(const Type &x, const Type &y)
explicit Vector2(const Vector2<CType> &v)
explicit Vector2(const Vector3<CType> &v)
explicit Vector2(const Vector4<CType> &v)
explicit Vector2(const Type *v)
explicit Vector2(const Type &v)
Methods
Update vector data.
void set(const Type &v)
void set(const Type &X, const Type &Y)
void set(const Vector3 &v)
void set(const Vector4 &v)
void set(const Type *v)
void get(Type *v) const
Vector to scalar operators.
Vector2 &operator*=(const Type &v)
Vector2 &operator/=(const Type &v)
Vector2 &operator%=(const Type &v)
Vector2 &operator+=(const Type &v)
Vector2 &operator-=(const Type &v)
Vector2 &operator&=(const Type &v)
Vector2 &operator|=(const Type &v)
Vector2 &operator^=(const Type &v)
Vector2 &operator<<=(const Type &v)
Vector2 &operator>>=(const Type &v)
Vector to vector operators.
Vector2 &operator*=(const Vector2 &v)
Vector2 &operator/=(const Vector2 &v)
Vector2 &operator%=(const Vector2 &v)
Vector2 &operator+=(const Vector2 &v)
Vector2 &operator-=(const Vector2 &v)
Vector2 &operator&=(const Vector2 &v)
Vector2 &operator|=(const Vector2 &v)
Vector2 &operator^=(const Vector2 &v)
Vector data.
const Type &operator[](uint32_t index) const
Type &operator[](uint32_t index)
Homogeneous transform.
Type cartesian() const
Operators
Unary operators.
Vector2 operator-(const Vector2 &v)
Vector to scalar operators.
Vector2 operator*(const Vector2 &v0, const Type &v1)
Vector2 operator/(const Vector2 &v0, const Type &v1)
Vector2 operator%(const Vector2 &v0, const Type &v1)
Vector2 operator+(const Vector2 &v0, const Type &v1)
Vector2 operator-(const Vector2 &v0, const Type &v1)
Vector2 operator&(const Vector2 &v0, const Type &v1)
Vector2 operator|(const Vector2 &v0, const Type &v1)
Vector2 operator^(const Vector2 &v0, const Type &v1)
Vector2 operator<<(const Vector2 &v0, const Type &v1)
Vector2 operator>>(const Vector2 &v0, const Type &v1)
Vector to vector operators.
Vector2 operator*(const Vector2 &v0, const Vector2 &v1)
Vector2 operator/(const Vector2 &v0, const Vector2 &v1)
Vector2 operator%(const Vector2 &v0, const Vector2 &v1)
Vector2 operator+(const Vector2 &v0, const Vector2 &v1)
Vector2 operator-(const Vector2 &v0, const Vector2 &v1)
Vector2 operator&(const Vector2 &v0, const Vector2 &v1)
Vector2 operator|(const Vector2 &v0, const Vector2 &v1)
Vector2 operator^(const Vector2 &v0, const Vector2 &v1)
Matrix to vector multiplications.
Vector2 operator*(const Matrix3x2 &m, const Vector2 &v)
Vector2 operator*(const Matrix4x3 &m, const Vector2 &v)
Vector2 operator*(const Matrix4x4 &m, const Vector2 &v)
Vector2 mul2x2(const Matrix3x2 &m, const Vector2 &v)
Vector2 mul2x2(const Matrix4x3 &m, const Vector2 &v)
Vector2 mul2x2(const Matrix4x4 &m, const Vector2 &v)
Vector to matrix multiplications.
Vector2 operator*(const Vector2 &v, const Matrix3x2 &m)
Vector2 operator*(const Vector2 &v, const Matrix4x3 &m)
Vector2 operator*(const Vector2 &v, const Matrix4x4 &m)
Vector2 mul2x2(const Vector2 &v, const Matrix4x4 &m)
Quaternion to vector multiplications.
Vector2 operator*(const Quaternion &q, const Vector2 &v)
Vector to quaternion multiplications.
Vector2 operator*(const Vector2 &v, const Quaternion &q)
Comparison operators.
bool operator==(const Vector2 &v0, const Vector2 &v1)
bool operator!=(const Vector2 &v0, const Vector2 &v1)
bool compare(const Vector2 &v0, const Vector2 &v1, const Type &a)
bool compare(const Vector2 &v0, const Vector2 &v1, const Type &a, const Type &r)
Functions
Sign functions.
Vector2 abs(const Vector2 &v)
Vector2 sign(const Vector2 &v)
Min/max functions.
Vector2 min(const Vector2 &v0, const Vector2 &v1)
Vector2 max(const Vector2 &v0, const Vector2 &v1)
Vector2 min(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2)
Vector2 max(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2)
Vector2 min(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2, const Vector2 &v3)
Vector2 max(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2, const Vector2 &v3)
Range functions.
Vector2 saturate(const Vector2 &v)
Vector2 clamp(const Vector2 &v, const Type &v0, const Type &v1)
Vector2 clamp(const Vector2 &v, const Vector2 &v0, const Vector2 &v1)
Math functions.
Vector2 sin(const Vector2 &v)
Vector2 cos(const Vector2 &v)
Vector2 tan(const Vector2 &v)
Vector2 rcp(const Vector2 &v)
Vector2 sqrt(const Vector2 &v)
Vector2 rsqrt(const Vector2 &v)
Vector2 ceil(const Vector2 &v)
Vector2 floor(const Vector2 &v)
Vector2 round(const Vector2 &v)
Vector2 fract(const Vector2 &v)
Exponential functions.
Vector2 pow(const Vector2 &v0, const Type &v1)
Vector2 pow(const Vector2 &v0, const Vector2 &v1)
Vector2 exp(const Vector2 &v)
Vector2 log(const Vector2 &v)
Vector2 exp2(const Vector2 &v)
Vector2 log2(const Vector2 &v)
Vector2 log10(const Vector2 &v)
Vector functions
Type dot(const Vector2 &v0, const Vector2 &v1)
Type cross(const Vector2 &v0, const Vector2 &v1)
Type length2(const Vector2 &v)
Type length(const Vector2 &v)
Vector2 normalize(const Vector2 &v)
Vector2 lerp(const Vector2 &v0, const Vector2 &v1, const Type &k)
Vector2 lerp(const Vector2 &v0, const Vector2 &v1, const Vector2 &k)