From 88d15a86a9d1b55ac8e176bb2526444636078ec6 Mon Sep 17 00:00:00 2001 From: treeform Date: Fri, 1 May 2020 21:05:23 -0700 Subject: [PATCH] Add [] and lerp vec4 functions. --- src/vmath.nim | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/vmath.nim b/src/vmath.nim index 007d4b1..0116472 100644 --- a/src/vmath.nim +++ b/src/vmath.nim @@ -462,6 +462,31 @@ func zero*(a: var Vec4) = func hash*(a: Vec4): Hash = hash((a.x, a.y, a.z, a.w)) +func `[]`*(a: Vec4, i: int): float32 = + assert(i == 0 or i == 1 or i == 2) + if i == 0: + return a.x + elif i == 1: + return a.y + elif i == 2: + return a.z + elif i == 3: + return a.w + +func `[]=`*(a: var Vec4, i: int, b: float32) = + assert(i == 0 or i == 1 or i == 2) + if i == 0: + a.x = b + elif i == 1: + a.y = b + elif i == 2: + a.z = b + elif i == 3: + a.w = b + +func lerp*(a: Vec4, b: Vec4, v: float32): Vec4 = + a * (1.0 - v) + b * v + func xyz*(a: Vec4): Vec3 = vec3(a.x, a.y, a.z)