Skip to content

Instantly share code, notes, and snippets.

@DenisBelmondo
Created June 6, 2024 23:02
Show Gist options
  • Save DenisBelmondo/fa89b163aed4d6cc43f7b6c924d19728 to your computer and use it in GitHub Desktop.
Save DenisBelmondo/fa89b163aed4d6cc43f7b6c924d19728 to your computer and use it in GitHub Desktop.
(module
(func $Vector2Add (export "Vector2Add") (param f32) (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.add
local.get 1
local.get 3
f32.add
)
(func $Vector2Subtract (export "Vector2Subtract") (param f32) (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.sub
local.get 1
local.get 3
f32.sub
)
(func $Vector2Multiply (export "Vector2Multiply") (param f32) (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.mul
local.get 1
local.get 3
f32.mul
)
(func $Vector2Divide (export "Vector2Divide") (param f32) (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.div
local.get 1
local.get 3
f32.div
)
(func $Vector2MultiplyScalar (export "Vector2MultiplyScalar") (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.mul
local.get 1
local.get 2
f32.mul
)
(func $Vector2DivideScalar (export "Vector2DivideScalar") (param f32) (param f32) (param f32) (result f32) (result f32)
local.get 0
local.get 2
f32.div
local.get 1
local.get 2
f32.div
)
(func $Vector2LengthSquared (export "Vector2LengthSquared") (param f32) (param f32) (result f32)
local.get 0
local.get 0
f32.mul
local.get 1
local.get 1
f32.mul
f32.add
)
(func $Vector2Length (export "Vector2Length") (param f32) (param f32) (result f32)
local.get 0
local.get 0
f32.mul
local.get 1
local.get 1
f32.mul
f32.add
f32.sqrt
)
(func $Vector2Normalize (export "Vector2Normalize") (param f32) (param f32) (result f32) (result f32)
(local $l f32)
(local $x f32)
(local $y f32)
local.get 0
(local.set $x)
local.get 1
(local.set $y)
local.get $x
local.get $x
f32.mul
local.get $y
local.get $y
f32.mul
f32.add
local.set $l
local.get $l
f32.const 0
f32.ne
(if
(then
local.get $l
f32.sqrt
local.set $l
local.get $x
local.get $l
f32.div
local.set $x
local.get $y
local.get $l
f32.div
local.set $y
)
)
local.get $x
local.get $y
)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment