List of usage examples for com.google.gwt.user.client Timer Timer
Timer
From source file:com.akjava.gwt.threetest.client.NormalmapDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();//from w w w. j av a2s .co m timer = null; } renderer.setClearColorHex(0x333333, 1); final Scene scene = THREE.Scene(); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 300, 0); final Vector3 target = THREE.Vector3(0, 150, 0); scene.add(camera); JSONLoader loader = THREE.JSONLoader(); loader.load("models/animation.js", new LoadHandler() { //loader.load("models/men2b_boned_gun.js", new LoadHandler() { @Override public void loaded(Geometry geometry) { log(geometry); Shader shader = ShaderUtils.lib("normal"); Uniforms uniforms = UniformUtils.clone(shader.uniforms()); uniforms.set("tNormal", ImageUtils.loadTexture("img/normalmap.png")); //uniforms.set("tNormal", ImageUtils.loadTexture("img/men2buv_n.png#10")); uniforms.set("enableDiffuse", true); uniforms.setHex("uDiffuseColor", 0xff0000); //uniforms.set("tDiffuse", ImageUtils.loadTexture("img/men2buv.png#1")); uniforms.set("tDiffuse", ImageUtils.loadTexture("img/uv.png#2")); uniforms.set("uNormalScale", 1); Material material = THREE.ShaderMaterial().fragmentShader(shader.fragmentShader()) .vertexShader(shader.vertexShader()).uniforms(uniforms).lights(true).morphTargets(false) .build(); model = new AnimationModel(geometry, material); model.getObject3D().getScale().set(15, 15, 15); model.getObject3D().getPosition().set(0, -100, 0); scene.add(model.getObject3D()); GWT.log("loaded:"); } }); final Light light = THREE.DirectionalLight(0xeeeeee, 2); light.setPosition(1, 1, 1); light.getPosition().normalize(); //scene.add(light); final Light light2 = THREE.DirectionalLight(0xeeeeee, 2); light2.setPosition(-1, -1, -1); light2.getPosition().normalize(); scene.add(light2); final Light light3 = THREE.PointLight(0xffffff); light3.setPosition(0, 0, 600); scene.add(light3); //scene.add(light2); scene.add(THREE.AmbientLight(0xcccccc)); // MainWidget.cameraMove.setZ(-20); MainWidget.cameraMove.setZ(25); // MainWidget.cameraRotation.setX(-90); final int radius = 600; last = System.currentTimeMillis(); Timer timer = new Timer() { double theta; public void run() { try { theta += 0.2; camera.getPosition().setX(radius * Math.sin(theta * Math.PI / 360)); camera.getPosition().setZ(radius * Math.cos(theta * Math.PI / 360)); camera.lookAt(target); if (model != null) { //TODO clock long tmp = System.currentTimeMillis(); long delta = tmp - last; //animMesh.updateAnimation(delta); //animMesh.update((int) delta); //tmpwork int index = (int) (tmp / 100 % model.getFramelength()); model.select(index); last = tmp; } renderer.render(scene, camera); MainWidget.stats.update(); } catch (Exception e) { GWT.log(e.getMessage()); } } }; startTimer(timer); }
From source file:com.akjava.gwt.threetest.client.ParticleDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();//from w w w . j ava 2 s . c o m timer = null; } renderer.setClearColorHex(0x333333, 1); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 0); final Scene scene = THREE.Scene(); final Light light = THREE.SpotLight(0xffffff); light.setPosition(1000, 2000, 1500);//light.setPosition(5,5, 5); scene.add(light); //scene.add(THREE.AmbientLight(0x888888)); final int pcount = 1800; final Geometry particles = THREE.Geometry(); //Material material=THREE.ParticleBasicMaterial().color(0xffffff).size(20).build(); Material material = THREE.ParticleBasicMaterial().color(0xffffff).size(20) .map(ImageUtils.loadTexture("img/particle.png")).blending(THREE.AdditiveBlending).transparent(true) .build(); final Vector3[] velocity = new Vector3[pcount]; for (int i = 0; i < pcount; i++) { int px = (int) (Math.random() * 500 - 250); int py = (int) (Math.random() * 500 - 250); int pz = (int) (Math.random() * 500 - 250); Vertex v = THREE.Vertex(THREE.Vector3(px, py, pz)); particles.vertices().push(v); velocity[i] = THREE.Vector3(0, 0, -Math.random()); } final ParticleSystem particleSystem = THREE.ParticleSystem(particles, material); particleSystem.setSortParticles(true); final Mesh root = THREE.Mesh(THREE.PlaneGeometry(500, 500), THREE.MeshLambertMaterial().color(0x00ee88).build()); scene.add(root); mesh = root; mesh.add(particleSystem); root.setRotation(Math.toDegrees(45), Math.toDegrees(45), Math.toDegrees(-45)); MainWidget.cameraRotation.setX(-45); MainWidget.cameraRotation.setZ(45); // MainWidget.cameraMove.setZ(-20); MainWidget.cameraMove.setZ(1000); // MainWidget.cameraRotation.setX(-90); timer = new Timer() { public void run() { MainWidget.stats.update(); try { particleSystem.getRotation().incrementZ(0.001); for (int i = 0; i < pcount; i++) { Vertex v = particles.vertices().get(i); if (v.getPosition().getZ() < -200) { v.getPosition().setZ(200); velocity[i].setZ(0); } velocity[i].incrementZ(-Math.random() * .1); v.getPosition().addSelf(velocity[i]); } particles.setDirtyVertices(true);//call if you move verticle camera.setPosition(MainWidget.cameraMove.getX(), MainWidget.cameraMove.getY(), MainWidget.cameraMove.getZ()); mesh.setRotation(Math.toRadians(MainWidget.cameraRotation.getX()), Math.toRadians(MainWidget.cameraRotation.getY()), Math.toRadians(MainWidget.cameraRotation.getZ())); renderer.render(scene, camera); } catch (Exception e) { GWT.log(e.getMessage()); } } }; //timer.schedule(2000); timer.scheduleRepeating(1000 / 60); }
From source file:com.akjava.gwt.threetest.client.ParticleDemo2.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();// w w w.j a va2s . c o m timer = null; } renderer.setClearColorHex(0xcccccc, 1); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 0); final Scene scene = THREE.Scene(); final Light light = THREE.SpotLight(0xffffff); light.setPosition(1000, 2000, 1500);//light.setPosition(5,5, 5); scene.add(light); final Mesh root = THREE.Mesh(THREE.PlaneGeometry(50, 50), THREE.MeshLambertMaterial().color(0x00ee88).build()); scene.add(root); mesh = root; Object3D group = THREE.Object3D(); mesh.add(group); final EmitterSystem emitterSystem = new EmitterSystem(); emitterSystem.setParent(group); emitterSystem.setVelocity(THREE.Vector3(0, 200.0 / 120, 0)); emitterSystem.setVelocityRange(THREE.Vector3(100.0 / 120, 0, 100.0 / 120)); root.setRotation(Math.toDegrees(45), Math.toDegrees(45), Math.toDegrees(-45)); //Particle particle=THREE.Particle(THREE.MeshLambertMaterial().color(0x00ee88).build()); //particle.getScale().set(100, 100, 100); //scene.add(particle); MainWidget.cameraRotation.setX(0); MainWidget.cameraRotation.setZ(0); // MainWidget.cameraMove.setZ(-20); MainWidget.cameraMove.setZ(1000); // MainWidget.cameraRotation.setX(-90); timer = new Timer() { public void run() { MainWidget.stats.update(); try { emitterSystem.update(); camera.setPosition(MainWidget.cameraMove.getX(), MainWidget.cameraMove.getY(), MainWidget.cameraMove.getZ()); mesh.setRotation(Math.toRadians(MainWidget.cameraRotation.getX()), Math.toRadians(MainWidget.cameraRotation.getY()), Math.toRadians(MainWidget.cameraRotation.getZ())); renderer.render(scene, camera); } catch (Exception e) { GWT.log(e.getMessage()); } } }; timer.scheduleRepeating(1000 / 60); //timer.schedule(2000); }
From source file:com.akjava.gwt.threetest.client.PickDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();/* w w w . j av a 2 s .c o m*/ timer = null; } //renderer.setClearColorHex(0xff0000, 0.5); final Map<Integer, Mesh> meshs = new HashMap<Integer, Mesh>(); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 50); final Scene scene = THREE.Scene(); final Material material = THREE.MeshLambertMaterial(0xff00ff, false); final Mesh mesh = THREE.Mesh(THREE.CylinderGeometry(5, 5, 5, 6), material); scene.add(mesh); final Mesh mesh2 = THREE.Mesh(THREE.CylinderGeometry(5, 5, 5, 15), THREE.MeshLambertMaterial(0x00ff00, false)); mesh2.setPosition(0, 10, 0); scene.add(mesh2); final Mesh mesh3 = THREE.Mesh(THREE.CylinderGeometry(5, 1, 5, 15), THREE.MeshLambertMaterial(0x0000ff, false)); mesh3.setPosition(0, -10, 0); scene.add(mesh3); final Mesh mesh4 = THREE.Mesh(THREE.CylinderGeometry(5, 4.5, 5, 5), THREE.MeshLambertMaterial(0xffff00, false)); mesh4.setPosition(-10, 0, 0); scene.add(mesh4); final Light light = THREE.PointLight(0xffffff); light.setPosition(10, 0, 10); scene.add(light); //scene.add(THREE.AmbientLight(0x330000)); meshs.put(mesh.getId(), mesh); meshs.put(mesh2.getId(), mesh2); meshs.put(mesh3.getId(), mesh3); meshs.put(mesh4.getId(), mesh4); timer = new Timer() { public void run() { mesh.getRotation().incrementX(0.02); mesh.getRotation().incrementY(0.02); //mesh.setMaterials(material); //material.setColor(THREE.Color((int) (Math.random()*0xffffff))); //mesh.setMaterials(THREE.MeshLambertMaterial().color((int) (Math.random()*0xffffff)).build()); renderer.render(scene, camera); } }; timer.scheduleRepeating(1000 / 60); final Projector projector = THREE.Projector(); panel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { //GWT.log(event.getX()+"x"+event.getY()+" - "+width+"x"+height); JsArray<Intersect> intersects = projector.pickIntersects(event.getX(), event.getY(), width, height, camera, scene); if (intersects.length() > 0) { //GWT.log(""+intersects.length()); } for (int i = 0; i < intersects.length(); i++) { Intersect sect = intersects.get(i); //GWT.log(""+sect.getObject().getId()+" = "+sect.getObject().getName()); final Mesh target = meshs.get(sect.getObject().getId()); final int old = target.getMaterials().get(0).getColor().getHex(); target.getMaterials().get(0).getColor().setHex(0xeeeeee); Timer timer = new Timer() { @Override public void run() { target.getMaterials().get(0).getColor().setHex(old); } }; timer.schedule(1000); } } }); }
From source file:com.akjava.gwt.threetest.client.PlainDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();//from w w w . ja v a 2s. c o m timer = null; } final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 20); final Scene scene = THREE.Scene(); MeshBasicMaterialBuilder basicMaterial = MeshBasicMaterialBuilder.create().wireFrame(false).color(0x00ffff) .opacity(0.5).reflectivity(true).transparent(true); final Mesh mesh = THREE.Mesh(THREE.PlaneGeometry(5, 5), basicMaterial.build()); scene.add(mesh); final Mesh mesh2 = THREE.Mesh(THREE.PlaneGeometry(5, 5), basicMaterial.color(0xff0000).build()); mesh2.setPosition(2, 2, 2); scene.add(mesh2); final Light light = THREE.PointLight(0xffffff); light.setPosition(10, 0, 10); scene.add(light); timer = new Timer() { public void run() { mesh.getRotation().incrementX(0.02); mesh.getRotation().incrementY(0.02); renderer.render(scene, camera); } }; timer.scheduleRepeating(1000 / 60); }
From source file:com.akjava.gwt.threetest.client.QuotaViewDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();//from ww w.j a va2 s.c om timer = null; } //renderer.setClearColorHex(0x333333, 1); renderer.setShadowMapEnabled(true); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 0); final Scene scene = THREE.Scene(); final Light light = THREE.SpotLight(0xffffff); light.setPosition(100, 200, 150);//light.setPosition(5,5, 5); light.setCastShadow(true); scene.add(light); scene.add(THREE.AmbientLight(0x888888)); final Mesh root = THREE.Mesh(THREE.PlaneGeometry(8, 8), THREE.MeshBasicMaterial().color(0xff0000).wireFrame().build()); scene.add(root); mesh = root; for (int x = 0; x < 4; x++) { for (int y = 0; y < 4; y++) { Mesh plain = THREE.Mesh(THREE.PlaneGeometry(4, 4), THREE.MeshBasicMaterial().color(0x00ff00).build()); root.add(plain); plain.setPosition(-2 + x * 4, -2 + y * 4, 0); plain.setReceiveShadow(true); Mesh box = THREE.Mesh(THREE.CubeGeometry(2, 2, 4), THREE.MeshLambertMaterial().color(0x0000ff).build()); box.setCastShadow(true); plain.add(box); box.setPosition(1, 1, 2); } } JSONLoader loader = THREE.JSONLoader(); loader.load("models/two5.js", new LoadHandler() { @Override public void loaded(Geometry geometry) { Mesh obj = THREE.Mesh(geometry, THREE.MeshFaceMaterial()); obj.setPosition(-3, -3, 0); root.add(obj); obj.setRotation(Math.toRadians(90), Math.toRadians(180 - 45), 0); } }); root.setRotation(Math.toDegrees(45), Math.toDegrees(45), Math.toDegrees(-45)); MainWidget.cameraRotation.setX(-45); MainWidget.cameraRotation.setZ(45); // MainWidget.cameraMove.setZ(-20); MainWidget.cameraMove.setZ(25); // MainWidget.cameraRotation.setX(-90); timer = new Timer() { public void run() { try { camera.setPosition(MainWidget.cameraMove.getX(), MainWidget.cameraMove.getY(), MainWidget.cameraMove.getZ()); mesh.setRotation(Math.toRadians(MainWidget.cameraRotation.getX()), Math.toRadians(MainWidget.cameraRotation.getY()), Math.toRadians(MainWidget.cameraRotation.getZ())); //cancel(); if (mesh != null) { //mesh.getRotation().incrementZ(0.02); //mesh.getRotation().incrementZ(0.02); } renderer.render(scene, camera); } catch (Exception e) { GWT.log(e.getMessage()); } } }; //timer.schedule(2000); timer.scheduleRepeating(1000 / 60); }
From source file:com.akjava.gwt.threetest.client.ShadowDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();/*ww w . j a v a 2 s .c o m*/ timer = null; } this.renderer = renderer; renderer.setShadowMapEnabled(true); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 100); camera.setRotation(Math.toRadians(10), 0, 0); final Scene scene = THREE.Scene(); final Mesh mesh = THREE.Mesh(THREE.CubeGeometry(40, 5, 40), THREE.MeshLambertMaterial(0xeeeeee, false)); mesh.setRotation(0, -Math.PI / 2, 0); mesh.setPosition(0, -10, 0); scene.add(mesh); mesh.setCastShadow(true); mesh.setReceiveShadow(true); final Mesh mesh2 = THREE.Mesh(THREE.CubeGeometry(6, 6, 6), THREE.MeshLambertMaterial(0xeff0000, false)); scene.add(mesh2); mesh2.setPosition(0, 0, 0); mesh2.setReceiveShadow(true); mesh2.setCastShadow(true); final Mesh mesh3 = THREE.Mesh(THREE.CubeGeometry(3, 3, 10), THREE.MeshLambertMaterial(0xe00ff00, false)); scene.add(mesh3); mesh3.setPosition(5, 20, 15); //mesh2.setReceiveShadow(true); mesh3.setCastShadow(true); final Light light = THREE.SpotLight(0xffffff); light.setPosition(100, 200, 150); scene.add(light); light.setCastShadow(true); timer = new Timer() { public void run() { mesh2.getRotation().incrementX(0.02); mesh2.getRotation().incrementY(0.02); mesh3.getRotation().incrementX(0.02); mesh3.getRotation().incrementZ(0.02); renderer.render(scene, camera); } }; timer.scheduleRepeating(1000 / 60); }
From source file:com.akjava.gwt.threetest.client.SimpleAnimation.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();//from ww w .j a v a 2s.co m timer = null; } renderer.setClearColorHex(0x333333, 1); final Scene scene = THREE.Scene(); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 300, 0); final Vector3 target = THREE.Vector3(0, 150, 0); scene.add(camera); JSONLoader loader = THREE.JSONLoader(); loader.load("models/animation.js", new LoadHandler() { @Override public void loaded(Geometry geometry) { Material material = THREE.MeshLambertMaterial().color(0xffffff).morphTargets(true) .map(ImageUtils.loadTexture("img/uv.png")).build(); animMesh = THREE.MorphAnimMesh(geometry, material); animMesh.setDuration(1000 * 5); //5sec animMesh.setMirrordLoop(true);//animation move forward and back animMesh.getScale().set(10, 10, 10); scene.add(animMesh); GWT.log("loaded:"); } }); final Light light = THREE.DirectionalLight(0xeeeeee, 2); light.setPosition(1, 1, 1); scene.add(light); scene.add(THREE.AmbientLight(0xcccccc)); final int radius = 600; last = System.currentTimeMillis(); Timer timer = new Timer() { double theta; public void run() { try { theta += 0.2; camera.getPosition().setX(radius * Math.sin(theta * Math.PI / 360)); camera.getPosition().setZ(radius * Math.cos(theta * Math.PI / 360)); camera.lookAt(target); if (animMesh != null) { //TODO clock long tmp = System.currentTimeMillis(); long delta = tmp - last; animMesh.updateAnimation(delta); last = tmp; } renderer.render(scene, camera); MainWidget.stats.update(); } catch (Exception e) { GWT.log(e.getMessage()); } } }; startTimer(timer); }
From source file:com.akjava.gwt.threetest.client.SimpleDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();/*from w w w. java 2s. c om*/ timer = null; } //renderer.setClearColorHex(0xff0000, 0.5); final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 20); final Scene scene = THREE.Scene(); final Mesh mesh = THREE.Mesh(THREE.CubeGeometry(5, 5, 5), THREE.MeshLambertMaterial(0xff0000, false)); scene.add(mesh); final Light light = THREE.PointLight(0xffffff); light.setPosition(10, 0, 10); scene.add(light); timer = new Timer() { public void run() { mesh.getRotation().incrementX(0.02); mesh.getRotation().incrementY(0.02); renderer.render(scene, camera); } }; timer.scheduleRepeating(1000 / 60); }
From source file:com.akjava.gwt.threetest.client.SphereDemo.java
License:Apache License
@Override public void start(final WebGLRenderer renderer, final int width, final int height, FocusPanel panel) { if (timer != null) { timer.cancel();/*from w ww. j a va2 s . co m*/ timer = null; } final Camera camera = THREE.PerspectiveCamera(35, (double) width / height, .1, 10000); camera.getPosition().set(0, 0, 20); final Scene scene = THREE.Scene(); final Mesh mesh = THREE.Mesh(THREE.SphereGeometry(5, 16, 16), THREE.MeshLambertMaterial(0xff0000, true)); scene.add(mesh); final Light light = THREE.PointLight(0xffffff); light.setPosition(10, 0, 10); scene.add(light); timer = new Timer() { public void run() { mesh.getRotation().incrementX(0.02); mesh.getRotation().incrementY(0.02); renderer.render(scene, camera); } }; timer.scheduleRepeating(1000 / 60); }