ARKit: как найти все самолеты, пораженные HitTest?

У меня есть массив плоскостей (не бесконечные плоскости => с конечными размерами) в массиве:

Plane *plane = [[Plane alloc] initWithAnchor: (ARPlaneAnchor *)anchor];
[self.planes setObject:plane forKey:anchor.identifier];

(Объект Plane наследуется от SCNNode и имеет свойства ARPlaneAnchor *anchor и SCNPlane *planeGeometry)

Как найти все плоскости плоскостей массива, которые поражены hitTest в точке экрана?

Спасибо !


person Regis_AG    schedule 13.09.2017    source источник
comment
Возможный дубликат ARKit: как получить попадание в SCNNode с помощью hitTest?   -  person mnuages    schedule 13.09.2017
comment
Этот вопрос более общий. Потому что меня не устраивает ответ, данный в другом вопросе.   -  person Regis_AG    schedule 13.09.2017
comment
Ваш вопрос сам по себе не имеет смысла. Как вы могли коснуться более 1 узла одновременно? Ваши пользователи осьминоги?   -  person El Tomato    schedule 14.09.2017
comment
HitTest может возвращать все элементы вдоль строки, где пользователь щелкнул в обоих SceneKit ( developer.apple.com/documentation/scenekit/scnscenerenderer/) и ARKit ( developer.apple.com/documentation/arkit/arscnview/ ). Обратите внимание, что я говорю о 3D-сцене. Итак, мой вопрос имеет смысл!   -  person Regis_AG    schedule 14.09.2017


Ответы (1)


Я бы использовал categoryBitMask и установил, например, значение 3 (= 11б). Затем установите для параметра categoryBitMask в тесте попадания значение 2 (=10b ). Таким образом, возвращаются только те узлы, где второй бит категории равен 1.

person jlsiewert    schedule 15.09.2017