|
@@ -129,6 +129,17 @@ vec3 = {
|
|
|
return out
|
|
|
end,
|
|
|
|
|
|
+ project = function(v, u, out)
|
|
|
+ out = out or v
|
|
|
+ local unorm = vtmp1
|
|
|
+ u:normalize(unorm)
|
|
|
+ local dot = v:dot(unorm)
|
|
|
+ out.x = unorm.x * dot
|
|
|
+ out.y = unorm.y * dot
|
|
|
+ out.z = unorm.z * dot
|
|
|
+ return out
|
|
|
+ end,
|
|
|
+
|
|
|
rotate = function(v, q, out)
|
|
|
out = out or v
|
|
|
local u, c, o = vtmp1, vtmp2, out
|