1 package com.irtimaled.bbor.client.models;
3 import com.irtimaled.bbor.client.renderers.AbstractRenderer;
4 import com.irtimaled.bbor.client.renderers.SphereRenderer;
5 import com.irtimaled.bbor.common.BoundingBoxType;
6 import com.irtimaled.bbor.common.interop.CommonInterop;
7 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
8 import com.irtimaled.bbor.common.models.Coords;
10 public class BoundingBoxSphere extends AbstractBoundingBox {
11 private static final AbstractRenderer<BoundingBoxSphere> RENDERER = CommonInterop.registerRenderer(BoundingBoxSphere.class, () -> new SphereRenderer());
13 private final double radius;
14 private final double minX;
15 private final double minZ;
16 private final double maxX;
17 private final double maxZ;
18 private final Point point;
20 public BoundingBoxSphere(Point point, double radius, BoundingBoxType type) {
25 Coords center = point.getCoords();
26 this.minX = center.getX() - radius;
27 this.minZ = center.getZ() - radius;
28 this.maxX = center.getX() + radius;
29 this.maxZ = center.getZ() + radius;
33 public Boolean intersectsBounds(int minX, int minZ, int maxX, int maxZ) {
34 return this.maxX >= minX &&
41 protected double getDistanceX(double x) {
42 return x - point.getX();
46 protected double getDistanceY(double y) {
47 return y - point.getY();
51 protected double getDistanceZ(double z) {
52 return z - point.getZ();
55 public double getRadius() {
59 public Point getPoint() {
64 public AbstractRenderer<?> getRenderer() {