@Override public synchronized void render(GL10 gl, Renderable parent) { // store current matrix and then modify it: gl.glPushMatrix(); loadPosition(gl); setScale(gl); loadRotation(gl); if (ObjectPicker.readyToDrawWithColor) { if (myPickColor != null) { gl.glColor4f(myPickColor.red, myPickColor.green, myPickColor.blue, myPickColor.alpha); } else { Log.d("Object Picker", "Object " + this + " had no picking color"); } } else if (myColor != null) { gl.glColor4f(myColor.red, myColor.green, myColor.blue, myColor.alpha); } if (myChildren != null) { myChildren.render(gl, this); } draw(gl, parent); // restore old matrix: gl.glPopMatrix(); }
@Override public void _b_addWorldsToRenderer( GL1Renderer renderer, GLFactory objectFactory, GeoObj currentPosition) { camera = new GLCamera(new Vec(0, 0, 1)); world = new World(camera); MeshComponent arrow = GLFactory.getInstance().newArrow(); arrow.setPosition(new Vec(0, 0, 4)); MeshComponent circle = GLFactory.getInstance().newCircle(Color.redTransparent()); circle.setScale(new Vec(4, 4, 4)); // circle.myAnimation = new AnimationPulse(2, new Vec(0, 0, 0), new // Vec(4, 4, 4), 0.2f); final MeshComponent itemMesh = new Shape(); itemMesh.addChild(arrow); itemMesh.addChild(circle); itemMesh.setPosition(Vec.getNewRandomPosInXYPlane(camera.getPosition(), 5, 10)); Obj itemToCollect = new Obj(); itemToCollect.setComp( new ProximitySensor(camera, 3f) { @Override public void onObjectIsCloseToCamera( GLCamera myCamera2, Obj obj, MeshComponent m, float currentDistance) { catchedNumber++; new CommandShowToast(myTargetActivity, "You got me " + catchedNumber + " times") .execute(); itemMesh.setPosition(Vec.getNewRandomPosInXYPlane(camera.getPosition(), 5, 20)); } }); itemToCollect.setComp(itemMesh); world.add(itemToCollect); renderer.addRenderElement(world); }
@Override public void addObjectsTo(GL1Renderer renderer, World world, GLFactory objectFactory) { GeoObj o = new GeoObj(-29.456251, -51.968653); // o.setComp(GLFactory.getInstance().newSolarSystem(new Vec())); MeshComponent mesh1 = GLFactory.getInstance().newCube(); // mesh1.setScale(new Vec(3, 3, 3)); o.setComp(mesh1); world.add(o); Color color = new Color("#ff00ff"); MeshComponent mesh = GLFactory.getInstance().newCube(color); // mesh.setScale(new Vec(20, 20, 20)); GeoObj cedro = new GeoObj(-29.477376, -51.983571); cedro.setComp(mesh); world.add(cedro); // Faleiro: -29.466055,-51.961384 Color colorF = new Color("#ff00ff"); MeshComponent meshF = GLFactory.getInstance().newCube(colorF); meshF.setScale(new Vec(20, 20, 20)); GeoObj cemetery = new GeoObj(-29.460381, -51.967412); cemetery.setComp(meshF); world.add(cemetery); // São Cri: -29.454733,-51.966877 Color colorS = new Color("#00ff00"); MeshComponent meshS = GLFactory.getInstance().newCube(colorS); // meshS.setScale(new Vec(20, 20, 20)); // Objetos sao visiveis ate 1 km GeoObj saocri = new GeoObj(-29.454733, -51.966877); saocri.setComp(meshS); world.add(saocri); }