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%2FOctreeDemo.java;h=41239657a8c3faff895a2d970baf7613d855aba8;hp=9b87aac939b09314878fc307f85bbc67890218f7;hb=8ef719db477953b45babc141ed63b6a76244ba90;hpb=2150c62adc9f6b7696884422ffc47767f784fd9d diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/examples/OctreeDemo.java b/src/main/java/eu/svjatoslav/sixth/e3d/examples/OctreeDemo.java index 9b87aac..4123965 100755 --- a/src/main/java/eu/svjatoslav/sixth/e3d/examples/OctreeDemo.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/examples/OctreeDemo.java @@ -1,5 +1,5 @@ /* - * Sixth 3D engine demos. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * Sixth 3D engine demos. Copyright ©2012-2020, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu * * This program is free software; you can redistribute it and/or * modify it under the terms of version 3 of the GNU Lesser General Public License @@ -9,10 +9,10 @@ package eu.svjatoslav.sixth.e3d.examples; import eu.svjatoslav.sixth.e3d.geometry.Point3D; -import eu.svjatoslav.sixth.e3d.math.Transform; -import eu.svjatoslav.sixth.e3d.gui.ViewContext; import eu.svjatoslav.sixth.e3d.gui.ViewFrame; -import eu.svjatoslav.sixth.e3d.gui.humaninput.WorldNavigationTracker; +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.octree.OctreeVolume; import eu.svjatoslav.sixth.e3d.renderer.octree.raytracer.Camera; import eu.svjatoslav.sixth.e3d.renderer.octree.raytracer.LightSource; @@ -29,7 +29,7 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Grid3D import java.awt.event.KeyEvent; import java.util.Vector; -public class OctreeDemo extends WorldNavigationTracker { +public class OctreeDemo extends WorldNavigationUserInputTracker { private static final double magnification = 5; private final LineAppearance gridAppearance = new LineAppearance(40, new Color(255, @@ -37,7 +37,7 @@ public class OctreeDemo extends WorldNavigationTracker { private final Vector lights = new Vector<>(); private OctreeVolume octreeVolume; private ShapeCollection shapeCollection; - private ViewContext context; + private ViewPanel viewPanel; public static void main(final String[] args) { new OctreeDemo().init(); @@ -90,13 +90,13 @@ public class OctreeDemo extends WorldNavigationTracker { private void init() { final ViewFrame viewFrame = new ViewFrame(); - context = viewFrame.getView().getContext(); + viewPanel = viewFrame.getViewPanel(); - context.getAvatar().setLocation(new Point3D(0, -30, -300)); + viewPanel.getAvatar().setLocation(new Point3D(0, -30, -300)); octreeVolume = new OctreeVolume(); - shapeCollection = context.getRootShapeCollection(); + shapeCollection = viewPanel.getRootShapeCollection(); shapeCollection.addShape(new Grid3D( new Point3D(-10000, -10000, -10000), new Point3D(10000, 10000, @@ -124,18 +124,18 @@ public class OctreeDemo extends WorldNavigationTracker { Color.WHITE, Color.PURPLE); shapeCollection.addShape(message); - context.getKeyboardFocusTracker().setFocusOwner(this); - context.getView().repaintDuringNextViewUpdate(); + viewPanel.getKeyboardFocusStack().pushFocusOwner(this); + viewPanel.repaintDuringNextViewUpdate(); } @Override - public void keyPressed(final KeyEvent event, final ViewContext viewContext) { + public boolean keyPressed(final KeyEvent event, final ViewPanel viewPanel) { if ('r' == event.getKeyChar()) { raytrace(); - return; + return true; } - super.keyPressed(event, viewContext); + return super.keyPressed(event, viewPanel); } private void putPixel(final int x, final int y, final int z, @@ -159,12 +159,12 @@ public class OctreeDemo extends WorldNavigationTracker { private void raytrace() { // create and add camera object to scene - final Camera camera = new Camera(context.getAvatar(), magnification); + final Camera camera = new Camera(viewPanel.getAvatar(), magnification); shapeCollection.addShape(camera); // initialize and start Raytracer in a separate thread final RayTracer rayTracer = new RayTracer(camera.getTexture(), - octreeVolume, lights, camera, context.getView()); + octreeVolume, lights, camera, viewPanel); final Thread thread = new Thread(rayTracer); thread.start(); }