38 lines
904 B
Swift
38 lines
904 B
Swift
//
|
||
// 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).
|
||
struct Measurement: Identifiable {
|
||
let id = UUID()
|
||
var name: String
|
||
let start: SIMD3<Float>
|
||
let end: SIMD3<Float>
|
||
|
||
/// 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
|
||
}
|