chiark / gitweb /
new ^outside
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Feb 2019 22:19:37 +0000 (22:19 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Feb 2019 22:19:37 +0000 (22:19 +0000)
parse-input-graph

index 1edbf410d7f1c79a0c29871ff2a9b14beb686724..12d6e468fa5ebcfb0a75b1ef2622712be3da2444 100755 (executable)
@@ -29,6 +29,7 @@ our @vertex;
 # $vertex[]{Edges}[]{Regions}[0..1] = NAME
 # $vertex[]{Edges}[]{VIB}
 # $vertex[]{Edges}[]{EdgeId}
+# $vertex[]{Edges}[]{Outside}
 
 sub read_in () {
   my $ccolour;
@@ -223,7 +224,6 @@ sub dual () {
     my $vertex = {
       EdgeIds => $cc,
       Text => (join "\n", @$cc),
-      Outside => (any { m{^(?:L|NZ) \# \d+$} } @$cc),
     };
     foreach my $e (@$cc) {
       $edgeid2vi{$e} = scalar @vertex;
@@ -239,7 +239,8 @@ sub dual () {
       my $adjsa = $region{$ra}{Adj};
 
       my ($ro,$adjio) = edge_id_to_other_id($ra,$adjia);
-      my $is_spec = (($ra eq 'L' or $ra eq 'NZ') or
+      my $ra_out = ($ra eq 'L' or $ra eq 'NZ');
+      my $is_spec = ($ra_out or
                     ($ro eq 'L' or $ro eq 'NZ'));
       my $adjib = ($adjia + 1) % @$adjsa;
       my $vib = $edgeid2vi{"$ra # $adjib"};
@@ -252,6 +253,7 @@ sub dual () {
         EdgeId => $eid,
         Text => "$eid\n$ro # $adjio",
         Spec => $is_spec,
+        Outside => $ra_out,
       };
       push @{ $vertexa->{Edges} }, $einfo;
     }
@@ -264,10 +266,10 @@ sub output_planar_graph () {
   foreach my $via (0..$#vertex) {
     my $vertexa = $vertex[$via];
     o("$via\n");
-    o(" :outside\n") if $vertexa->{Outside};
     foreach my $ei (@{ $vertexa->{Edges} }) {
       my $vib = $ei->{VIB};
       o(" $vib\n");
+      o(" ^outside\n") if $ei->{Outside};
     }
   }
 }