diff options
| author | 2lag <96544487+2lag@users.noreply.github.com> | 2026-08-08 17:33:36 +0200 |
|---|---|---|
| committer | 2lag <96544487+2lag@users.noreply.github.com> | 2026-08-08 17:33:36 +0200 |
| commit | 2973df584978d9aae6f164ce0204179c8a28b3ae (patch) | |
| tree | c1b793c8e0d17aeb66c5197bc28acca84b2c98ab /src/util/vector.h | |
| parent | e540910745aad31378452eec25aacfb3f346191a (diff) | |
console, textbox changes, some other shit
Diffstat (limited to 'src/util/vector.h')
| -rw-r--r-- | src/util/vector.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/util/vector.h b/src/util/vector.h index 294b627..c88ccee 100644 --- a/src/util/vector.h +++ b/src/util/vector.h @@ -12,8 +12,9 @@ struct VEC2 { F32 y; VEC2() { x = y = 0.0f; } - VEC2( F32 X, F32 Y ) { x = X; y = Y; } VEC2( const VEC2& v ) = default; + template<typename T1, typename T2> + VEC2( T1 X, T2 Y ) { x = (F32)X; y = (F32)Y; } bool operator==( const VEC2& v ) const { return ( x == v.x && y == v.y ); } F32& operator[]( I32 i ) { return ( (F32*)this )[i]; } @@ -46,9 +47,9 @@ struct VEC3 { F32 z; VEC3() { x = y = z = 0.0f; } - VEC3( F32 X, F32 Y, F32 Z ) { x = X; y = Y; z = Z; } VEC3( const VEC3& v ) = default; - + template<typename T1, typename T2, typename T3> + VEC3( T1 X, T2 Y, T3 Z ) { x = (F32)X; y = (F32)Y; z = (F32)Z; } VEC3( const VEC2& v ) { x = v.x; y = v.y; z = 0.f; } bool operator==( const VEC3& v ) const { return ( x == v.x && y == v.y && z == v.z ); } @@ -81,8 +82,9 @@ struct VEC4 { F32 x, y, z, w; VEC4() { x = y = z = w = 0; } - VEC4( F32 X, F32 Y, F32 Z, F32 W ) { x = X; y = Y; z = Z; w = W; } VEC4( const VEC4& v ) = default; + template <typename T1, typename T2, typename T3, typename T4> + VEC4( T1 X, T2 Y, T3 Z, T4 W ) { x = (F32)X; y = (F32)Y; z = (F32)Z; w = (F32)W; } VEC4( const VEC3& v ) { x = v.x; y = v.y; z = v.z; w = 1.f; } VEC4( const VEC2& v ) { x = v.x; y = v.y; z = 0.f; w = 1.f; } @@ -227,19 +229,19 @@ inline void angle_vectors( const VEC3& angles, VEC3* forward, VEC3* right, VEC3* sr = sinf( angles.z * PIRAD ); cr = cosf( angles.z * PIRAD ); - if ( forward ) { + if( forward ) { forward->x = cp * cy; forward->y = cp * sy; forward->z = -sp; } - if ( right ) { + if( right ) { right->x = -1 * sr * sp * cy + -1 * cr * -sy; right->y = -1 * sr * sp * sy + -1 * cr * cy; right->z = -1 * sr * cp; } - if ( up ) { + if( up ) { up->x = cr * sp * cy + -sr * -sy; up->y = cr * sp * sy + -sr * cy; up->z = cr * cp; |
