]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/renderers/OffsetBox.java
e2f1050e462a505465f8549f909bcf13ef9120af
[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 nudge() {
29         double growXZ = 0.001F;
30         if (min.getY() == max.getY()) {
31             return new OffsetBox(min.offset(-growXZ, growXZ, -growXZ), max.offset(growXZ, growXZ, growXZ));
32         }
33         return grow(growXZ, growXZ, growXZ);
34     }
35
36     OffsetPoint getMin() {
37         return min;
38     }
39
40     OffsetPoint getMax() {
41         return max;
42     }
43 }