[Java3D] Suppression d'un objet
Bonjour à tous,
J'aimerai faire une chose toute simple, c'est pouvoir supprimer un objet de ma scène même si celle-ci à été compilé ou si elle est "alive".
Voici mon code tout simple (stricte minimum) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.swing.JFrame;
import java.awt.GraphicsConfiguration;
import java.awt.BorderLayout;
public class Win extends JFrame {
public ColorCube c1 = new ColorCube(0.3);
public ColorCube c2 = new ColorCube(0.4);
public Canvas3D canvas;
public BranchGroup contents;
public Win()
{
setLayout(new BorderLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
canvas = new Canvas3D(config);
add("Center", canvas);
BranchGroup contents = new BranchGroup();
contents.addChild(c1);
contents.addChild(c2);
contents.compile();
SimpleUniverse universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(contents);
contents.removeChild(1);
}
public static void main(String[] args)
{
Win demo = new Win();
demo.setSize(400,400);
demo.setVisible(true);
}
} |
On peut voir que je crée deux cube que j'attache à mon BranchGroup.
Une fois le bg attaché à l'univers, j'essaie de supprimer un des cubes mais j'ai droit à une belle erreur javax.media.j3d.RestrictedAccessException: Group: only a BranchGroup node may be removed
Y a-t-il un moyen simple de faire ce que je désire ?
Merci