ded

Dramatic EDitor
Index Commits Files Refs README LICENSE
src/la.c (1860B)
   1 #include "./la.h"
   2 
   3 Vec2f vec2f(float x, float y)
   4 {
   5     return (Vec2f) {
   6         .x = x,
   7         .y = y,
   8     };
   9 }
  10 
  11 Vec2f vec2fs(float x)
  12 {
  13     return vec2f(x, x);
  14 }
  15 
  16 Vec2f vec2f_add(Vec2f a, Vec2f b)
  17 {
  18     return vec2f(a.x + b.x, a.y + b.y);
  19 }
  20 
  21 Vec2f vec2f_sub(Vec2f a, Vec2f b)
  22 {
  23     return vec2f(a.x - b.x, a.y - b.y);
  24 }
  25 
  26 Vec2f vec2f_mul(Vec2f a, Vec2f b)
  27 {
  28     return vec2f(a.x * b.x, a.y * b.y);
  29 }
  30 
  31 Vec2f vec2f_mul3(Vec2f a, Vec2f b, Vec2f c)
  32 {
  33     return vec2f_mul(vec2f_mul(a, b), c);
  34 }
  35 
  36 Vec2f vec2f_div(Vec2f a, Vec2f b)
  37 {
  38     return vec2f(a.x / b.x, a.y / b.y);
  39 }
  40 
  41 //////////////////////////////
  42 
  43 Vec2i vec2i(int x, int y)
  44 {
  45     return (Vec2i) {
  46         .x = x,
  47         .y = y,
  48     };
  49 }
  50 
  51 Vec2i vec2is(int x)
  52 {
  53     return vec2i(x, x);
  54 }
  55 
  56 Vec2i vec2i_add(Vec2i a, Vec2i b)
  57 {
  58     return vec2i(a.x + b.x, a.y + b.y);
  59 }
  60 
  61 Vec2i vec2i_sub(Vec2i a, Vec2i b)
  62 {
  63     return vec2i(a.x - b.x, a.y - b.y);
  64 }
  65 
  66 Vec2i vec2i_mul(Vec2i a, Vec2i b)
  67 {
  68     return vec2i(a.x * b.x, a.y * b.y);
  69 }
  70 
  71 Vec2i vec2i_mul3(Vec2i a, Vec2i b, Vec2i c)
  72 {
  73     return vec2i_mul(vec2i_mul(a, b), c);
  74 }
  75 
  76 Vec2i vec2i_div(Vec2i a, Vec2i b)
  77 {
  78     return vec2i(a.x / b.x, a.y / b.y);
  79 }
  80 
  81 //////////////////////////////
  82 
  83 Vec4f vec4f(float x, float y, float z, float w)
  84 {
  85     return (Vec4f) {
  86         .x = x,
  87         .y = y,
  88         .z = z,
  89         .w = w,
  90     };
  91 }
  92 
  93 Vec4f vec4fs(float x)
  94 {
  95     return vec4f(x, x, x, x);
  96 }
  97 
  98 Vec4f vec4f_add(Vec4f a, Vec4f b)
  99 {
 100     return vec4f(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
 101 }
 102 
 103 Vec4f vec4f_sub(Vec4f a, Vec4f b)
 104 {
 105     return vec4f(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
 106 }
 107 
 108 Vec4f vec4f_mul(Vec4f a, Vec4f b)
 109 {
 110     return vec4f(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
 111 }
 112 
 113 Vec4f vec4f_div(Vec4f a, Vec4f b)
 114 {
 115     return vec4f(a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w);
 116 }
 117 
 118 float lerpf(float a, float b, float t)
 119 {
 120     return a + (b - a) * t;
 121 }