package tc.oc.pgm.regions; import org.bukkit.geometry.Cuboid; import org.bukkit.util.Vector; public class HalfspaceRegion extends Region.Impl { private final @Inspect Vector normal; // unit normal private final @Inspect double offset; // parameter of the plane equation public HalfspaceRegion(Vector origin, Vector normal) { this.normal = new Vector(normal).normalize(); this.offset = this.normal.dot(origin); } @Override public boolean contains(Vector point) { return this.normal.dot(point) >= offset; } @Override public Cuboid getBounds() { return Cuboid.unbounded(); } }