// // Measurement.swift // GasTankAR // // Created by Dennis Nemec on 28.08.26. // import Foundation import simd /// Eine benannte Strecke zwischen zwei im Raum gewählten Punkten (Welt-Koordinaten). enum TankDimension: String, CaseIterable, Hashable, Identifiable { case height case length case width var id: Self { self } var title: String { switch self { case .height: "Höhe" case .length: "Länge" case .width: "Breite" } } } struct Measurement: Identifiable, Codable { let id = UUID() var name: String let start: SIMD3 let end: SIMD3 /// Länge der Strecke in Metern. var distance: Float { simd_distance(start, end) } /// Länge als lesbarer Text, z. B. „1,23 m". var formattedDistance: String { String(format: "%.2f m", distance) } } /// Ablaufphasen beim Anlegen einer Strecke. enum MeasurementPhase: Equatable { /// Kein Messvorgang aktiv. case idle /// Wartet auf den ersten Punkt. case awaitingFirstPoint /// Wartet auf den zweiten Punkt. case awaitingSecondPoint /// Beide Punkte gesetzt – wartet auf die Benennung. case naming }