Initial commit for first version of project
This commit is contained in:
37
GasTankAR/Views/TankAR/Measurement.swift
Normal file
37
GasTankAR/Views/TankAR/Measurement.swift
Normal file
@ -0,0 +1,37 @@
|
||||
//
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user