Some quick thoughts without actual testing... Create 2 VirtualUniverses as well (OR) use 2 ViewSpecificGroups - one for each View (look at the Java3D docs for info. on ViewSpecificGroup) !
-Vaidya >On Tue, 8 Jun 2004 08:21:52 -0600, Mikko Haapalehto ><[EMAIL PROTECTED]> wrote: >Hi, > > Could someone say what is wrong with my code. I'm trying to create two >canvases and to render object( colorcube in this case) on canvas1 and >another object (colorcube with rotation) on canvas2. But result of my code >is that both cubes will be rendered on both canvases. > > -mikko > >Code looks like this: >import javax.media.j3d.*; >import javax.vecmath.*; >import com.sun.j3d.utils.universe.*; >import com.sun.j3d.utils.geometry.*; >import javax.swing.*; >import java.awt.*; > >class canvases extends Canvas3D { > public static void main(String args[] ) { > JFrame frame = new JFrame(); > frame.getContentPane().setLayout(new GridLayout(2,0)); > VirtualUniverse u = new VirtualUniverse(); > > Canvas3D c1 = new canvases(0, u ); > Canvas3D c2 = new canvases(1, u ); > > frame.getContentPane().add(c1); > frame.getContentPane().add(c2); > frame.setSize(400,400); > frame.show(); > > } > public canvases(int geom, VirtualUniverse u ) { > super(SimpleUniverse.getPreferredConfiguration()); > BranchGroup scene = createSceneGraph(geom); > Locale locale = new Locale(u); > > View view = new View(); > ViewPlatform vp = new ViewPlatform(); > PhysicalBody pb = new PhysicalBody(); > PhysicalEnvironment pe = new PhysicalEnvironment(); > view.addCanvas3D(this); > view.attachViewPlatform(vp); > view.setPhysicalBody(pb); > view.setPhysicalEnvironment(pe); > > BranchGroup viewBranch = new BranchGroup(); > Transform3D viewXfm = new Transform3D(); > > viewXfm.set(new Vector3f(0.0f,0.0f,5.0f)); > TransformGroup viewXfmGroup = new TransformGroup(viewXfm); > viewXfmGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); > > viewXfmGroup.addChild(vp); > viewBranch.addChild(viewXfmGroup); > > locale.addBranchGraph(scene); > locale.addBranchGraph(viewBranch); > } > > public BranchGroup createSceneGraph(int geom) { > BranchGroup objRoot = new BranchGroup(); > if (geom==0) > objRoot.addChild(new ColorCube(0.4)); > else if(geom==1) { > Transform3D rotate = new Transform3D(); > Transform3D tempRotate = new Transform3D(); > rotate.rotX(Math.PI/4.0d); > tempRotate.rotY(Math.PI/5.0d); > rotate.mul(tempRotate); > TransformGroup objRotate = new TransformGroup(rotate); > objRoot.addChild(objRotate); > objRotate.addChild(new ColorCube(0.4)); > } > return objRoot; > } >} > > ========================================================================== >To unsubscribe, send email to [EMAIL PROTECTED] and include in the body >of the message "signoff JAVA3D-INTEREST". For general help, send email to >[EMAIL PROTECTED] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".