Add tank catalog with USDZ models and tank selection

Introduce TankDefinition/TankCatalog loaded from Tanks.json, bundle the
Drachengas USDZ tank models, add tank selection and preview views, and
update the AR experience, editor and project views to use the catalog.
Includes tests for catalog loading and model selection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-26 19:12:39 +02:00
parent 992bb32025
commit b8536d4182
63 changed files with 2317 additions and 188 deletions

View File

@ -16,9 +16,15 @@ final class ProjectPhoto {
/// Aufnahmezeitpunkt – Grundlage für die Gruppierung in der Galerie.
var creationDate: Date
/// JPEG-kodierte Bilddaten.
/// Aktuelle Bilddaten. Nach einer Bearbeitung enthält diese Property die gerenderte PNG-Datei.
@Attribute(.externalStorage) var imageData: Data
/// Unveränderte Originaldaten für die Funktion „Zeichnung zurücksetzen“.
@Attribute(.externalStorage) var originalImageData: Data?
/// Gespeicherte Version des Fotos mit Zeichnung.
@Attribute(.externalStorage) var annotatedImageData: Data?
/// Geografische Breite des Aufnahmeorts, sofern beim Aufnehmen ein Standort vorlag.
var latitude: Double?
/// Geografische Länge des Aufnahmeorts, sofern beim Aufnehmen ein Standort vorlag.
@ -30,12 +36,16 @@ final class ProjectPhoto {
init(
creationDate: Date,
imageData: Data,
originalImageData: Data? = nil,
annotatedImageData: Data? = nil,
latitude: Double? = nil,
longitude: Double? = nil,
project: Project? = nil
) {
self.creationDate = creationDate
self.imageData = imageData
self.originalImageData = originalImageData
self.annotatedImageData = annotatedImageData
self.latitude = latitude
self.longitude = longitude
self.project = project