]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/common/models/BoundingBoxSphere.java
Add conduit processing and rendering
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / common / models / BoundingBoxSphere.java
1 package com.irtimaled.bbor.common.models;
2
3 import com.irtimaled.bbor.common.BoundingBoxType;
4
5 public class BoundingBoxSphere extends AbstractBoundingBox {
6     private final Coords center;
7     private final Integer radius;
8     private final int minX;
9     private final int minZ;
10     private final int maxX;
11     private final int maxZ;
12
13     private Double centerOffsetX = 0d;
14     private Double centerOffsetY = 0d;
15     private Double centerOffsetZ = 0d;
16
17     protected BoundingBoxSphere(Coords center, Integer radius, BoundingBoxType type) {
18         super(type);
19         this.center = center;
20         this.radius = radius;
21
22         this.minX = center.getX() - radius;
23         this.minZ = center.getZ() - radius;
24         this.maxX = center.getX() + radius;
25         this.maxZ = center.getZ() + radius;
26     }
27
28     @Override
29     public Boolean intersectsBounds(int minX, int minZ, int maxX, int maxZ) {
30         return this.maxX >= minX &&
31                 this.maxZ >= minZ &&
32                 this.minX <= maxX &&
33                 this.minZ <= maxZ;
34     }
35
36     public Integer getRadius() {
37         return radius;
38     }
39
40     public Coords getCenter() {
41         return center;
42     }
43
44     public Double getCenterOffsetX() {
45         return centerOffsetX;
46     }
47
48     public Double getCenterOffsetY() {
49         return centerOffsetY;
50     }
51
52     public Double getCenterOffsetZ() {
53         return centerOffsetZ;
54     }
55
56     public void setCenterOffsets(double x, double y, double z) {
57         this.centerOffsetX = x;
58         this.centerOffsetY = y;
59         this.centerOffsetZ = z;
60     }
61 }