chiark / gitweb /
wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 15:47:10 +0000 (15:47 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 14 Jan 2019 15:47:10 +0000 (15:47 +0000)
parse-input-graph

index 8ca5fff214aa0e52cf378050c4091301c2ffd844..69dc87ef7febb94113a13fef7d91775c41d1372e 100755 (executable)
@@ -14,7 +14,6 @@ our %region;
 # $region{NAME}{Adj}[]{Regexp}
 # $region{NAME}{Adj}[]{Dikes}
 # $region{NAME}{Adj}[]{L}
-# computed by dual():
 # %region{NAME}{Adj}[]{Vertices}[0..1]
 
 our %adj;
@@ -22,6 +21,11 @@ our %adj;
 # $adj{EARLIER}{LATER}{L}[]
 # $adj{EARLIER}{LATER}{T}[]
 
+# computed by dual()
+our @vertex;
+# $vertex[]{Text}
+# $vertex[]{EdgeIds}[]
+
 sub read_in () {
   my $ccolour;
   my $cregion;
@@ -184,6 +188,8 @@ sub dual () {
       }
     }
   }
+  my %edgeid2vi;
+  # $edgeid2vi{EDGEID} = VI   s.t.  some $vertex[VI]{EdgeIds}[][J] eq EDGEID
   foreach my $cc ($g->connected_components) {
     print STDERR "CC:\n";
     print STDERR "    $_\n" foreach @$cc;
@@ -198,6 +204,20 @@ sub dual () {
       my @p = $g->SP_Dijkstra($x, $y);
       confess join ' -- ', @p;
     }
+
+    my $vertex = {
+      EdgeIds => $cc,
+      Text => (join "\n", @$cc),
+    };
+    foreach my $e (@$cc) {
+      $edgeid2vi{$e} = scalar @vertex;
+    }
+    push @vertex, $vertex;
+  }
+  foreach my $vertex (@vertex) {
+    $vertex->{Edges} = [];
+    foreach my $eid (@{ $vertex->{EdgeIds} }) {
+    }
   }
 }