]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/OffsetBox.java
Tidy up
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / renderers / OffsetBox.java
1 package com.irtimaled.bbor.client.renderers;
2
3 import com.irtimaled.bbor.common.models.Coords;
4
5 class OffsetBox {
6     private final OffsetPoint min;
7     private final OffsetPoint max;
8
9     OffsetBox(Coords minCoords, Coords maxCoords) {
10         this.min = new OffsetPoint(minCoords);
11         this.max = new OffsetPoint(maxCoords).offset(1, 1, 1);
12     }
13
14     OffsetBox(double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
15         this.min = new OffsetPoint(minX, minY, minZ);
16         this.max = new OffsetPoint(maxX, maxY, maxZ);
17     }
18
19     OffsetBox(OffsetPoint min, OffsetPoint max) {
20         this.min = min;
21         this.max = max;
22     }
23
24     OffsetBox grow(double x, double y, double z) {
25         return new OffsetBox(min.offset(-x, -y, -z), max.offset(x, y, z));
26     }
27
28     OffsetBox offset(double x, double y, double z) {
29         return new OffsetBox(min.offset(x, y, z), max.offset(x, y, z));
30     }
31
32     OffsetBox nudge() {
33         double growXZ = 0.001F;
34         if (min.getY() == max.getY()) {
35             return grow(growXZ, 0, growXZ).offset(0, growXZ, 0);
36         }
37         return grow(growXZ, growXZ, growXZ);
38     }
39
40     OffsetPoint getMin() {
41         return min;
42     }
43
44     OffsetPoint getMax() {
45         return max;
46     }
47 }