Updated readability of the code.
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / renderer / raster / shapes / AbstractCoordinateShape.java
index 5e91573..7f0daf1 100644 (file)
@@ -1,42 +1,37 @@
 /*
- * Sixth 3D engine. Copyright ©2012-2017, 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
- * or later as published by the Free Software Foundation.
- *
+ * Sixth 3D engine. Author: Svjatoslav Agejenko. 
+ * This project is released under Creative Commons Zero (CC0) license.
  */
-
 package eu.svjatoslav.sixth.e3d.renderer.raster.shapes;
 
-import eu.svjatoslav.sixth.e3d.geometry.GeometryCoordinate;
 import eu.svjatoslav.sixth.e3d.geometry.Point3D;
-import eu.svjatoslav.sixth.e3d.geometry.TransformPipe;
 import eu.svjatoslav.sixth.e3d.gui.RenderingContext;
+import eu.svjatoslav.sixth.e3d.math.TransformsStack;
+import eu.svjatoslav.sixth.e3d.math.Vertex;
 import eu.svjatoslav.sixth.e3d.renderer.raster.RenderAggregator;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
 public abstract class AbstractCoordinateShape extends AbstractShape {
 
-    public static final AtomicInteger lastShapeId = new AtomicInteger();
+    private static final AtomicInteger lastShapeId = new AtomicInteger();
     public final int shapeId;
+    public final Vertex[] coordinates;
     public double onScreenZ;
-    public GeometryCoordinate[] coordinates;
 
     public AbstractCoordinateShape(final int pointsCount) {
-        coordinates = new GeometryCoordinate[pointsCount];
+        coordinates = new Vertex[pointsCount];
         for (int i = 0; i < pointsCount; i++)
-            coordinates[i] = new GeometryCoordinate();
+            coordinates[i] = new Vertex();
 
         shapeId = lastShapeId.getAndIncrement();
     }
 
-    public AbstractCoordinateShape(final Point3D... locationPoints) {
-        coordinates = new GeometryCoordinate[locationPoints.length];
+    public AbstractCoordinateShape(final Point3D... vertexes) {
+        coordinates = new Vertex[vertexes.length];
 
-        for (int i = 0; i < locationPoints.length; i++)
-            coordinates[i] = new GeometryCoordinate(locationPoints[i]);
+        for (int i = 0; i < vertexes.length; i++)
+            coordinates[i] = new Vertex(vertexes[i]);
 
         shapeId = lastShapeId.getAndIncrement();
     }
@@ -48,19 +43,19 @@ public abstract class AbstractCoordinateShape extends AbstractShape {
     public abstract void paint(RenderingContext renderBuffer);
 
     @Override
-    public void transform(final TransformPipe transforms,
+    public void transform(final TransformsStack transforms,
                           final RenderAggregator aggregator,
                           final RenderingContext renderingContext) {
 
         double accumulatedZ = 0;
         boolean paint = true;
 
-        for (final GeometryCoordinate geometryPoint : coordinates) {
-            geometryPoint.transform(transforms, renderingContext);
+        for (final Vertex geometryPoint : coordinates) {
+            geometryPoint.calculateLocationRelativeToViewer(transforms, renderingContext);
 
             accumulatedZ += geometryPoint.transformedCoordinate.z;
 
-            if (!geometryPoint.transformedCoordinate.withinDrawingLimits())
+            if (!geometryPoint.transformedCoordinate.isVisible())
                 paint = false;
         }