local FrictionPreset = class('FrictionPreset') function FrictionPreset:initialize(config) config = config or {} self.B = config.B or 11 self.C = config.C or 1.15 self.D = config.D or 1.03 self.E = config.E or -10 end function FrictionPreset:evaluate(slip) local t = math.abs(slip) return self.D * math.sin(self.C * math.atan(self.B * t - self.E * (self.B * t - math.atan(self.B * t)))) end return FrictionPreset