forked from fritob/Camper-Monitor
Seiten- und Heckansicht kamen als weiß gefüllte Vorlage ohne Alphakanal (Tools/California Side.png, Tools/California Back.png). Dafür ein neues Werkzeug ergänzt, das den weißen Grund in echte Transparenz übersetzt (mit weichem statt hartem Schwellwert, um Kanten nicht auszufransen), danach wie gewohnt durch make-vehicle-art.swift geschickt. California hatte bisher keine eigene Heckansicht und griff ersatzweise auf die von Vanster zurück – jetzt eigenes CaliforniaRear-Imageset, VehicleGraphicStyle.rearImageName entsprechend angepasst. Seiten- und Heckbild sind quadratisch (1254×1254), passend zu den bestehenden Seitenverhältnissen (sideAspect/rearAspect = 1) – keine Anpassung dort nötig. Build und Tests grün. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
52 lines
1.4 KiB
Swift
52 lines
1.4 KiB
Swift
import Foundation
|
||
|
||
/// Welche Silhouette die Fahrzeug-Ansicht des Neigungsmessers zeigt.
|
||
///
|
||
/// Jeder Fall ist ein zusammengehöriges Bilderset aus Seiten- und
|
||
/// Heckansicht in Assets.xcassets, beide als Vorlage ("template")
|
||
/// exportiert, damit `foregroundStyle` sie einfärben kann. Im Picker wird
|
||
/// nur die Seitenansicht gezeigt.
|
||
enum VehicleGraphicStyle: String, CaseIterable, Identifiable, Codable, Sendable {
|
||
case vanster
|
||
case california
|
||
|
||
var id: String { rawValue }
|
||
|
||
var title: String {
|
||
switch self {
|
||
case .vanster: return "Vanster"
|
||
case .california: return "California"
|
||
}
|
||
}
|
||
|
||
var sideImageName: String {
|
||
switch self {
|
||
case .vanster: return "VansterSide"
|
||
case .california: return "CaliforniaSide"
|
||
}
|
||
}
|
||
|
||
var rearImageName: String {
|
||
switch self {
|
||
case .vanster: return "VansterRear"
|
||
case .california: return "CaliforniaRear"
|
||
}
|
||
}
|
||
|
||
/// Seitenverhältnis der jeweiligen Bilder – ohne das würde eine Grafik
|
||
/// mit anderen Proportionen in der gemeinsamen Bildhülle verzerrt oder
|
||
/// ungewollt verkleinert erscheinen.
|
||
var sideAspect: Double {
|
||
switch self {
|
||
case .vanster: return VehicleTilt.sideAspect
|
||
case .california: return 1
|
||
}
|
||
}
|
||
|
||
var rearAspect: Double {
|
||
switch self {
|
||
case .vanster, .california: return VehicleTilt.rearAspect
|
||
}
|
||
}
|
||
}
|