From 4dde6cf046b5297ca08899bfd507d17280bf289f Mon Sep 17 00:00:00 2001 From: Radzhab Bisultanov Date: Thu, 5 Mar 2026 17:41:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B5=D0=BA=D1=82=D0=BE=D1=80=20=D0=BE?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D1=91=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/INS/geometry/vector.h | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/Source/INS/geometry/vector.h b/Source/INS/geometry/vector.h index 8a6b1b5..fc519bc 100644 --- a/Source/INS/geometry/vector.h +++ b/Source/INS/geometry/vector.h @@ -4,6 +4,47 @@ #define VECTOR_H +typedef struct +{ + float x, y; +} Vector2; +typedef struct +{ + float x, y, z; +} Vector3; + +Vector2 normalizeV2(Vector2* v, float gain); +Vector3 normalizeV3(Vector3* v, float gain); + +Vector2 absV2(const Vector2* v); +Vector3 absV3(const Vector3* v); + +float lengthV2(const Vector2* v); +float lengthV3(const Vector3* v); + +float lengthSquaredV2(const Vector2* v); +float lengthSquaredV3(const Vector3* v); + +Vector2 limitV2(float min, float max); +Vector3 limitV3(float min, float max); + +Vector2 powerV2(float pow); +Vector3 powerV3(float pow); + +Vector2 sumV2(const Vector2* v1, const Vector2* v2); +Vector3 sumV3(const Vector3* v1, const Vector3* v2); + +Vector2 diffV2(const Vector2* v1, const Vector2* v2); +Vector3 diffV3(const Vector3* v1, const Vector3* v2); + +Vector2 constProdV2(float value); +Vector3 constProdV3(float value); + +float scalarProdV2(const Vector2* v1, const Vector2* v2); +float scalarProdV3(const Vector3* v1, const Vector3* v2); + +Vector2 vectorProdV2(const Vector2* v1, const Vector2* v2); +Vector3 vectorProdV3(const Vector3* v1, const Vector3* v2); #endif \ No newline at end of file