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