VE Lua Documentation

Press F to search!

createCurve

Definition


-- @/lua/vehicle/ve_utils.lua:264

function createCurve(points, returnArray)
  if #points < 2 then
    return nil
  end
  if #points == 2 then
    local res
    if returnArray and ffi then
      res = ffi.new("float[?]", points[#points][1] + 1)
    else
      res = table.new(points[#points][1] + 1, 0)
    end
    local p1, p2 = points[1], points[2]
    local p2p1 = p2[2] - p1[2]
    local step = 1 / (p2[1] - p1[1])
    local t = 0
    for x = floor(p1[1]), floor(p2[1]) do
      res[x] = p1[2] + t * p2p1
      t = t + step
    end
    return res
  end

  return CatMullRomSpline(points, returnArray)
end

Callers

@/lua/vehicle/controller/vehicleController/shiftLogic/electricMotor.lua
  brakeHandling.maxFrictionBrakeTorque = totalMaxBrakeTorque
  brakeHandling.frictionCoefToTorque = createCurve(tempFrictionCoefToTorqueMap)
  brakeHandling.frictionTorqueToCoef = createCurve(tempFrictionTorqueToCoefMap)
  brakeHandling.frictionCoefToTorque = createCurve(tempFrictionCoefToTorqueMap)
  brakeHandling.frictionTorqueToCoef = createCurve(tempFrictionTorqueToCoefMap)
  regenHandling.throttleNeutralPoint = jbeamData.regenThrottleNeutralPoint or 0.15
  regenHandling.regenCoefToTorque = createCurve(tempRegenCoefToTorqueMap)
  regenHandling.regenTorqueToCoef = createCurve(tempRegenTorqueToCoefMap)
  regenHandling.regenCoefToTorque = createCurve(tempRegenCoefToTorqueMap)
  regenHandling.regenTorqueToCoef = createCurve(tempRegenTorqueToCoefMap)
@/lua/vehicle/powertrain/electricMotor.lua
  end
  device.torqueCurve = createCurve(points)
  device.maxAV = device.maxRPM * rpmToAV
    end
    device.regenCurve = createCurve(points)
  else

  tempElectricalEfficiencyTable = createCurve(tempElectricalEfficiencyTable)
  device.electricalEfficiencyTable = {}
@/lua/vehicle/powertrain/supercharger.lua

  pressureCurve = createCurve(pressureCurveTemp)
  lastDefinedPressure = pressureCurve[maxBlowerRPM]
  end
  boostControllerCurve = createCurve(tipoints)
@/lua/vehicle/controller/pneumatics/airbrakes.lua

  brakeTorqueCurve = createCurve(rawPoints)

  springBrakeTorqueCurve = createCurve(rawPoints)
  springBrakeAutoApplyThresholdPressure = jbeamData.springBrakeAutoApplyThresholdPressure or 275790 --40 psi by default
@/lua/vehicle/powertrain/turbocharger.lua
  end
  turbo.turboPressureCurve = createCurve(tpoints, true)
  end
  turbo.turboExhaustCurve = createCurve(tipoints)
  turbo.turboEfficiencyCurve = createCurve(tepoints)
  turbo.turboExhaustCurve = createCurve(tipoints)
  turbo.turboEfficiencyCurve = createCurve(tepoints)
@/lua/vehicle/powertrain/combustionEngine.lua
  end
  local rawBaseCurve = createCurve(rawBasePoints)
    end
    rawTorqueMultCurve = createCurve(rawTorqueMultPoints)
  end
    end
    rawIntakeCurve = createCurve(rawIntakePoints)
    lastRawIntakeValue = rawIntakeCurve[#rawIntakeCurve]
    end
    rawExhaustCurve = createCurve(rawExhaustPoints)
    lastRawExhaustValue = rawExhaustCurve[#rawExhaustCurve]
    end
    device.compressionBrakeCurve = createCurve(rawPoints)
  end
  --actually create the final torque curve
  device.torqueCurve = createCurve(combinedTorquePoints)

  tempBurnEfficiencyTable = createCurve(tempBurnEfficiencyTable)
  device.invBurnEfficiencyTable = {}