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