2 * Sixth 3D engine. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
5 package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.solid;
7 import eu.svjatoslav.sixth.e3d.geometry.Point3D;
8 import eu.svjatoslav.sixth.e3d.renderer.raster.Color;
9 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.solidpolygon.SolidPolygon;
10 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape;
12 public class SolidPolygonRectangularBox extends AbstractCompositeShape {
15 * Draws solid rectangular box between using center and size.
17 * @param center center of the box
18 * @param size size of the box
19 * @param color box color
21 public SolidPolygonRectangularBox(final Point3D center, final double size, final Color color) {
23 new Point3D(center.x - (size / 2), center.y - (size / 2), center.z - (size / 2)), //
24 new Point3D(center.x + (size / 2), center.y + (size / 2), center.z + (size / 2)), //
29 * Draws solid rectangular box between 2 given points in 3D space.
31 public SolidPolygonRectangularBox(final Point3D p1, final Point3D p7, final Color color) {
34 final Point3D p2 = new Point3D(p7.x, p1.y, p1.z);
35 final Point3D p3 = new Point3D(p7.x, p1.y, p7.z);
36 final Point3D p4 = new Point3D(p1.x, p1.y, p7.z);
38 final Point3D p5 = new Point3D(p1.x, p7.y, p1.z);
39 final Point3D p6 = new Point3D(p7.x, p7.y, p1.z);
40 final Point3D p8 = new Point3D(p1.x, p7.y, p7.z);
42 addShape(new SolidPolygon(p1, p2, p3, color));
43 addShape(new SolidPolygon(p1, p4, p3, color));
45 addShape(new SolidPolygon(p5, p6, p7, color));
46 addShape(new SolidPolygon(p5, p8, p7, color));
48 addShape(new SolidPolygon(p4, p3, p8, color));
49 addShape(new SolidPolygon(p3, p7, p8, color));
51 addShape(new SolidPolygon(p1, p5, p4, color));
52 addShape(new SolidPolygon(p4, p5, p8, color));
54 addShape(new SolidPolygon(p1, p2, p5, color));
55 addShape(new SolidPolygon(p2, p6, p5, color));
57 addShape(new SolidPolygon(p2, p6, p3, color));
58 addShape(new SolidPolygon(p6, p7, p3, color));