27 lines
1006 B
Swift
27 lines
1006 B
Swift
import SwiftUI
|
||
|
||
/// Was sich die Fahrzeugansichten auf iPhone und Uhr teilen.
|
||
///
|
||
/// Beide zeichnen dieselben Schablonen, nur in anderer Grösse – die Regeln,
|
||
/// nach denen gekippt und eingefärbt wird, dürfen deshalb nicht zweimal
|
||
/// dastehen und auseinanderlaufen.
|
||
enum VehicleTilt {
|
||
|
||
/// Kleine Neigungen sind am Fahrzeug sonst kaum zu erkennen – zwei Grad
|
||
/// wären ein knappes Grad Bildneigung. Die Überhöhung wird angeschrieben,
|
||
/// damit niemand den Bildwinkel für den echten nimmt.
|
||
static let exaggeration: Double = 3
|
||
|
||
/// Seitenansicht: Front links, Heck rechts.
|
||
static let sideAspect = 925.0 / 600.0
|
||
/// Heckansicht, quadratisch.
|
||
static let rearAspect = 1.0
|
||
|
||
/// Grün heisst eben, orange bis zwei Grad, darüber rot.
|
||
static func colour(for angle: Double?) -> Color {
|
||
guard let angle else { return .secondary }
|
||
if abs(angle) <= LevelState.levelTolerance { return .green }
|
||
return abs(angle) <= 2 ? .orange : .red
|
||
}
|
||
}
|