From 7e46afa28071a958498e131d1fc261f9744b692c Mon Sep 17 00:00:00 2001 From: Colby Klein Date: Tue, 13 Dec 2016 15:12:17 -0800 Subject: [PATCH] make quat.from_direction's up argument optional (defaults to +z) --- modules/quat.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/quat.lua b/modules/quat.lua index 604c0af..48b33fe 100644 --- a/modules/quat.lua +++ b/modules/quat.lua @@ -91,11 +91,15 @@ end --- Create a quaternion from a normal/up vector pair. -- @tparam vec3 normal --- @tparam vec3 up +-- @tparam vec3 up (optional) -- @treturn quat out function quat.from_direction(normal, up) - local a = vec3():cross(up, normal) - local d = up:dot(normal) + local u = up or vec3.unit_z + local n = vec3() + n:normalize(normal) + + local a = vec3():cross(u, n) + local d = u:dot(n) return new(a.x, a.y, a.z, d + 1) end