33 lines
530 B
Swift
33 lines
530 B
Swift
|
|
struct RouteProfile: Codable {
|
|
|
|
let min: Double
|
|
|
|
let max: Double
|
|
|
|
let ticks: Int
|
|
|
|
let span: Double
|
|
|
|
let scale: Double
|
|
|
|
init(min: Double, max: Double, ticks: Int) {
|
|
self.min = min
|
|
self.max = max
|
|
self.ticks = ticks
|
|
self.span = max - min
|
|
self.scale = 1 / span
|
|
}
|
|
|
|
func scale(_ value: Double) -> Double {
|
|
if value < min {
|
|
return 0
|
|
}
|
|
if value > max {
|
|
return 1
|
|
}
|
|
return (value - min) / span
|
|
}
|
|
}
|
|
|