Changed license to Creative Commons Zero (CC0).
[sixth-3d-demos.git] / src / main / java / eu / svjatoslav / sixth / e3d / examples / RandomPolygonsDemo.java
index 3640e4b..0d34265 100755 (executable)
@@ -1,10 +1,8 @@
 /*
- * Sixth 3D engine demos. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * Sixth 3D engine demos. Author: Svjatoslav Agejenko. 
+ * This project is released under Creative Commons Zero (CC0) license.
  *
- * 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
- * or later as published by the Free Software Foundation.
- */
+*/
 
 package eu.svjatoslav.sixth.e3d.examples;
 
@@ -18,28 +16,38 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe.Grid3D
 
 public class RandomPolygonsDemo {
 
+    private static final double POLYGON_AVERAGE_SIZE = 130;
+    private static final int POLYGON_COUNT = 1000;
+
     private static void addRandomPolygon(final ShapeCollection geometryCollection) {
         final Point3D polygonLocation = getRandomPoint(1000);
 
-        final double polygonAverageSize = 30;
-
         final Point3D point1 = new Point3D(polygonLocation);
-        point1.add(getRandomPoint(polygonAverageSize));
+        point1.add(getRandomPoint(POLYGON_AVERAGE_SIZE));
 
         final Point3D point2 = new Point3D(polygonLocation);
-        point2.add(getRandomPoint(polygonAverageSize));
+        point2.add(getRandomPoint(POLYGON_AVERAGE_SIZE));
 
         final Point3D point3 = new Point3D(polygonLocation);
-        point3.add(getRandomPoint(polygonAverageSize));
+        point3.add(getRandomPoint(POLYGON_AVERAGE_SIZE));
 
-        final Color color = new Color(Math.random(), Math.random(),
-                Math.random(), 0.5d);
+        final Color color = new Color(
+                getColorChannelBrightness(),
+                getColorChannelBrightness(),
+                getColorChannelBrightness(),
+                1);
 
         final SolidPolygon polygon = new SolidPolygon(point1, point2, point3,
                 color);
         geometryCollection.addShape(polygon);
     }
 
+    /* I don't want very dark polygons, so ensure there is at least some
+     * brightness present. */
+    private static double getColorChannelBrightness() {
+        return Math.random() * 0.7 + 0.3f;
+    }
+
     private static Point3D getRandomPoint(final double amplitude) {
         return new Point3D((Math.random() * amplitude * 2d) - amplitude,
                 (Math.random() * amplitude * 2d) - amplitude, (Math.random()
@@ -51,8 +59,8 @@ public class RandomPolygonsDemo {
 
         final ViewFrame viewFrame = new ViewFrame();
 
-        final ShapeCollection shapeCollection = viewFrame.getView()
-                .getContext().getRootShapeCollection();
+        final ShapeCollection shapeCollection = viewFrame.getViewPanel()
+                .getRootShapeCollection();
 
         // add grid
         final LineAppearance appearance = new LineAppearance(5, new Color(100,
@@ -62,7 +70,7 @@ public class RandomPolygonsDemo {
                 new Point3D(-1000, 1000, 1000), 300, appearance));
 
         // add random polygons
-        for (int i = 0; i < 3000; i++)
+        for (int i = 0; i < POLYGON_COUNT; i++)
             addRandomPolygon(shapeCollection);
 
     }