From: Ian Jackson Date: Mon, 14 Jan 2019 16:21:51 +0000 (+0000) Subject: wip produces a mess X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=f0040ad5b02e3ba551ad2122b57e1a080397a11c;p=pandemic-rising-tide.git wip produces a mess --- diff --git a/parse-input-graph b/parse-input-graph index f8e4901..1c08748 100755 --- a/parse-input-graph +++ b/parse-input-graph @@ -25,7 +25,9 @@ our %adj; our @vertex; # $vertex[]{Text} # $vertex[]{EdgeIds}[] -# $vertex[]{Edges}[][0..1] = NAME +# $vertex[]{Edges}[]{Regions}[0..1] = NAME +# $vertex[]{Edges}[]{VIB} +# $vertex[]{Edges}[]{EdgeId} sub read_in () { my $ccolour; @@ -200,8 +202,9 @@ sub dual () { } my %edgeid2vi; # $edgeid2vi{EDGEID} = VI s.t. some $vertex[VI]{EdgeIds}[][J] eq EDGEID + my $cci = 0; foreach my $cc ($g->connected_components) { - print STDERR "CC:\n"; + print STDERR "CC $cci:\n"; $cci++; print STDERR " $_\n" foreach @$cc; my %uniq; foreach my $e (@$cc) { @@ -224,17 +227,24 @@ sub dual () { } push @vertex, $vertex; } - foreach my $vertex (@vertex) { - $vertex->{Edges} = []; - foreach my $eid (@{ $vertex->{EdgeIds} }) { + foreach my $via (0..$#vertex) { + my $vertexa = $vertex[$via]; + $vertexa->{Edges} = []; + foreach my $eid (@{ $vertexa->{EdgeIds} }) { $eid =~ m/ # (\d+)$/ or confess; my ($ra, $adjia) = ($`, $1); - my ($rb, $adjib) = edge_id_to_other_id($ra, $adjia); - my $vi = $edgeid2vi{"$rb # $adjib"}; - my $vertex2 = $vertex[$vi]; - confess "$rb # $adjib $vi" unless defined $vi and defined $vertex2; - my ($r0,$r1) = sort region_cmp ($ra,$rb); - push @{ $vertex->{Edges} }, [ $r0, $r1 ]; + my $adjsa = $region{$ra}{Adj}; + my $adjib = ($adjia + 1) % @$adjsa; + my $vib = $edgeid2vi{"$ra # $adjib"}; + print STDERR "VIA=$via | $ra # $adjia | # $adjib VIB=$vib\n"; + my $vertexb = $vertex[$vib]; + confess "# $adjib $vib" unless defined $vib and defined $vertexb; + next unless $via <= $vib; + my $einfo = { + VIB => $vib, + EdgeId => $eid, + }; + push @{ $vertexa->{Edges} }, $einfo; } } } @@ -251,16 +261,16 @@ strict graph "map" { fontsize=8; ]; END - foreach my $r0 (sort keys %adj) { - foreach my $r1 (sort keys %{ $adj{$r0} }) { - my $e = $adj{$r0}{$r1}; - my $r1n = $r1; - if ($r1 eq 'NZ' || $r1 eq 'L') { - $r1n = "_$r1 $r0"; - next; - } - o "\"$r0\" -- \"$r1n\" [fontsize=8; label=\"". - (join '/', @{ $e->{T} }). + foreach my $via (0..$#vertex) { + my $vertexa = $vertex[$via]; + foreach my $ei (@{ $vertexa->{Edges} }) { + my $vib = $ei->{VIB}; + #if ($r1 eq 'NZ' || $r1 eq 'L') { + # $r1n = "_$r1 $r0"; + # next; + #} + o "\"$via\" -- \"$vib\" [fontsize=8; label=\"". + $ei->{EdgeId}. "\"];\n"; } }