Hi Jianting,
> I'm trying to add another light source . However, for the following
> code, I got error message
> "javax.media.j3d.RestrictedAccessException: Cannot modify capability
> bits on a live or compiled object" for during executing
> "root.setCapability(Group.ALLOW_CHILDREN_EXTEND)"
> It seems that the root scenegraph of DisplayRendererJ3D is live. Any
> suggestion to solve this problem.
>
> Thanks.
>
> Jianting
>
> DisplayRendererJ3D dr =(DisplayRendererJ3D)
> display.getDisplayRenderer();
> BranchGroup root = dr.getRoot();
> System.out.println("is compiled?"+root.isCompiled());
> System.out.println("is live?"+root.isLive());
> root.setCapability(Group.ALLOW_CHILDREN_EXTEND);
You shouldn't need to do this. It is already done when root
is constructed, at line 492 of DisplayRendererJ3D.java.
> BoundingSphere bounds =new BoundingSphere(new Point3d(0.0,0.0,0.0),
> 100.0);
> Color3f alColor = new Color3f(0.2f, 0.2f, 0.2f);
> AmbientLight aLgt = new AmbientLight(alColor);
> aLgt.setInfluencingBounds(bounds);
> root.addChild(aLgt);
I think you cannot add anything but a BranchGroup to a
live scene graph. Try constructing a new BranchGroup(),
adding aLgt to it, then adding the BranchGroup to root.
Good luck,
Bill