private void addGeometries( WorldRenderableObject model, boolean remove ) { if ( remove ) { openGLEventListener.removeAllData(); } openGLEventListener.addDataObjectToScene( model ); }
/** * */ public void removeAllData() { worldRenderableObjects.clear(); bbox = getDefaultBBox(); calcViewParameters(); }
/** * Adds the given branch group to the scene and set the appropriate distance etc. After adding the branch group to * the rotation group which is controlled by the mouse rotator. * * @param b * a list of WorldRenderableObjects, can be <Code>null</Code>. */ public void addDataObjectToScene( WorldRenderableObject b ) { if ( b != null ) { Envelope env = b.getBbox(); if ( env != null ) { if ( isDefaultBBox() ) { bbox = env; } else { bbox = bbox.merge( env ); } } calcViewParameters(); worldRenderableObjects.add( b ); } }
private void setupOpenGL( boolean testSphere ) { GLCapabilities caps = new GLCapabilities(); caps.setDoubleBuffered( true ); caps.setHardwareAccelerated( true ); caps.setAlphaBits( 8 ); caps.setAccumAlphaBits( 8 ); openGLEventListener = new OpenGLEventHandler( testSphere ); canvas = new GLCanvas( caps ); canvas.addGLEventListener( openGLEventListener ); canvas.addMouseListener( openGLEventListener.getTrackBall() ); canvas.addMouseWheelListener( openGLEventListener.getTrackBall() ); canvas.addMouseMotionListener( openGLEventListener.getTrackBall() ); getContentPane().add( canvas, BorderLayout.CENTER ); }
/** * Update the view by evaluating the given key, * * @param keyTyped * r/R(reset view), all others will be ignored. * @return true if the view should be redrawn, false otherwise. */ public boolean updateView( char keyTyped ) { boolean changed = true; if ( keyTyped == 'r' || keyTyped == 'R' ) { calcViewParameters(); changed = true; } return changed; }
private boolean isDefaultBBox() { Envelope env = getDefaultBBox(); return ( Math.abs( bbox.getSpan0() - env.getSpan0() ) < 1E-11 ) && ( Math.abs( bbox.getSpan1() - env.getSpan1() ) < 1E-11 ) && ( Math.abs( bbox.getMin().get0() - env.getMin().get0() ) < 1E-11 ) && ( Math.abs( bbox.getMin().get1() - env.getMin().get1() ) < 1E-11 ) && ( Math.abs( bbox.getMin().get2() - env.getMin().get2() ) < 1E-11 ); }
drawCube( gl ); glut.glutSolidSphere( sphereSize, 15, 15 );
/** * */ public void calcViewParameters() { centroid = new float[] { (float) bbox.getCentroid().get0(), (float) bbox.getCentroid().get1(), (float) bbox.getCentroid().get2() }; lookAt = new float[] { centroid[0], centroid[1], centroid[2] }; eye = calcOptimalEye( bbox ); float dist = Vectors3f.distance( centroid, eye ); farClippingPlane = 2 * dist; nearClippingPlane = 0.01 * farClippingPlane; trackBall.reset(); }
/** * * @param renderTestObject */ public OpenGLEventHandler( boolean renderTestObject ) { trackBall = new TrackBall(); centroid = new float[3]; lookAt = new float[3]; eye = new float[3]; this.renderTestObject = renderTestObject; bbox = getDefaultBBox(); calcViewParameters(); }