Java3D如何能够动态添加分支

 

   由于场景图的分支节点在运行时是默认无法增删的,所以需设定需添加BranchGroup的父节点需设定ALLOW_CHILDREN_EXTEND。同时,在父节点还有父节点的时候,须将添加子节点的分支从父节点中分离出来,所以要设置ALLOW_DETACH特性。代码如下:

 
/*定义场景图的分支节点,在编译之前设置好特性*/ BranchGroup branchGroup = createSceneGraph(); //创建场景图分支 branchGroup.setCapability(BranchGroup.ALLOW_DETACH); //设置分支能够从父节点分离出来 branchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); //设置分支能够添加子节点 branchGroup.compile();

 

 

    响应添加子节点的代码如下:

branchGroup.detach(); //将BranchGroup从父节点中分离出来 branchGroup.addChild(subGroup); //添加子节点subGroup su.addBranchGraph(branchGroup); //重新在场景图中添加分离出来的节点

 

    如分离出来的节点的父节点为BranchGroup,同样需设置其特性ALLOW_CHILDREN_EXTEND和ALLOW_DETACH,而且还需要将父节点设定为ALLOW_CHILDREN_WRITE,然后节节分离并添加。

 

你可能感兴趣的:(java)