+++ /dev/null
-/*
- * Sixth 3D engine demos. Author: Svjatoslav Agejenko.
- * This project is released under Creative Commons Zero (CC0) license.
- *
- */
-
-package eu.svjatoslav.sixth.e3d.examples;
-
-import eu.svjatoslav.sixth.e3d.geometry.Point3D;
-import eu.svjatoslav.sixth.e3d.gui.ViewFrame;
-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.basic.solidpolygon.SolidPolygon;
-import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.WireframeSphere;
-
-/**
- * Demo showing a sine heightmap surface with a central wireframe sphere.
- * Two wobbly surfaces are positioned above and below the sphere.
- */
-public class GraphDemo {
-
- /**
- * Creates a new GraphDemo instance.
- */
- public GraphDemo() {
- }
-
- /** Frequency of the wave pattern in the wobbly surfaces. */
- private static final double WAVE_FREQUENCY = 50d;
- /** Amplitude of the wave pattern in the wobbly surfaces. */
- private static final double WAVE_AMPLITUDE = 50d;
- /** Color for the square plates in the wobbly surfaces. */
- private static final Color SQUARE_PLATE_COLOR = new Color("88F7");
- /** Scale factor for the graph rendering. */
- private static final double GRAPH_SCALE = 50d;
-
- /**
- * Creates a single square plate at the specified position.
- * @param shapeCollection the collection to add the plate to
- * @param y the Y coordinate (elevation)
- * @param x the X coordinate
- * @param z the Z coordinate
- */
- private static void makeSquarePlate(final ShapeCollection shapeCollection,
- final double y, final double x, final double z) {
- final Point3D p1 = new Point3D(x, y, z);
- final Point3D p2 = new Point3D(x + 20, y, z);
- final Point3D p3 = new Point3D(x, y, z + 20);
- final Point3D p4 = new Point3D(x + 20, y, z + 20);
- final SolidPolygon polygon1 = new SolidPolygon(p1, p2, p3, SQUARE_PLATE_COLOR);
- final SolidPolygon polygon2 = new SolidPolygon(p4, p2, p3, SQUARE_PLATE_COLOR);
- shapeCollection.addShape(polygon1);
- shapeCollection.addShape(polygon2);
- }
-
- /**
- * Creates a wobbly surface composed of square plates arranged in a wave pattern.
- * @param shapeCollection the collection to add plates to
- * @param surfaceElevation the base Y elevation of the surface
- */
- private static void addWobblySurface(final ShapeCollection shapeCollection,
- final double surfaceElevation) {
- for (double x = -500; x < 500; x += 20)
- for (double z = -500; z < 500; z += 20) {
-
- final double distanceFromCenter = Math.sqrt((x * x) + (z * z));
-
- double plateElevation = Math.sin(distanceFromCenter / WAVE_FREQUENCY) * WAVE_AMPLITUDE;
-
- makeSquarePlate(shapeCollection, plateElevation + surfaceElevation, x,
- z);
- }
- }
-
- /**
- * Entry point for the graph demo.
- * @param args command line arguments (ignored)
- */
- public static void main(final String[] args) {
-
- final ViewFrame viewFrame = new ViewFrame();
- final ShapeCollection geometryCollection = viewFrame.getViewPanel()
- .getRootShapeCollection();
-
- addSphere(geometryCollection);
- addWobblySurface(geometryCollection, 200);
- addWobblySurface(geometryCollection, -200);
-
- setCameraLocation(viewFrame);
-
- viewFrame.getViewPanel().ensureRenderThreadStarted();
- }
-
- /**
- * Adds a wireframe sphere at the center of the scene.
- * @param geometryCollection the collection to add the sphere to
- */
- private static void addSphere(ShapeCollection geometryCollection) {
- geometryCollection.addShape(new WireframeSphere(new Point3D(0, 0, 0),
- 100,
- new LineAppearance(
- 4,
- new Color(255,0, 0, 30))
- ));
- }
-
- /**
- * Sets the camera to an initial viewing position.
- * @param viewFrame the view frame whose camera to configure
- */
- private static void setCameraLocation(ViewFrame viewFrame) {
- viewFrame.getViewPanel().getCamera().getTransform().setTranslation(new Point3D(0, 0, -500));
- }
-
-}
--- /dev/null
+/*
+ * Sixth 3D engine demos. Author: Svjatoslav Agejenko.
+ * This project is released under Creative Commons Zero (CC0) license.
+ *
+ */
+
+package eu.svjatoslav.sixth.e3d.examples;
+
+import eu.svjatoslav.sixth.e3d.geometry.Point3D;
+import eu.svjatoslav.sixth.e3d.gui.ViewFrame;
+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.basic.solidpolygon.SolidPolygon;
+import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.WireframeSphere;
+
+/**
+ * Demo showing a sine heightmap surface with a central wireframe sphere.
+ * Two wobbly surfaces are positioned above and below the sphere.
+ */
+public class SineHeightmap {
+
+ /**
+ * Creates a new GraphDemo instance.
+ */
+ public SineHeightmap() {
+ }
+
+ /** Frequency of the wave pattern in the wobbly surfaces. */
+ private static final double WAVE_FREQUENCY = 50d;
+ /** Amplitude of the wave pattern in the wobbly surfaces. */
+ private static final double WAVE_AMPLITUDE = 50d;
+ /** Color for the square plates in the wobbly surfaces. */
+ private static final Color SQUARE_PLATE_COLOR = new Color("88F7");
+ /** Scale factor for the graph rendering. */
+ private static final double GRAPH_SCALE = 50d;
+
+ /**
+ * Creates a single square plate at the specified position.
+ * @param shapeCollection the collection to add the plate to
+ * @param y the Y coordinate (elevation)
+ * @param x the X coordinate
+ * @param z the Z coordinate
+ */
+ private static void makeSquarePlate(final ShapeCollection shapeCollection,
+ final double y, final double x, final double z) {
+ final Point3D p1 = new Point3D(x, y, z);
+ final Point3D p2 = new Point3D(x + 20, y, z);
+ final Point3D p3 = new Point3D(x, y, z + 20);
+ final Point3D p4 = new Point3D(x + 20, y, z + 20);
+ final SolidPolygon polygon1 = new SolidPolygon(p1, p2, p3, SQUARE_PLATE_COLOR);
+ final SolidPolygon polygon2 = new SolidPolygon(p4, p2, p3, SQUARE_PLATE_COLOR);
+ shapeCollection.addShape(polygon1);
+ shapeCollection.addShape(polygon2);
+ }
+
+ /**
+ * Creates a wobbly surface composed of square plates arranged in a wave pattern.
+ * @param shapeCollection the collection to add plates to
+ * @param surfaceElevation the base Y elevation of the surface
+ */
+ private static void addWobblySurface(final ShapeCollection shapeCollection,
+ final double surfaceElevation) {
+ for (double x = -500; x < 500; x += 20)
+ for (double z = -500; z < 500; z += 20) {
+
+ final double distanceFromCenter = Math.sqrt((x * x) + (z * z));
+
+ double plateElevation = Math.sin(distanceFromCenter / WAVE_FREQUENCY) * WAVE_AMPLITUDE;
+
+ makeSquarePlate(shapeCollection, plateElevation + surfaceElevation, x,
+ z);
+ }
+ }
+
+ /**
+ * Entry point for the graph demo.
+ * @param args command line arguments (ignored)
+ */
+ public static void main(final String[] args) {
+
+ final ViewFrame viewFrame = new ViewFrame();
+ final ShapeCollection geometryCollection = viewFrame.getViewPanel()
+ .getRootShapeCollection();
+
+ addSphere(geometryCollection);
+ addWobblySurface(geometryCollection, 200);
+ addWobblySurface(geometryCollection, -200);
+
+ setCameraLocation(viewFrame);
+
+ viewFrame.getViewPanel().ensureRenderThreadStarted();
+ }
+
+ /**
+ * Adds a wireframe sphere at the center of the scene.
+ * @param geometryCollection the collection to add the sphere to
+ */
+ private static void addSphere(ShapeCollection geometryCollection) {
+ geometryCollection.addShape(new WireframeSphere(new Point3D(0, 0, 0),
+ 100,
+ new LineAppearance(
+ 4,
+ new Color(255,0, 0, 30))
+ ));
+ }
+
+ /**
+ * Sets the camera to an initial viewing position.
+ * @param viewFrame the view frame whose camera to configure
+ */
+ private static void setCameraLocation(ViewFrame viewFrame) {
+ viewFrame.getViewPanel().getCamera().getTransform().setTranslation(new Point3D(0, 0, -500));
+ }
+
+}
package eu.svjatoslav.sixth.e3d.examples.launcher;
-import eu.svjatoslav.sixth.e3d.examples.GraphDemo;
+import eu.svjatoslav.sixth.e3d.examples.SineHeightmap;
import eu.svjatoslav.sixth.e3d.examples.MathGraphsDemo;
import eu.svjatoslav.sixth.e3d.examples.MinimalExample;
import eu.svjatoslav.sixth.e3d.examples.OctreeDemo;
@Override
public void actionPerformed(final ActionEvent e) {
- GraphDemo.main(null);
+ SineHeightmap.main(null);
}
}