NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
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
visad
archives: