2017-08-19 1 views
1

Ich versuche, einen SCNPlane um einen SCNNode zu wickeln. Ich benutze ARKit, also wird alles in Metern gemessen, aber wenn ich die boundingBox bekomme, bekomme ich Messungen in einer anderen Einheit. Ich habe die Dokumentation von Apple angeschaut und sie geben nicht an, was die Einheiten sind.Abrufen der SCNNode-Bounding-Größe in Metern

Zum Beispiel ist einer der Knoten ungefähr 3 Meter breit, aber es sagt seine 26 Einheiten.

Ich könnte eine grobe Unterteilung machen, um eine Konstante zu erhalten, und diese für die Einheitenumrechnungen verwenden, aber ich frage mich, ob es einen weniger hacky Weg gibt, es zu tun?

let textContainerSize = textBodyNode.boundingBox 
let xSize = textContainerSize.max.x - textContainerSize.min.x 
let ySize = textContainerSize.max.y - textContainerSize.min.y 
print("size") 
print(xSize, ySize) // <-- returns (26,2) 
let planeGeometry = SCNPlane(width: xSize, height: ySize) 

Antwort

2

One SceneKit Einheit ist ein Meter in ARKit aber die boundingBox in den Knoten lokalen Koordinatensystem definiert ist. Daher hat Ihr Knoten wahrscheinlich ein übergeordnetes Element mit einer anderen Skala als 1.

Verwandte Themen