import easy.EasyCam; import easy.EasyOpenGL; import easy.GUIManager; import easy.VBOManager; import easy.listener.mouse.EasyPress; import easy.listener.mouse.EasyRollOut; import easy.listener.mouse.EasyRollOver; import easy.object.Easy; import easy.object.RGBA; import easy.object.render3D.EasyVBO; import easy.object.render3D.EasyVBOLine; import easy.object.render3D.EasyVBOQuad; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import javax.media.opengl.GL; import processing.core.PApplet; private GUIManager gui; private VBOManager vbo; private EasyCam camera; private float tumbleX; private float tumbleY; private int countNB; private float speed; /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// void setup() { size(800, 500, OPENGL); gui = new GUIManager(this); vbo = new VBOManager(); camera = new EasyCam(this); EasyVBO rootObject = (EasyVBO) gui.add(new EasyVBOQuad(0, 0, 0, 100, 100)); //vbo.dataReceive(rootObject); //rootObject.add(over); //rootObject.add(press); addToFoucusList(rootObject); ////////////// newChicks(rootObject, 30, 2, 30); ////////////// Object[] easy = rootObject.getElements(); for(int i=0;i= 2) { camera.distance = 100; } } }; /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// public void addToFoucusList(Easy easy) { GUIManager.focusMap.put(easy.hashCode(), easy); } /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// void draw() { background(50); GL gl = EasyOpenGL.getGL(this); gui.opengl.reshape(gl); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); //////////////// cameraManage(); vbo.draw(gl); gui.draw(); ////////////////////////////// } /////////////////////////////////////////////////////////////////////////// public void mouseDragged() { tumbleX = radians(mouseX - pmouseX); tumbleY = radians(mouseY - pmouseY); } private void cameraManage() { if (GUIManager.focus != null) { if (gui.mouse.mouse instanceof MouseWheelEvent) { camera.distance += ((MouseWheelEvent) gui.mouse.mouse).getWheelRotation() * 100; } float dst = dist(camera.theCameraX, camera.theCameraY, camera.theCameraZ, camera.theTargetX, camera.theTargetY, camera.theTargetZ); speed = (dst - dist(camera.theTargetX + camera.distance, camera.theTargetY, camera.theTargetZ, camera.theTargetX, camera.theTargetY, camera.theTargetZ)) / 100; /////// float nx = camera.theCameraX - speed * ((camera.theCameraX - gui.focus.loc.getAbsolutX()) / 100); float ny = camera.theCameraY - speed * ((camera.theCameraY - gui.focus.loc.getAbsolutY()) / 100); float nz = camera.theCameraZ - speed * ((camera.theCameraZ - gui.focus.loc.getAbsolutZ()) / 100); //// camera.jump(nx, ny, nz); ///// float ntx = camera.theTargetX - (camera.theTargetX - GUIManager.focus.loc.getAbsolutX()) / 10; float nty = camera.theTargetY - (camera.theTargetY - GUIManager.focus.loc.getAbsolutY()) / 10; float ntz = camera.theTargetZ - (camera.theTargetZ - GUIManager.focus.loc.getAbsolutZ()) / 10; ///////// camera.aim(ntx, nty, ntz); } camera.tumble(tumbleX /= 1.1, tumbleY /= 1.1); camera.feed(gui.opengl.glu); }