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 = {}