GE Lua Documentation

Press F to search!

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)