| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package de.andreasvoelker;
- import com.jogamp.opengl.GLCapabilities;
- import com.jogamp.opengl.GLCapabilitiesImmutable;
- import com.jogamp.opengl.GLProfile;
- import com.jogamp.opengl.awt.GLCanvas;
- import com.jogamp.opengl.util.Animator;
- import org.jetbrains.annotations.NotNull;
- import java.awt.event.*;
- public class BlochFrame extends GLCanvas {
- final @NotNull BlochRenderer renderer;
- final @NotNull Animator animator;
- final RenderState state;
- class MyMouseMotionListener implements MouseMotionListener {
- int prevX, prevY;
- @Override
- public void mouseDragged(@NotNull MouseEvent e) {
- int dx = e.getX()-prevX;
- int dy = e.getY()-prevY;
- state.setPitch(state.getPitch()+0.01f*dx);
- state.setYaw(state.getYaw()+0.01f*dy);
- prevX = e.getX();
- prevY = e.getY();
- }
- @Override
- public void mouseMoved(@NotNull MouseEvent e) {
- prevX = e.getX();
- prevY = e.getY();
- }
- }
- class MyMouseWheelListener implements MouseWheelListener {
- @Override
- public void mouseWheelMoved(@NotNull MouseWheelEvent e) {
- System.out.println("Executed");
- System.out.println(e.getWheelRotation());
- state.setRadius(state.getRadius()+0.1f*(float)e.getWheelRotation());
- }
- }
- BlochFrame(RenderState state){
- super(getCapabilities());
- this.state = state;
- renderer = new BlochRenderer(state);
- addGLEventListener(renderer);
- setSize(400, 400);
- animator = new Animator(this);
- animator.start();
- addMouseMotionListener(this.new MyMouseMotionListener());
- addMouseWheelListener(this.new MyMouseWheelListener());
- }
- private static @NotNull GLCapabilitiesImmutable getCapabilities() {
- final GLProfile profile = GLProfile.get(GLProfile.GL2);
- return new GLCapabilities(profile);
- }
- }
|