diff --git a/shape.lua b/shape.lua index 9599239e5449e489930bac849310848ee9e70080..f1985db0bd15db3339d8e126f9a36df41fba2fbf 100644 --- a/shape.lua +++ b/shape.lua @@ -47,10 +47,10 @@ end -- Sets this face's normal to be the average of its vertices, normalized function face:average_normal() - local fvs = f.vertices - f.normal = vector.zero(3) - for i = 1, #fvs do f.normal = f.normal + fvs[i] end - f.normal = (1 / #fvs) * f.normal + local fvs = self.vertices + self.normal = vector.zero(3) + for i = 1, #fvs do self.normal = self.normal + fvs[i] end + self.normal = (1 / #fvs) * self.normal return self end @@ -227,7 +227,7 @@ function shape.hexahedron(r) local fs = {face.new({-v1, v2, -v3, v4}), face.new({v1, -v2, v3, -v4}), face.new({-v1, v3, -v4, v2}), face.new({v1, -v3, v4, -v2}), - face.new({-v1, v4, -v2, v3}), face.new({v1, -v4, v2, -v3}} + face.new({-v1, v4, -v2, v3}), face.new({v1, -v4, v2, -v3})} for i = 1, #fs do fs[i]:average_normal() end return fs