* Renamed subfolder to modules * Quaternions no longer rely on hump.class * Added Mesh functions
19 lines
359 B
Lua
19 lines
359 B
Lua
local current_folder = (...):gsub('%.[^%.]+$', '') .. "."
|
|
local vec3 = require(current_folder .. "vec3")
|
|
|
|
local mesh = {}
|
|
|
|
function mesh.compute_normal(a, b, c)
|
|
return (c - a):cross(b - a):normalize()
|
|
end
|
|
|
|
function mesh.average(vertices)
|
|
local avg = vec3(0,0,0)
|
|
for _, v in ipairs(vertices) do
|
|
avg = avg + v
|
|
end
|
|
return avg / #vertices
|
|
end
|
|
|
|
return mesh
|