Sorry..I have to take it all back...I double checked my code and I must have been thinking about something else or I was just too stupid to double check correctly...you guess which it was :)
Anyway, I noticed that the definite reason for the "refresh" issue is that fact that I have multiple Canvas3D windows (I have 4). Does anyone have any example code of using a VirtualUniverse (not SimpleUniverse) too do at least 2 Canvas3D windows together? I think I'm doing it correctly but who knows...I did notice that having just 2 windows caused a problem so having 4 causes an even bigger problem....and so example code would be great help. This is what I do for making my Canvas3d objects: ///////////////////////////////////////////////////////////////////// // 1 - Create Canvas3D object. Canvas3D canvas3D = new Canvas3D SimpleUniverse.getPreferredConfiguration()); Canvas3D second_canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); Canvas3D third_canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); Canvas3D fourth_canvas3D = new Canvas3D SimpleUniverse.getPreferredConfiguration()); canvas3D.setDoubleBufferEnable(true); second_canvas3D.setDoubleBufferEnable(true); third_canvas3D.setDoubleBufferEnable(true); fourth_canvas3D.setDoubleBufferEnable(true); // 2 - Create a VirtualUniverse object. VirtualUniverse universe = new VirtualUniverse(); // 3 - Create a Locale object, attaching it to the VirtualUniverse object. Locale locale = new Locale(universe); // 4 - Create a view branch graph. // a - create a View object. View view = new View(); View view2 = new View(); View view3 = new View(); View view4 = new View(); // b - create a ViewPlatform object. viewplatform = new ViewPlatform(); viewplatform2 = new ViewPlatform(); viewplatform3 = new ViewPlatform(); viewplatform4 = new ViewPlatform(); // c - Create a PhysicalBody object. PhysicalBody physicalbody = new PhysicalBody(); PhysicalBody physicalbody2 = new PhysicalBody(); PhysicalBody physicalbody3 = new PhysicalBody(); PhysicalBody physicalbody4 = new PhysicalBody(); // d - create a PhysicalEnvironment object. PhysicalEnvironment physicalenvironment = new PhysicalEnvironment(); PhysicalEnvironment physicalenvironment2 = new PhysicalEnvironment(); PhysicalEnvironment physicalenvironment3 = new PhysicalEnvironment(); PhysicalEnvironment physicalenvironment4 = new PhysicalEnvironment(); // 5 - Contruct content branch graph(s) BranchGroup scene = new BranchGroup(); // Draw the stuff in the scene scene = createSceneGraph(); // e - attach objects to View object. view.attachViewPlatform(viewplatform); view.setPhysicalBody(physicalbody); view.setPhysicalEnvironment(physicalenvironment); view.addCanvas3D(canvas3D); view2.attachViewPlatform(viewplatform2); view2.setPhysicalBody(physicalbody2); view2.setPhysicalEnvironment(physicalenvironment2); view2.addCanvas3D(second_canvas3D); view3.attachViewPlatform(viewplatform3); view3.setPhysicalBody(physicalbody3); view3.setPhysicalEnvironment(physicalenvironment3); view3.addCanvas3D(third_canvas3D); view4.attachViewPlatform(viewplatform4); view4.setPhysicalBody(physicalbody4); view4.setPhysicalEnvironment(physicalenvironment4); view4.addCanvas3D(fourth_canvas3D); // Set the viewplatform to the scene scene.addChild(viewplatform); // Set the view clip planes view.setBackClipDistance( 3000.0 ); view.setFrontClipDistance( 0.001 ); view2.setBackClipDistance( 300000.0 ); view2.setFrontClipDistance( 0.1 ); view3.setBackClipDistance( 300000.0 ); view3.setFrontClipDistance( 0.1 ); view4.setBackClipDistance( 3000.0 ); view4.setFrontClipDistance( 0.001 ); // 6 - Compile branch graph(s) // doing in scene.. // 7 - Insert subgraphs into the Locale locale.addBranchGraph(scene); // // FINAL - add the canvases to the main panel so that the original // canvas is in the biggest window, and the other three canvases // are in 3 side windows. this.setLayout(new BorderLayout()); JPanel mainpanel = new JPanel(new BorderLayout()); JPanel viewpanel2 = new JPanel(new BorderLayout()); mainpanel.add("Center", canvas3D); mainpanel.setBorder(BorderFactory.createEtchedBorder()); viewpanel2.setPreferredSize(new Dimension(300,400)); viewpanel2.setLayout(new GridLayout(3,0)); viewpanel2.add(second_canvas3D); viewpanel2.add(third_canvas3D); viewpanel2.add(fourth_canvas3D); this.add(mainpanel, BorderLayout.CENTER); this.add(viewpanel2,BorderLayout.EAST); ///////////////////////////////////////////////////////////////////// Mario -----Original Message----- From: ZACZEK, MARIUSZ P. (JSC-DM) (NASA) To: [EMAIL PROTECTED] Sent: 11/17/2002 5:57 PM Subject: [JAVA3D] extending Canvas3D I'm having trouble with extending a Canvas3d...I've attached the code where I extend the Canvas3D...I removed all my preRender() postSwap(), etc code and I get the same effect as with having just the code below. Basically what happens is that my Canvas3D and SWING seems to have problems ONLY if I extend the Canvas3D as I do below....I've attached a picture to show you the effect. This effect is noticable if I move the window off screen and bring it back. The SWING portion does not redraw for a few seconds (typically 5-10) ... on another computer I had a "paint smudge effect" instead of a simple white space as I show in this picture. Basically the same thing happens but instead of being white space the swing side looks like someone smudged it up...(hope that makes sense). One thing though, if I simply use a Canvas3D (i.e. canvas3D = new Canvas3D(Simple....) I have absolutely NO problems....NONE. Refreshes right away without any issue. Only if I try to extend the Canvas3D do I have problems. Also, the Canvas actually is also unusable for the 5-10 seconds because when I move the window around I can't move anything in the canvas around. Does anyone have any suggestions??? Am I missing something when I declare the SpecialCanvas and extend the Canvas3D??? I'm trying to use this extended canvas so I can overwrite the preRender, postSwap, etc routines for doing Overlays....they work great if I don't move the window around but If I move it then it gets screwed up...also, it does NOT get affected if I open a window on top of my Java Program...you know, if I move Explorer or Netscape over on top of the window it still is ok...only has problems when I move the window itself. Please give me all of your suggestions.... I'm using the latest Java3d api, but I believe I'm using the Java 2D 1.3...did not upgrade to the new one because I had problems. Thanks, Mario //////////////////////////////////////////////////////////////////////// //// //// canvas3D = new SpecialCanvas3D(SimpleUniverse.getPreferredConfiguration()); //////////////////////////////////////////////////////////////////////// //// //// private class SpecialCanvas3D extends Canvas3D { private J3DGraphics2D graphics2D; public SpecialCanvas3D(GraphicsConfiguration graphicsConfiguration) { super(graphicsConfiguration); } public SpecialCanvas3D(GraphicsConfiguration graphicsConfiguration, boolean offScreen) { super(graphicsConfiguration, offScreen); } } //////////////////////////////////////////////////////////////////////// //// //// Mario Mariusz Zaczek NASA - Johnson Space Center Automated Vehicles and Orbit Analysis / DM35 Flight Design and Dynamics Division Mission Operations Directorate Bldg: 30A Room: 3048B Disclaimer: "The opinions, observations and comments expressed in my email are strictly my own and do not necessarily reflect those of NASA." <<test.jpg>> =========================================================================== 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".