From 70f29a52f58733eb43d5f69127cc0e521449a897 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Proch=C3=A1zka?= <david@prochazka.dev> Date: Mon, 15 Mar 2021 17:09:16 +0100 Subject: [PATCH] ADD: object to node distance javadoc --- src/mhtree/ObjectToNodeDistance.java | 45 ++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/src/mhtree/ObjectToNodeDistance.java b/src/mhtree/ObjectToNodeDistance.java index 734a72c..ecd6910 100644 --- a/src/mhtree/ObjectToNodeDistance.java +++ b/src/mhtree/ObjectToNodeDistance.java @@ -2,33 +2,60 @@ package mhtree; import messif.objects.LocalAbstractObject; +/** + * Specifies possible distances between an object and a node. + */ public enum ObjectToNodeDistance { - NEAREST_HULL_OBJECT { + /** + * Average distance between {@code object} and every hull object in {@code node}. + */ + AVERAGE { @Override public double getDistance(LocalAbstractObject object, Node node) { - return node.getHullObjects().stream() + return node + .getHullObjects() + .stream() .mapToDouble(object::getDistance) - .min() - .orElse(Double.MAX_VALUE); + .sum() / node.getHullObjects().size(); } }, - FURTHEST_HULL_OBJECT { + + /** + * Distance between {@code object} and {@code node}'s furthest hull object. + */ + FURTHEST { @Override public double getDistance(LocalAbstractObject object, Node node) { - return node.getHullObjects().stream() + return node + .getHullObjects() + .stream() .mapToDouble(object::getDistance) .max() .orElse(Double.MIN_VALUE); } }, - AVERAGE_DISTANCE { + + /** + * Distance between {@code object} and {@code node}'s nearest hull object. + */ + NEAREST { @Override public double getDistance(LocalAbstractObject object, Node node) { - return node.getHullObjects().stream() + return node + .getHullObjects() + .stream() .mapToDouble(object::getDistance) - .sum() / node.getHullObjects().size(); + .min() + .orElse(Double.MAX_VALUE); } }; + /** + * Returns the distance between {@code object} and {@code node}. + * + * @param object an object + * @param node a node + * @return the distance between {@code object} and {@code node} + */ public abstract double getDistance(LocalAbstractObject object, Node node); } -- GitLab