/*
- * 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;
import eu.svjatoslav.sixth.e3d.geometry.Point3D;
-import eu.svjatoslav.sixth.e3d.geometry.Transform;
-import eu.svjatoslav.sixth.e3d.geometry.TransformPipe;
import eu.svjatoslav.sixth.e3d.gui.Avatar;
import eu.svjatoslav.sixth.e3d.gui.RenderingContext;
-import eu.svjatoslav.sixth.e3d.gui.ViewContext;
+import eu.svjatoslav.sixth.e3d.gui.ViewPanel;
+import eu.svjatoslav.sixth.e3d.math.Transform;
+import eu.svjatoslav.sixth.e3d.math.TransformsStack;
import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractShape;
import java.util.ArrayList;
public class ShapeCollection {
private final RenderAggregator aggregator = new RenderAggregator();
- private final TransformPipe transformPipe = new TransformPipe();
+ private final TransformsStack transformPipe = new TransformsStack();
private final List<AbstractShape> shapes = new ArrayList<>();
public synchronized void addShape(final AbstractShape shape) {
shapes.clear();
}
- public synchronized void paint(final ViewContext viewContext,
+ public synchronized void paint(final ViewPanel viewPanel,
final RenderingContext renderingContext) {
renderingContext.frameNumber++;
aggregator.reset();
transformPipe.clear();
- // translate scene according to avatar current location
- final Avatar avatar = viewContext.getAvatar();
+ // translate scene according to camera current location
+ final Avatar avatar = viewPanel.getAvatar();
// rotate scene according to avatar looking direction
transformPipe.addTransform(new Transform(new Point3D(), avatar