#include "egg/math/eggVector.h" namespace EGG { const Vector2f Vector2f::zero(0.0f, 0.0f); const Vector2f Vector2f::ex(1.0f, 0.0f); const Vector2f Vector2f::ey(0.0f, 1.0f); const Vector3f Vector3f::zero(0.0f, 0.0f, 0.0f); const Vector3f Vector3f::ex(1.0f, 0.0f, 0.0f); const Vector3f Vector3f::ey(0.0f, 1.0f, 0.0f); const Vector3f Vector3f::ez(0.0f, 0.0f, 1.0f); const Vector3s Vector3s::zero(0, 0, 0); const Vector3s Vector3s::ex(1, 0, 0); const Vector3s Vector3s::ey(0, 1, 0); const Vector3s Vector3s::ez(0, 0, 1); f32 Vector3f::normalise() { f32 len = length(); if (len > 0.0f) { x *= 1.0f / len; y *= 1.0f / len; z *= 1.0f / len; } return len; } f32 Vector3f::setLength(const Vector3f &src, f32 len) { const f32 mag = src.length(); if (mag <= FLT_EPSILON) { z = 0.0f; y = 0.0f; x = 0.0f; return 0.0f; } x = src.x * (len / mag); y = src.y * (len / mag); z = src.z * (len / mag); return mag; } f32 Vector3f::setLength(f32 len) { const f32 mag = length(); if (mag <= FLT_EPSILON) { return 0.0f; } x *= len / mag; y *= len / mag; z *= len / mag; return mag; } } // namespace EGG