chiark / gitweb /
some numbers fixed
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 17:51:29 +0000 (17:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 17:51:29 +0000 (17:51 +0000)
parse-input-graph

index 3a2746b8e0dd44a6e2ac25de5cd533dd2f4a8ae6..fe60ec7a0cc0f8cc39650489ba81bf44a3219dd1 100755 (executable)
@@ -159,8 +159,7 @@ sub edge_id_to_other_id ($$) {
     my $adjb = $adjsb->[$adjib];
     next unless $adjb->{Name} eq $ra;
     # $adjb is the same edge seen from the other side
-    my $adjibc = ($adjib + 1) % @$adjsb;
-    return ($rb, $adjibc);
+    return ($rb, $adjib);
   }
   confess "$ra $adjia ?";
 }
@@ -184,7 +183,9 @@ sub dual () {
   foreach my $ra (sort keys %region) {
     my $adjsa = $region{$ra}{Adj};
     foreach my $adjia (0..$#$adjsa) {
-      my ($rb, $adjibc) = edge_id_to_other_id($ra, $adjia);
+      my ($rb, $adjib) = edge_id_to_other_id($ra, $adjia);
+      my $adjsb = $region{$rb}{Adj};
+      my $adjibc = ($adjib + 1) % @$adjsb;
       my $adja = $adjsa->[$adjia];
       my $va = "$ra # $adjia";
       # $va is the vertex at the anticlockwise end
@@ -192,7 +193,6 @@ sub dual () {
       next if ($rb eq 'L' or $rb eq 'NZ') and
              ($ra eq 'L' or $ra eq 'NZ');
       # $rb is the region on the other side of that edge
-      my $adjsb = $region{$rb}{Adj};
       my $vb = "$rb # $adjibc";
       # $vb is the vertex at the *clockwise* end
       # of that same edge, which is edge no.$adjibc of region $rb