public void setupPortrayals() { // display.destroySceneGraph(); // determine SimpleColorMap cm = new SimpleColorMap(); cm.setLevels(0.0, HeatBugs.MAX_HEAT, Color.blue, Color.red); // specify that the "bugs" are going to be cones pointing straight up. TransformedPortrayal3D p = new TransformedPortrayal3D(new ConePortrayal3D()); p.rotateX(90.0); bugPortrayal.setPortrayalForAll(p); // the heat can be tiles, meshes, or tiles with no change in height (NOZ). // Specify which one here. switch (heatmode) { case TILE: quadP = new TilePortrayal(cm, 1f / 2000); break; case MESH: quadP = new MeshPortrayal(cm, 1f / 2000); break; case NOZ: quadP = new TilePortrayal(cm); // no height changes, but we need to raise the bugs a little bit bugPortrayal.translate(0, 0, 1.0f); break; } heatPortrayal.setPortrayalForAll(quadP); // With this line we can tell the bug portrayal to use two triangles rather than // a rect to draw each cell. See the documentation for ValueGrid2DPortrayal3D for // why this would be useful and when it is not. // heatPortrayal.setUsingTriangles(true); heatPortrayal.setField(((HeatBugs) state).valgrid); bugPortrayal.setField(((HeatBugs) state).buggrid); // reschedule the displayer display.reset(); // rebuild the scene graph display.createSceneGraph(); }