22 lines
395 B
Lua
22 lines
395 B
Lua
--- Mesh utilities
|
|
-- @module mesh
|
|
|
|
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
|