catmullRomChordal
Definition
-- @/lua/common/mathlib.lua:1294
function catmullRomChordal(p0, p1, p2, p3, t, s)
return cardinalSpline(p0, p1, p2, p3, t, s or 0.5, p0:distance(p1), p1:distance(p2), p2:distance(p3))
end
Callers
@/lua/vehicle/ai.lua
-- brakeTargetSpeed = sqrt(max(0, abs(plSpeedFromego) * plSpeedFromego + 2 * g * min(aggression * 1.5, ego.staticFrictionCoef) * (minHit - (distLim or 3))))
-- targetPos = catmullRomChordal(ego.pos-ego.dirVec, ego.pos, plC-plX, plC-plX+plX:normalized(), min(1, max(ego.speed * parameters.lookAheadKv, 4.5) / ego.pos:distance(plC - plX)))
-- obj.debugDrawProxy:drawSphere(0.25, targetPos, color(255, 0, 0, 255))
@/lua/ge/extensions/editor/tech/roadArchitect/junctions.lua
roadMgr.addNodeToRoad(rIdx, p2)
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, p3)
roadMgr.addNodeToRoad(rIdx, p2)
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, p3)
@/lua/ge/extensions/editor/tech/roadArchitect/render.lua
for j = 0, 10 do
pts[j + 1] = catmullRomChordal(p1, p2, p3, p4, j * 0.1, 0.5)
end
@/lua/ge/extensions/editor/camPathEditor.lua
else
local direction = catmullRomChordal(p1, p2, p3, p4, 0.1, markers[n2].positionSmooth) - p2
p1 = p2 - direction
else
local direction = p3 - catmullRomChordal(p1, p2, p3, p4, 0.9, markers[n2].positionSmooth)
p4 = p3 + direction
local tNorm = calculateTnorm(p1:distance(p2), p2:distance(p3), p3:distance(p4), t1, t2, t3, camTLocal)
local pos = catmullRomChordal(p1, p2, p3, p4, tNorm, markers[n2].positionSmooth)
for t = 0, 1, stepSize do
local marker = catmullRomChordal(markers[n1].pos, markers[n2].pos, markers[n3].pos, markers[n4].pos, t, markers[n2].positionSmooth)
if lastPoint then
@/lua/ge/extensions/editor/scriptAIEditor.lua
else
local dir = catmullRomChordal(p1, p2, p3, p4, 0.1, posSmooth) - p2
p1 = p2 - dir
else
local dir = p3 - catmullRomChordal(p1, p2, p3, p4, 0.9, posSmooth)
p4 = p3 + dir
local tNorm = calculateTnorm(p1:distance(p2), p2:distance(p3), p3:distance(p4), dt1, dt2, dt3, tLoc)
local pos = catmullRomChordal(p1, p2, p3, p4, tNorm, posSmooth)
local rot = nil -- Get the rotations at each point, if requested.
@/lua/ge/extensions/editor/tech/roadArchitect/overlays.lua
roadMgr.addNodeToRoad(rIdx, p2)
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, p3)
roadMgr.addNodeToRoad(rIdx, p2)
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, p3)
roadMgr.addNodeToRoad(rIdx, p2)
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.25, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.5, 0.75))
roadMgr.addNodeToRoad(rIdx, catmullRomChordal(p1, p2, p3, p4, 0.75, 0.75))
roadMgr.addNodeToRoad(rIdx, p3)
@/lua/ge/extensions/core/cameraModes/path.lua
else
local direction = catmullRomChordal(p1, p2, p3, p4, 0.1, markers[n2].positionSmooth) - p2
p1 = p2 - direction
else
local direction = p3 - catmullRomChordal(p1, p2, p3, p4, 0.9, markers[n2].positionSmooth)
p4 = p3 + direction
local tNorm = calculateTnorm(p1:distance(p2), p2:distance(p3), p3:distance(p4), t1, t2, t3, camTLocal)
local pos = catmullRomChordal(p1, p2, p3, p4, tNorm, markers[n2].positionSmooth)