33 lines
1.2 KiB
Core
33 lines
1.2 KiB
Core
sqrtf :: #foreign (value: F32): F32
|
|
cosf :: #foreign (value: F32): F32
|
|
sinf :: #foreign (value: F32): F32
|
|
|
|
Vec2I :: struct;; x: S64; y: S64
|
|
Vec2 :: struct;; x: F32; y: F32
|
|
|
|
"*" :: (a: Vec2, b: Vec2): Vec2 ;; return {a.x*b.x, a.y*b.y}
|
|
"*" :: (a: Vec2, b: F32) : Vec2 ;; return {a.x*b, a.y*b}
|
|
"*" :: (a: F32, b: Vec2) : Vec2 ;; return {a*b.x, a*b.y}
|
|
"-" :: (a: Vec2, b: Vec2): Vec2 ;; return {a.x-b.x, a.y-b.y}
|
|
"-" :: (a: Vec2, b: F32) : Vec2 ;; return {a.x-b, a.y-b}
|
|
"-" :: (a: F32, b: Vec2) : Vec2 ;; return {a-b.x, a-b.y}
|
|
"+" :: (a: Vec2, b: Vec2): Vec2 ;; return {a.x+b.x, a.y+b.y}
|
|
"+" :: (a: Vec2, b: F32) : Vec2 ;; return {a.x+b, a.y+b}
|
|
"+" :: (a: F32, b: Vec2) : Vec2 ;; return {a+b.x, a+b.y}
|
|
"/" :: (a: Vec2, b: Vec2): Vec2 ;; return {a.x/b.x, a.y/b.y}
|
|
"/" :: (a: Vec2, b: F32) : Vec2 ;; return {a.x/b, a.y/b}
|
|
"/" :: (a: F32, b: Vec2) : Vec2 ;; return {a/b.x, a/b.y}
|
|
|
|
F32_Clamp :: (min: F32, value: F32, max: F32): F32
|
|
if value > max;; return max
|
|
if value < min;; return min
|
|
return value
|
|
|
|
F32_ClampBottom :: (min: F32, value: F32): F32
|
|
if value < min;; return min
|
|
return value
|
|
|
|
F32_Absolute :: (val: F32): F32
|
|
if val < 0;; return -val
|
|
return val
|