Выберите и переместите несколько фигур в Java3D - PullRequest
1 голос
/ 04 ноября 2011

Существует ли простой способ выбора и перемещения (поворота, панорамирования, масштабирования) нескольких фигур в Java3D одновременно?Я видел примеры, где можно выбрать (щелкнуть) одну фигуру и перетащить ее, но я не смог найти простой способ выбора и перемещения нескольких фигур.

Кем я хочу быть

  • Имеет много невыбранных фигур на экране
  • Выберите одну или несколько фигур (путем индивидуального щелчка или перетаскивания в поле)
  • Перемещение тольковыделенные фигуры с помощью слушателя мыши
  • Когда фигуры не выбраны, они должны оставаться на своих местах и ​​прекращать движение
  • Когда новые фигуры добавляются, они должны оставаться на своих местах и ​​начинать движение

Моя первоначальная идея состояла в том, чтобы иметь 2 группы ветвей "Выбрано" и "Не выбрано".Selected BranchGroup будет иметь родительскую TransformGroup, которая присоединена к корню, невыбранная BranchGroup будет присоединена непосредственно к корню.Поскольку элементы были выбраны (что я могу сделать с помощью PickCanvas), они будут удалены из невыбранной BG и помещены в выбранную BG.

Основная проблема заключается в том, что фигуры прыгают, когда они выбраны или не выбраны,Это потому, что они берут на себя преобразование группы, в которую собираются.

Мне кажется, что, возможно, есть какой-то более простой способ сделать это, возможно, используя что-то, встроенное в Java3D.

1 Ответ

0 голосов
/ 21 декабря 2011

Лучший способ понять, как это сделать, - это использовать метод 2 групп ветвей, который я предложил в первоначальном вопросе.

Вы создаете 2 группы филиалов, одну для выбранных узлов и одну для невыбранных узлов. Когда вы перемещаете узлы из одной группы в другую, вы должны перевести отдельные узлы, чтобы они оставались в своем текущем положении, а не переходить к переводу новой группы ветвей, к которой они присоединяются.

...