@@ -706,28 +706,11 @@ BRp.findEdgeControlPoints = function( edges ){
706
706
let cy = r . cy ;
707
707
let hasCompounds = cy . hasCompoundNodes ( ) ;
708
708
709
- let hashTable = {
710
- map : new Map ( ) ,
711
- get : function ( pairId ) {
712
- let map2 = this . map . get ( pairId [ 0 ] ) ;
713
-
714
- if ( map2 != null ) {
715
- return map2 . get ( pairId [ 1 ] ) ;
716
- } else {
717
- return null ;
718
- }
719
- } ,
720
- set : function ( pairId , val ) {
721
- let map2 = this . map . get ( pairId [ 0 ] ) ;
722
-
723
- if ( map2 == null ) {
724
- map2 = new Map ( ) ;
725
- this . map . set ( pairId [ 0 ] , map2 ) ;
726
- }
727
-
728
- map2 . set ( pairId [ 1 ] , val ) ;
729
- }
730
- } ;
709
+ let hashTable = new Map ( ) ;
710
+ let getKey = ( pairId , edgeIsUnbundled ) => [
711
+ ...pairId ,
712
+ edgeIsUnbundled ? 1 : 0
713
+ ] . join ( '-' ) ;
731
714
732
715
let pairIds = [ ] ;
733
716
let haystackEdges = [ ] ;
@@ -757,14 +740,15 @@ BRp.findEdgeControlPoints = function( edges ){
757
740
let tgtIndex = tgt . poolIndex ( ) ;
758
741
759
742
let pairId = [ srcIndex , tgtIndex ] . sort ( ) ;
743
+ let key = getKey ( pairId , edgeIsUnbundled ) ;
760
744
761
- let tableEntry = hashTable . get ( pairId ) ;
745
+ let tableEntry = hashTable . get ( key ) ;
762
746
763
747
if ( tableEntry == null ) {
764
748
tableEntry = { eles : [ ] } ;
765
749
766
- hashTable . set ( pairId , tableEntry ) ;
767
- pairIds . push ( pairId ) ;
750
+ pairIds . push ( { pairId, edgeIsUnbundled } ) ;
751
+ hashTable . set ( key , tableEntry ) ;
768
752
}
769
753
770
754
tableEntry . eles . push ( edge ) ;
@@ -781,8 +765,9 @@ BRp.findEdgeControlPoints = function( edges ){
781
765
// for each pair (src, tgt), create the ctrl pts
782
766
// Nested for loop is OK; total number of iterations for both loops = edgeCount
783
767
for ( let p = 0 ; p < pairIds . length ; p ++ ) {
784
- let pairId = pairIds [ p ] ;
785
- let pairInfo = hashTable . get ( pairId ) ;
768
+ let { pairId, edgeIsUnbundled } = pairIds [ p ] ;
769
+ let key = getKey ( pairId , edgeIsUnbundled ) ;
770
+ let pairInfo = hashTable . get ( key ) ;
786
771
let swappedpairInfo ;
787
772
788
773
if ( ! pairInfo . hasUnbundled ) {
0 commit comments