Некоторые преобразования в Open Inventor (Coin3D) - PullRequest
2 голосов
/ 07 апреля 2010

Я новичок в Open Inventor (Coin3D) и имею следующую проблему:

У меня есть SoSelection, удерживающий корневой узел (также SoSeparator).И корневой узел содержит несколько узлов SoSeparator.Каждый из этих узлов SoSeparator содержит узел SoTransform и узел SoCube.

Когда я выбираю один узел куба, я хочу, чтобы все остальные кубы на определенном расстоянии до выбранного куба расположились в окружности вокруг выбранного куба.(Более того, все кубы должны быть на плоскости, чем) Дополнительная информация: Мои кубы всегда ориентированы в направлении камеры с помощью (cubeTransform _-> вращение .connectFrom (& camera _-> ориентация)

Предполагается, что выбранный кубцентр круга, как перевести остальные кубики в круг на плоскости (перпендикулярно вектору между выбранным кубом и камерой)? Особенно, как мне найти координаты на плоскости, на которой должен быть кругиметь определенное расстояние от оси (от центрального куба до камеры).

Я уже выполнил поиск всех кубов на определенном расстоянии, как только был выбран один куб. В результате я ужеиметь необходимые разделители (которые содержат соответствующие SoTransforms и SoCubes) в SoPathList. Теперь я хочу упорядочить кубы, изменив соответствующие значения перевода SoTransform->.

Regards Mark

...