From f4bac0dbb0322afef1e4898d4daa6e732f3062c0 Mon Sep 17 00:00:00 2001 From: fullwall Date: Wed, 31 Jul 2013 00:16:14 +0800 Subject: [PATCH] Add some helper methods to Region3D --- .../api/util/prtree/Region3D.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/net/citizensnpcs/api/util/prtree/Region3D.java b/src/main/java/net/citizensnpcs/api/util/prtree/Region3D.java index c175ecf8..ade7c36d 100644 --- a/src/main/java/net/citizensnpcs/api/util/prtree/Region3D.java +++ b/src/main/java/net/citizensnpcs/api/util/prtree/Region3D.java @@ -87,4 +87,27 @@ public double getMin(int axis, Region3D t) { return t.getMin(axis); } } + + public static DistanceCalculator> distanceCalculator() { + return new DistanceCalculator>() { + @Override + public double distanceTo(Region3D t, PointND p) { + double x = p.getOrd(0); + double y = p.getOrd(1); + double z = p.getOrd(2); + return Math.sqrt(Math.pow(x - ((t.getMin(0) + t.getMax(0)) / 2), 2) + + Math.pow(y - ((t.getMin(1) + t.getMax(1)) / 2), 2) + + Math.pow(z - ((t.getMin(2) + t.getMax(2)) / 2), 2)); + } + }; + } + + public static NodeFilter> alwaysAcceptNodeFilter() { + return new NodeFilter>() { + @Override + public boolean accept(Region3D t) { + return true; + } + }; + } }