@Override public boolean zoom (float initialDistance, float distance) { float newZoom = distance - initialDistance; float amount = newZoom - previousZoom; previousZoom = newZoom; float w = Gdx.graphics.getWidth(), h = Gdx.graphics.getHeight(); return controller.pinchZoom(amount / ((w > h) ? h : w)); }
@Override public boolean touchDragged (int screenX, int screenY, int pointer) { boolean result = super.touchDragged(screenX, screenY, pointer); if (result || this.button < 0) return result; final float deltaX = (screenX - startX) / Gdx.graphics.getWidth(); final float deltaY = (startY - screenY) / Gdx.graphics.getHeight(); startX = screenX; startY = screenY; return process(deltaX, deltaY, button); }
@Override public boolean scrolled (int amount) { return zoom(amount * scrollFactor * translateUnits); }
@Override public void render () { if (loading && assets.update()) { loading = false; onLoaded(); } inputController.update(); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); Gdx.gl.glClearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a); render(instances); }
@Override public void create () { if (assets == null) assets = new AssetManager(); modelBatch = new ModelBatch(); cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); cam.position.set(10f, 10f, 10f); cam.lookAt(0, 0, 0); cam.near = 0.1f; cam.far = 1000f; cam.update(); createAxes(); Gdx.input.setInputProcessor(inputController = new CameraInputController(cam)); }
@Override public void render () { counter = (counter + Gdx.graphics.getDeltaTime()) % 2.f; testAttribute1.value = Math.abs(1f - counter); testAttribute2.value = 1f - testAttribute1.value; camController.update(); Gdx.gl.glViewport(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight()); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); modelBatch.begin(cam); modelBatch.render(instances); modelBatch.end(); }
@Override public void create () { modelBatch = new ModelBatch(new DefaultShaderProvider()); environment = new Environment(); environment.set(new ColorAttribute(ColorAttribute.AmbientLight, .4f, .4f, .4f, 1f)); environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f)); cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); cam.position.set(10f, 10f, 10f); cam.lookAt(0, 0, 0); cam.near = 1f; cam.far = 30f; cam.update(); ModelBuilder modelBuilder = new ModelBuilder(); model = modelBuilder.createBox(5f, 5f, 5f, new Material(ColorAttribute.createDiffuse(Color.GREEN)), Usage.Position | Usage.Normal); instance = new ModelInstance(model); Gdx.input.setInputProcessor(new InputMultiplexer(this, inputController = new CameraInputController(cam))); }
@Override public void render () { inputController.update(); Gdx.gl.glViewport(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight()); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); modelBatch.begin(cam); modelBatch.render(instance, environment); modelBatch.end(); }
@Override public void create () { modelBatch = new ModelBatch(); environment = new Environment(); environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1.f)); environment.set(new ColorAttribute(ColorAttribute.Fog, 0.13f, 0.13f, 0.13f, 1f)); environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f)); cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); cam.position.set(30f, 10f, 30f); cam.lookAt(0, 0, 0); cam.near = 0.1f; cam.far = 45f; cam.update(); ModelBuilder modelBuilder = new ModelBuilder(); model = modelBuilder.createBox(5f, 5f, 5f, new Material(ColorAttribute.createDiffuse(Color.GREEN)), Usage.Position | Usage.Normal); instance = new ModelInstance(model); Gdx.input.setInputProcessor(new InputMultiplexer(this, inputController = new CameraInputController(cam))); }
@Override public boolean scrolled (int amount) { return zoom(amount * scrollFactor * translateUnits); }
@Override public boolean zoom (float initialDistance, float distance) { float newZoom = distance - initialDistance; float amount = newZoom - previousZoom; previousZoom = newZoom; float w = Gdx.graphics.getWidth(), h = Gdx.graphics.getHeight(); return controller.pinchZoom(amount / ((w > h) ? h : w)); }
@Override public boolean touchDragged (int screenX, int screenY, int pointer) { boolean result = super.touchDragged(screenX, screenY, pointer); if (result || this.button < 0) return result; final float deltaX = (screenX - startX) / Gdx.graphics.getWidth(); final float deltaY = (startY - screenY) / Gdx.graphics.getHeight(); startX = screenX; startY = screenY; return process(deltaX, deltaY, button); }
@Override public void render () { animate(); inputController.update(); Gdx.gl.glViewport(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight()); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); Gdx.gl.glClearColor(0.13f, 0.13f, 0.13f, 1); modelBatch.begin(cam); modelBatch.render(instance, environment); modelBatch.end(); }
@Override public void create () { modelBatch = new ModelBatch(); lights = new Environment(); lights.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1.f)); lights.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f)); cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); cam.position.set(0f, 7f, 10f); cam.lookAt(0, 0, 0); cam.near = 0.1f; cam.far = 300f; cam.update(); camController = new CameraInputController(cam); Gdx.input.setInputProcessor(camController); assets = new AssetManager(); assets.load("data/g3d/invaders.g3dj", Model.class); loading = true; }
protected boolean pinchZoom (float amount) { return zoom(pinchZoomFactor * amount); }
@Override public boolean zoom (float initialDistance, float distance) { float newZoom = distance - initialDistance; float amount = newZoom - previousZoom; previousZoom = newZoom; float w = Gdx.graphics.getWidth(), h = Gdx.graphics.getHeight(); return controller.pinchZoom(amount / ((w > h) ? h : w)); }
@Override public boolean touchDragged (int screenX, int screenY, int pointer) { boolean result = super.touchDragged(screenX, screenY, pointer); if (result || this.button < 0) return result; final float deltaX = (screenX - startX) / Gdx.graphics.getWidth(); final float deltaY = (startY - screenY) / Gdx.graphics.getHeight(); startX = screenX; startY = screenY; return process(deltaX, deltaY, button); }
@Override public void render () { if (loading && assets.update()) doneLoading(); camController.update(); Gdx.gl.glViewport(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight()); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); modelBatch.begin(cam); for (ModelInstance instance : instances) modelBatch.render(instance, lights); if (space != null) modelBatch.render(space); modelBatch.end(); }
@Override public void create () { if (app == null) { app = Gdx.app; tests[testIndex].create(); } cameraController = new CameraInputController(tests[testIndex].camera); cameraController.activateKey = Keys.CONTROL_LEFT; cameraController.autoUpdate = false; cameraController.forwardTarget = false; cameraController.translateTarget = false; Gdx.input.setInputProcessor(new InputMultiplexer(cameraController, this, new GestureDetector(this))); font = new BitmapFont(Gdx.files.internal("data/arial-15.fnt"), false); hud = new Stage(); hud.addActor(fpsLabel = new Label(" ", new Label.LabelStyle(font, Color.WHITE))); fpsLabel.setPosition(0, 0); hud.addActor(titleLabel = new Label(tests[testIndex].getClass().getSimpleName(), new Label.LabelStyle(font, Color.WHITE))); titleLabel.setY(hud.getHeight() - titleLabel.getHeight()); hud.addActor(instructLabel = new Label("A\nB\nC\nD\nE\nF", new Label.LabelStyle(font, Color.WHITE))); instructLabel.setY(titleLabel.getY() - instructLabel.getHeight()); instructLabel.setAlignment(Align.top | Align.left); instructLabel.setText(tests[testIndex].instructions); }
protected boolean pinchZoom (float amount) { return zoom(pinchZoomFactor * amount); }