在Java3D中选择并移动多个形状

时间:2011-11-04 17:21:04

标签: java 3d java-3d

是否有一种简单的方法可以同时在Java3D中选择和移动(旋转,平移,缩放)多个形状?我已经看过你可以选择(点击)单个形状并拖动它的例子,但是我找不到一种简单的方法来选择和移动多个形状。

我希望能做的是:

  • 屏幕上有许多未选择的形状
  • 选择一个或多个形状(通过单独单击或拖动框)
  • 仅使用鼠标侦听器移动选定的形状
  • 当未选择形状时,它们应保持原位并停止移动
  • 添加新形状时,它们应保持原样并开始移动

我最初的想法是让2个分支组“选中”和“未选中”。 Selected BranchGroup将具有附加到根的父TransformGroup,Unselected BranchGroup将直接附加到根。当选择了项目(我可以使用PickCanvas)时,它们将从未选择的BG中删除并放入选定的BG中。

这个问题的主要问题是选择或取消选择时形状会跳跃。这是因为他们正在对他们将要去的小组进行改造。

我觉得可能有一些更简单的方法可以做到这一点,也许可以利用Java3D中内置的东西。

1 个答案:

答案 0 :(得分:0)

我想出如何做到这一点的最好方法是使用我在初始问题中建议的2分支组方法。

您可以创建2个分支组,一个用于选定节点,另一个用于未选定节点。将节点从一个组移动到另一个组时,必须翻译各个节点,使它们保持在当前位置,而不是跳转到它们正在加入的新分支组的转换。