Skip to content

Commit 8b852cc

Browse files
authored
Unify checks when applying merge action in editable mapping (#8558)
1 parent 3e4d967 commit 8b852cc

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

webknossos-tracingstore/app/com/scalableminds/webknossos/tracingstore/tracings/editablemapping/EditableMappingUpdater.scala

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ class EditableMappingUpdater(
347347
agglomerateId2 <- agglomerateIdForSegmentId(segmentId2) ?~> "Failed to look up agglomerate ids for merge action segments"
348348
agglomerateGraph1 <- agglomerateGraphForIdWithFallback(mapping, agglomerateId1) ?~> s"Failed to get agglomerate graph for id $agglomerateId1"
349349
agglomerateGraph2 <- agglomerateGraphForIdWithFallback(mapping, agglomerateId2) ?~> s"Failed to get agglomerate graph for id $agglomerateId2"
350+
_ <- Fox.fromBool(agglomerateGraph1.segments.contains(segmentId1)) ?~> s"Segment $segmentId1 as queried by position ${update.segmentPosition1} is not contained in fetched agglomerate graph for agglomerate $agglomerateId1. actionTimestamp: ${update.actionTimestamp}, graph segments: ${agglomerateGraph1.segments}"
350351
_ <- Fox.fromBool(agglomerateGraph2.segments.contains(segmentId2)) ?~> s"Segment $segmentId2 as queried by position ${update.segmentPosition2} is not contained in fetched agglomerate graph for agglomerate $agglomerateId2. actionTimestamp: ${update.actionTimestamp}, graph segments: ${agglomerateGraph2.segments}"
351352
mergedGraphOpt = mergeGraph(agglomerateGraph1, agglomerateGraph2, segmentId1, segmentId2)
352353
_ <- Fox.runOptional(mergedGraphOpt) { mergedGraph =>
@@ -376,17 +377,13 @@ class EditableMappingUpdater(
376377
affinities = newEdgeAffinity +: agglomerateGraph1.affinities))
377378
}
378379
} else {
379-
val segment1IsValid = agglomerateGraph1.segments.contains(segmentId1)
380-
val segment2IsValid = agglomerateGraph2.segments.contains(segmentId2)
381-
if (segment1IsValid && segment2IsValid) {
382-
Some(
383-
AgglomerateGraph(
384-
segments = agglomerateGraph1.segments ++ agglomerateGraph2.segments,
385-
edges = newEdge +: (agglomerateGraph1.edges ++ agglomerateGraph2.edges),
386-
affinities = newEdgeAffinity +: (agglomerateGraph1.affinities ++ agglomerateGraph2.affinities),
387-
positions = agglomerateGraph1.positions ++ agglomerateGraph2.positions
388-
))
389-
} else None
380+
Some(
381+
AgglomerateGraph(
382+
segments = agglomerateGraph1.segments ++ agglomerateGraph2.segments,
383+
edges = newEdge +: (agglomerateGraph1.edges ++ agglomerateGraph2.edges),
384+
affinities = newEdgeAffinity +: (agglomerateGraph1.affinities ++ agglomerateGraph2.affinities),
385+
positions = agglomerateGraph1.positions ++ agglomerateGraph2.positions
386+
))
390387
}
391388
}
392389

0 commit comments

Comments
 (0)