Browse Source

fixed bugmath.h

iver 7 months ago
parent
commit
e854c12d58
1 changed files with 49 additions and 21 deletions
  1. 49 21
      src/RasterIver/headers/bugMath.h

+ 49 - 21
src/RasterIver/headers/bugMath.h

@@ -13,36 +13,43 @@ struct Vec2 {
 
 
 struct Vec2 vec2_add(struct Vec2 a, struct Vec2 b){
 struct Vec2 vec2_add(struct Vec2 a, struct Vec2 b){
     struct Vec2 result = {a.x + b.x, a.y + b.y};
     struct Vec2 result = {a.x + b.x, a.y + b.y};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec2 vec2_sub(struct Vec2 a, struct Vec2 b){
 struct Vec2 vec2_sub(struct Vec2 a, struct Vec2 b){
     struct Vec2 result = {a.x - b.x, a.y - b.y};
     struct Vec2 result = {a.x - b.x, a.y - b.y};
+    
     return result;
     return result;
 }
 }
 
 
-struct Vec2 vec2_mul(struct Vec2 a, struct Vec2 b){
+struct Vec2 vec2_ham(struct Vec2 a, struct Vec2 b){
     struct Vec2 result = {a.x * b.x, a.y * b.y};
     struct Vec2 result = {a.x * b.x, a.y * b.y};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec2 vec2_div(struct Vec2 a, struct Vec2 b){
 struct Vec2 vec2_div(struct Vec2 a, struct Vec2 b){
     struct Vec2 result = {a.x / b.x, a.y / b.y};
     struct Vec2 result = {a.x / b.x, a.y / b.y};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec2 vec2_scale_m(struct Vec2 v, float scalar){
 struct Vec2 vec2_scale_m(struct Vec2 v, float scalar){
     struct Vec2 result = {v.x*scalar, v.y*scalar};
     struct Vec2 result = {v.x*scalar, v.y*scalar};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec2 vec2_scale_d(struct Vec2 v, float scalar){
 struct Vec2 vec2_scale_d(struct Vec2 v, float scalar){
     struct Vec2 result = {v.x/scalar, v.y/scalar};
     struct Vec2 result = {v.x/scalar, v.y/scalar};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec2 vec2_perp(struct Vec2 v){
 struct Vec2 vec2_perp(struct Vec2 v){
     struct Vec2 result = {-v.y, v.x};
     struct Vec2 result = {-v.y, v.x};
+    
     return result;
     return result;
 }
 }
 
 
@@ -73,21 +80,25 @@ struct Vec3 {
 
 
 struct Vec3 vec3_add(struct Vec3 a, struct Vec3 b){
 struct Vec3 vec3_add(struct Vec3 a, struct Vec3 b){
     struct Vec3 result = {a.x + b.x, a.y + b.y, a.z + b.z};
     struct Vec3 result = {a.x + b.x, a.y + b.y, a.z + b.z};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec3 vec3_sub(struct Vec3 a, struct Vec3 b){
 struct Vec3 vec3_sub(struct Vec3 a, struct Vec3 b){
     struct Vec3 result = {a.x - b.x, a.y - b.y, a.z - b.z};
     struct Vec3 result = {a.x - b.x, a.y - b.y, a.z - b.z};
+    
     return result;
     return result;
 }
 }
 
 
-struct Vec3 vec3_mul(struct Vec3 a, struct Vec3 b){
+struct Vec3 vec3_ham(struct Vec3 a, struct Vec3 b){
     struct Vec3 result = {a.x * b.x, a.y * b.y, a.z * b.z};
     struct Vec3 result = {a.x * b.x, a.y * b.y, a.z * b.z};
+    
     return result;
     return result;
 }
 }
 
 
 struct Vec3 vec3_div(struct Vec3 a, struct Vec3 b){
 struct Vec3 vec3_div(struct Vec3 a, struct Vec3 b){
     struct Vec3 result = {a.x / b.x, a.y / b.y, a.z / b.z};
     struct Vec3 result = {a.x / b.x, a.y / b.y, a.z / b.z};
+ 
     return result;
     return result;
 }
 }
 
 
@@ -97,16 +108,19 @@ float vec3_dot(struct Vec3 a, struct Vec3 b){
 
 
 struct Vec3 vec3_cross(struct Vec3 a, struct Vec3 b){
 struct Vec3 vec3_cross(struct Vec3 a, struct Vec3 b){
     struct Vec3 result = {a.y*b.z - b.y*a.z, a.z*b.x - b.z*a.x, a.x*b.y - b.x*a.y};;
     struct Vec3 result = {a.y*b.z - b.y*a.z, a.z*b.x - b.z*a.x, a.x*b.y - b.x*a.y};;
+ 
     return result;
     return result;
 }
 }
 
 
 struct Vec3 vec3_scale_m(struct Vec3 v, float scalar){
 struct Vec3 vec3_scale_m(struct Vec3 v, float scalar){
     struct Vec3 result = {v.x*scalar, v.y*scalar, v.z*scalar};
     struct Vec3 result = {v.x*scalar, v.y*scalar, v.z*scalar};
+ 
     return result;
     return result;
 }
 }
 
 
 struct Vec3 vec3_scale_d(struct Vec3 v, float scalar){
 struct Vec3 vec3_scale_d(struct Vec3 v, float scalar){
     struct Vec3 result = {v.x/scalar, v.y/scalar, v.z/scalar};
     struct Vec3 result = {v.x/scalar, v.y/scalar, v.z/scalar};
+ 
     return result;
     return result;
 }
 }
 
 
@@ -126,49 +140,63 @@ struct Vec3 vec3_norm(struct Vec3 v){
 
 
 
 
 
 
-struct Quaternion {
+struct Vec4 {
     float w;
     float w;
     float x;
     float x;
     float y;
     float y;
     float z;
     float z;
 };
 };
 
 
-struct Quaternion quat_add(struct Quaternion a, struct Quaternion b){
-    struct Quaternion result = {a.w + b.w, a.x + b.x, a.y + b.y, a.z + b.z};
+struct Vec4 vec4_add(struct Vec4 a, struct Vec4 b){
+    struct Vec4 result = {a.w + b.w, a.x + b.x, a.y + b.y, a.z + b.z};
+    
+    return result;
+}
+
+struct Vec4 vec4_sub(struct Vec4 a, struct Vec4 b){
+    struct Vec4 result = {a.w - b.w, a.x - b.x, a.y - b.y, a.z - b.z};
+    
     return result;
     return result;
 }
 }
 
 
-struct Quaternion quat_sub(struct Quaternion a, struct Quaternion b){
-    struct Quaternion result = {a.w - b.w, a.x - b.x, a.y - b.y, a.z - b.z};
+struct Vec4 vec4_ham(struct Vec4 a, struct Vec4 b){
+    struct Vec4 result = {a.w * b.w, a.x * b.x, a.y * b.y, a.z * b.z};
+
+    return result;
+}
+
+struct Vec4 vec4_div(struct Vec4 a, struct Vec4 b){
+    struct Vec4 result = {a.w / b.w, a.x / b.x, a.y / b.y, a.z / b.z};
+    
     return result;
     return result;
 }
 }
 
 
-struct Quaternion quat_mul(struct Quaternion a, struct Quaternion b){
-    struct Quaternion result;
+struct Vec4 quat_mul(struct Vec4 a, struct Vec4 b){
+    struct Vec4 result;
 
 
-    result.w = (w*other.w - x*other.x - y*other.y - z*other.z);
-    result.x = (w*other.x + x*other.w + y*other.z - z*other.y);
-    result.y = (w*other.y - x*other.z + y*other.w + z*other.x);
-    result.z = (w*other.z + x*other.y - y*other.x + z*other.w);
+    result.w = (a.w*b.w - a.x*b.x - a.y*b.y - a.z*b.z);
+    result.x = (a.w*b.x + a.x*b.w + a.y*b.z - a.z*b.y);
+    result.y = (a.w*b.y - a.x*b.z + a.y*b.w + a.z*b.x);
+    result.z = (a.w*b.z + a.x*b.y - a.y*b.x + a.z*b.w);
     
     
     return result;
     return result;
 }
 }
 
 
-float quat_dot(struct Quaternion a, struct Quaternion b){
+float vec4_dot(struct Vec4 a, struct Vec4 b){
     return a.w*b.w + a.x*b.x + a.y*b.y + a.z*b.z;
     return a.w*b.w + a.x*b.x + a.y*b.y + a.z*b.z;
 }
 }
 
 
-struct Quaternion quat_scale_m(struct Quaternion q, float scalar){
-    struct Quaternion result = {q.w*scalar, q.x*scalar, q.y*scalar, q.z*scalar};
+struct Vec4 vec4_scale_m(struct Vec4 q, float scalar){
+    struct Vec4 result = {q.w*scalar, q.x*scalar, q.y*scalar, q.z*scalar};
     return result;
     return result;
 }
 }
 
 
-struct Quaternion quat_scale_d(struct Quaternion q, float scalar){
-    struct Quaternion result = {q.w/scalar, q.x/scalar, q.y/scalar, q.z/scalar};
+struct Vec4 vec4_scale_d(struct Vec4 q, float scalar){
+    struct Vec4 result = {q.w/scalar, q.x/scalar, q.y/scalar, q.z/scalar};
     return result;
     return result;
 }
 }
 
 
-float quat_mag(struct Quaternion q){
+float vec4_mag(struct Vec4 q){
     float mag = q.w*q.w + q.x*q.x + q.y*q.y + q.z*q.z;
     float mag = q.w*q.w + q.x*q.x + q.y*q.y + q.z*q.z;
     if(mag == 1.0f){
     if(mag == 1.0f){
         return mag;
         return mag;
@@ -176,8 +204,8 @@ float quat_mag(struct Quaternion q){
     return sqrtf(mag);
     return sqrtf(mag);
 }
 }
 
 
-struct Quaternion quat_norm(struct Quaternion q){
-    return quat_scale_d(q, quat_mag(q));
+struct Vec4 vec4_norm(struct Vec4 q){
+    return vec4_scale_d(q, vec4_mag(q));
 }
 }