2017-08-19 3 views
1

J'essaye d'enrouler un SCNPlane autour d'un SCNNode. J'utilise ARKit pour que tout soit mesuré en mètres, mais quand j'obtiens le boundingBox, j'obtiens des mesures dans une autre unité. J'ai regardé la documentation d'Apple, et ils ne précisent pas ce que sont les unités. Par exemple, l'un des nœuds fait environ 3 mètres de large, mais il indique ses 26 unités.Obtention de la taille de liaison SCNNode en mètres

Je pourrais faire une division grossière pour obtenir une constante et l'utiliser pour faire les conversions d'unités, mais je me demandais s'il y avait une façon moins hacky de le faire?

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) 

Répondre

2

Une unité de SceneKit est un mètre de ARKit mais la boundingBox est définie dans les noeuds système de coordonnées local. Donc, votre nœud a probablement un parent avec une échelle différente de 1.