From 7848d415e4b9e9cd584a6a77f0eb66acc7b97b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Proch=C3=A1zka?= <david@prochazka.dev> Date: Fri, 2 Apr 2021 09:28:47 +0200 Subject: [PATCH] ADD: optimization when the new node is build on every object, public methods --- src/mhtree/Node.java | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/mhtree/Node.java b/src/mhtree/Node.java index 2bfcdaa..46f16bc 100644 --- a/src/mhtree/Node.java +++ b/src/mhtree/Node.java @@ -11,7 +11,7 @@ import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -abstract class Node implements Serializable { +public abstract class Node implements Serializable { /** * Serialization ID @@ -38,9 +38,32 @@ abstract class Node implements Serializable { .flatMap(Collection::stream) .collect(Collectors.toList()); + if (nodes.size() == distances.getObjectCount()) { + return new InternalNode(distances, insertType, objectToNodeDistance, nodes); + } + return new InternalNode(distances.getSubset(objects), insertType, objectToNodeDistance, nodes); } + /** + * Returns a list of hull objects. + * + * @return a list of hull objects + */ + public List<LocalAbstractObject> getHullObjects() { + return hull.getHull(); + } + + /** + * Returns true if the {@code object} is covered. + * + * @param object the object to be checked + * @return true if the {@code object} is covered. + */ + public boolean isCovered(LocalAbstractObject object) { + return hull.isExternalCovered(object); + } + @Override public String toString() { return "Node{hull=" + hull + '}'; @@ -66,10 +89,6 @@ abstract class Node implements Serializable { return !isLeaf(); } - protected List<LocalAbstractObject> getHullObjects() { - return hull.getHull(); - } - protected int getHullObjectCount() { return hull.getRepresentativesCount(); } -- GitLab