From 39aab8eb9249bb15a557a9e76db8e0d311f2d2de Mon Sep 17 00:00:00 2001 From: Daniel Schramm <xschramm@fi.muni.cz> Date: Tue, 29 Jun 2021 16:46:14 +0200 Subject: [PATCH] PrioritySphere visitor clears list of priorities when a facet is processed repeatedly --- .../analyst/visitors/mesh/PrioritySphere.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/PrioritySphere.java b/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/PrioritySphere.java index 533016db..a7c1d414 100644 --- a/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/PrioritySphere.java +++ b/Comparison/src/main/java/cz/fidentis/analyst/visitors/mesh/PrioritySphere.java @@ -67,6 +67,8 @@ public class PrioritySphere extends MeshVisitor { public void visitMeshFacet(MeshFacet facet) { final List<MeshPoint> vertices = facet.getVertices(); + final List<Double> prioritiesList = new ArrayList<>(vertices.size()); + for (int i = 0; i < vertices.size(); i++) { final double distance = sphereCenterPosition.distance(vertices.get(i).getPosition()); final double priority; @@ -76,10 +78,11 @@ public class PrioritySphere extends MeshVisitor { priority = 1 - distance / sphereRadius; } - synchronized(this) { - priorities.computeIfAbsent(facet, meshFacet -> new ArrayList<>()) - .add(priority); - } + prioritiesList.add(priority); + } + + synchronized(this) { + priorities.put(facet, prioritiesList); } } } -- GitLab