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 ); }
@Override public void mouseDragged( MouseEvent event ) { int x = event.getX(); int y = event.getY(); if ( !mouseLook ) { mouseLook = true; oldX = x; oldY = y; return; } int dx = oldX - x; int dy = oldY - y; oldX = x; oldY = y; if ( dx * dx > 100 * 100 || dy * dy > 100 * 100 ) { return; } vf.rotateX( 0.003f * dy ); vf.rotateY( 0.003f * dx ); oldX = x; oldY = y; master.repaint(); }
new GLCanvas(); } catch ( UnsatisfiedLinkError e ) { StringBuilder sb = new StringBuilder( "Cannot initialize JOGL (Java OpenGL bindings) -- " );
@Override public void mouseWheelMoved( MouseWheelEvent ev ) { double moveStep = calcMove(); if ( ( ev.getModifiersEx() & ( InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK ) ) == InputEvent.SHIFT_DOWN_MASK ) { // SHIFT (and not CTRL) moveStep *= 10.0; } else if ( ( ev.getModifiersEx() & ( InputEvent.SHIFT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK ) ) == InputEvent.CTRL_DOWN_MASK ) { // CTRL (and not SHIFT) moveStep /= 10.0; } vf.moveForward( -ev.getWheelRotation() * moveStep ); master.repaint(); }
break; master.repaint();