2016-09-15 3 views
-1

Я пытаюсь преобразовать преобразование конверта SCNNode только в Eigen, но я явно не понимаю, что происходит за кулисами.SCNNode's convertTransform - За кулисами

let targetNodeTransform = targetNode?.convertTransform(transform, from: nil) 

Я использую Eigen, поэтому я думал, что обратное преобразование будет таким же. Это не похоже на то, что происходит в convertTransform при переходе от глобального координатного пространства к пространству координат объекта? Я ищу математику для convertTransform, поэтому я могу реализовать ее с помощью Eigen.

+1

Вы запрашиваете математику за 'convertTransform'? Или вы понимаете математику, но не знаете, как ее выражать в C++/Eigen? –

+0

Ваше обновление отвечает на ваш вопрос, если вы также не хотели писать его в Eigen (без того факта, что я не знаю, что такое 'worldTransform', я предполагаю начало и отсутствие вращения). –

ответ

0

Определено, что это эквивалентно значению, возвращаемому преобразователем.

let targetNodeTransform = SCNMatrix4Mult(transform, SCNMatrix4Invert((targetNode?.worldTransform)!)); 

Согласно документации по worldTransform SCNNode в

Мир преобразования является узел координаты преобразования пространства относительно координатного пространства сцены. Это преобразование представляет собой объединение свойства преобразования узла с именем его родительского узла , родительского родителя и т. Д. Вплоть до объекта rootNode сцены.

Смежные вопросы