X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Frenderer%2Fraster%2Fshapes%2FAbstractCoordinateShape.java;h=f2fdde00390a861a89ee1a8bf2e9764226742640;hb=de8fb260a5e99922231b1d0f437916e796ec6ccb;hp=d698ebce3b6ade40085bce7b922b17e5add6fc10;hpb=03447008b8ee26a6463d2cd03005dc26464863db;p=sixth-3d.git diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/AbstractCoordinateShape.java b/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/AbstractCoordinateShape.java index d698ebc..f2fdde0 100644 --- a/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/AbstractCoordinateShape.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/AbstractCoordinateShape.java @@ -1,42 +1,37 @@ /* - * Sixth 3D engine. Copyright ©2012-2016, 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.Vertex; +import eu.svjatoslav.sixth.e3d.math.TransformsPipeline; 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 TransformsPipeline transforms, final RenderAggregator aggregator, final RenderingContext renderingContext) { double accumulatedZ = 0; boolean paint = true; - for (final GeometryCoordinate geometryPoint : coordinates) { + for (final Vertex geometryPoint : coordinates) { geometryPoint.transform(transforms, renderingContext); accumulatedZ += geometryPoint.transformedCoordinate.z; - if (!geometryPoint.transformedCoordinate.withinDrawingLimits()) + if (!geometryPoint.transformedCoordinate.isVisible()) paint = false; }