27 lines
756 B
Swift
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])
|
|
)
|
|
}
|
|
}
|