Files
Gas-Tank-AR-App/GasTankAR/Views/TankAR/Matrix+Array.swift
2026-09-02 20:54:36 +02:00

27 lines
756 B
Swift

//
// Matrix+Array.swift
// GasTankAR
//
// Created by Dennis Nemec on 26.08.26.
//
import simd
extension simd_float4x4 {
/// Spaltenweise Darstellung als 16 Floats (für die Persistenz).
var floatArray: [Float] {
[columns.0, columns.1, columns.2, columns.3].flatMap { [$0.x, $0.y, $0.z, $0.w] }
}
/// Rekonstruiert eine Matrix aus 16 spaltenweisen Floats.
init?(floatArray array: [Float]) {
guard array.count == 16 else { return nil }
self.init(
SIMD4(array[0], array[1], array[2], array[3]),
SIMD4(array[4], array[5], array[6], array[7]),
SIMD4(array[8], array[9], array[10], array[11]),
SIMD4(array[12], array[13], array[14], array[15])
)
}
}