Zur besseren Verständlichkeit mal die komplette Funktion:
function be_adderutil.createTrackAdder(mapping, edges)
local adder = { }
local function addEdge(p, t)
table.insert(edges, { vec3.toArray(p), vec3.toArray(t) })
end
adder.addTrack = function (x, y0, y1, z)
local controlPointFactor = mapping.getTrackLength(x) * 0.51
if y1 < y0 then controlPointFactor = -controlPointFactor end
local p0 = mapping.getPos(x, y0, z)
local p1 = mapping.getPos(x, y1, z)
local t0 = vec3.mul(controlPointFactor, mapping.getTangent(x, y0))
local t1 = vec3.mul(controlPointFactor, mapping.getTangent(x, y1))
addEdge(p0, t0)
addEdge(p1, t1)
end
adder.addSpecialStraightTrack = function (x, y, z, length)
local t = vec3.mul(length, vec3.normalize(mapping.getTangent(x, y)))
local p0 = mapping.getPos(x, y, z)
local p1 = vec3.add(p0, t)
addEdge(p0, t)
addEdge(p1, t)
end
return adder
end
Alles anzeigen