d19f73915cb28aef703e692cc87a6b835ec6f29f
[sixth-3d.git] / src / main / java / eu / svjatoslav / sixth / e3d / renderer / raster / shapes / composite / wireframe / WireframeBox.java
1 /*
2  * Sixth 3D engine. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of version 3 of the GNU Lesser General Public License
6  * or later as published by the Free Software Foundation.
7  *
8  */
9
10 package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.wireframe;
11
12 import eu.svjatoslav.sixth.e3d.geometry.Box;
13 import eu.svjatoslav.sixth.e3d.geometry.Point3D;
14 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.line.LineAppearance;
15 import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.composite.base.AbstractCompositeShape;
16
17 public class WireframeBox extends AbstractCompositeShape {
18
19     public WireframeBox(final Box box,
20                         final LineAppearance appearance) {
21
22         this(box.p1, box.p2, appearance);
23     }
24
25     public WireframeBox(final Point3D p1, final Point3D p2,
26                         final LineAppearance appearance) {
27         super();
28
29         addShape(appearance.getLine(new Point3D(p1.x, p1.y, p1.z), new Point3D(
30                 p2.x, p1.y, p1.z)));
31         addShape(appearance.getLine(new Point3D(p1.x, p2.y, p1.z), new Point3D(
32                 p2.x, p2.y, p1.z)));
33         addShape(appearance.getLine(new Point3D(p1.x, p1.y, p1.z), new Point3D(
34                 p1.x, p2.y, p1.z)));
35         addShape(appearance.getLine(new Point3D(p2.x, p1.y, p1.z), new Point3D(
36                 p2.x, p2.y, p1.z)));
37
38         addShape(appearance.getLine(new Point3D(p1.x, p1.y, p2.z), new Point3D(
39                 p2.x, p1.y, p2.z)));
40         addShape(appearance.getLine(new Point3D(p1.x, p2.y, p2.z), new Point3D(
41                 p2.x, p2.y, p2.z)));
42         addShape(appearance.getLine(new Point3D(p1.x, p1.y, p2.z), new Point3D(
43                 p1.x, p2.y, p2.z)));
44         addShape(appearance.getLine(new Point3D(p2.x, p1.y, p2.z), new Point3D(
45                 p2.x, p2.y, p2.z)));
46
47         addShape(appearance.getLine(new Point3D(p1.x, p1.y, p1.z), new Point3D(
48                 p1.x, p1.y, p2.z)));
49         addShape(appearance.getLine(new Point3D(p1.x, p2.y, p1.z), new Point3D(
50                 p1.x, p2.y, p2.z)));
51         addShape(appearance.getLine(new Point3D(p2.x, p1.y, p1.z), new Point3D(
52                 p2.x, p1.y, p2.z)));
53         addShape(appearance.getLine(new Point3D(p2.x, p2.y, p1.z), new Point3D(
54                 p2.x, p2.y, p2.z)));
55     }
56
57 }