X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=sixth-3d-demos.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fexamples%2Flife%2FMain.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fexamples%2Flife%2FMain.java;h=0000000000000000000000000000000000000000;hp=afc0e1c2e768674c6dfb607bea390146957f03d4;hb=08719db537fae3645ca86f9ee6f8deba4dadf4f4;hpb=f0ebc20d0438fc46be1d98fb3643bd4196cb64c9 diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/examples/life/Main.java b/src/main/java/eu/svjatoslav/sixth/e3d/examples/life/Main.java deleted file mode 100644 index afc0e1c..0000000 --- a/src/main/java/eu/svjatoslav/sixth/e3d/examples/life/Main.java +++ /dev/null @@ -1,108 +0,0 @@ -package eu.svjatoslav.sixth.e3d.examples.life; - -import eu.svjatoslav.sixth.e3d.geometry.Point3D; -import eu.svjatoslav.sixth.e3d.geometry.Rectangle; -import eu.svjatoslav.sixth.e3d.gui.Avatar; -import eu.svjatoslav.sixth.e3d.gui.ViewFrame; -import eu.svjatoslav.sixth.e3d.gui.ViewPanel; -import eu.svjatoslav.sixth.e3d.gui.humaninput.WorldNavigationUserInputTracker; -import eu.svjatoslav.sixth.e3d.math.Transform; -import eu.svjatoslav.sixth.e3d.renderer.raster.Color; -import eu.svjatoslav.sixth.e3d.renderer.raster.ShapeCollection; -import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line.LineAppearance; -import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Grid2D; - -import java.awt.event.KeyEvent; - - -public class Main extends WorldNavigationUserInputTracker { - - private static final Matrix MATRIX = new Matrix( - new Point3D() // position matrix in the center of the scene - ); - - public static void main(final String[] args) { - new Main().run(); - } - - /** - * Handle keyboard input. - */ - @Override - public boolean keyPressed(final KeyEvent event, final ViewPanel viewPanel) { - switch (event.getKeyChar()) { - case ' ': // space key - MATRIX.evolve(false); - break; - case 10: // ENTER - MATRIX.evolve(true); - break; - case 'c': // reset matrix - MATRIX.clear(); - break; - default: - return super.keyPressed(event, viewPanel); - } - return true; - } - - private void run() { - - // create application frame visible to the user - final ViewFrame viewFrame = new ViewFrame(); - - final ShapeCollection shapeCollection = viewFrame.getViewPanel() - .getRootShapeCollection(); - - // add matrix - shapeCollection.addShape(MATRIX); - - // add wire-frame grid (optional) - shapeCollection.addShape(createGrid()); - - final ViewPanel viewPanel = viewFrame.getViewPanel(); - - setAvatarOrientation(viewPanel.getAvatar()); - - // enable receiving of keyboard events - viewPanel.getKeyboardFocusStack().pushFocusOwner(this); - - // Done! World is built. So ensure screen is updated too. - viewPanel.repaintDuringNextViewUpdate(); - } - - /** - * Create pink wire-frame grid below (for decorative purposes). - */ - private Grid2D createGrid() { - return new Grid2D( - new Transform( - new Point3D( // Grid positioning: - 0, // center - 100, // below the main scene - 0), // center - - // Grid orientation: - 0, // no rotation along XZ axis - Math.PI / 2), // face down - - new Rectangle(800), // large enough, square grid - - 5, 5, // grid will be divided to 5x5 segments - - new LineAppearance(3, // line thickness - new Color("FF000050") // red and quite transparent - ) - ); - } - - /** - * Set Avatar/Camera initial position in the world. - */ - private void setAvatarOrientation(final Avatar avatar) { - avatar.setLocation(new Point3D(100, -50, -200)); - avatar.setAngleXZ(0.2f); - avatar.setAngleYZ(-0.7f); - } - -}