From 8d3bc090bdd24b14d5c355bc5a2ea3c7520a6e22 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 14 Jan 2019 12:41:40 +0000 Subject: [PATCH] rename %edges etc. --- parse-input-graph | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/parse-input-graph b/parse-input-graph index fec1ef8..01c1202 100755 --- a/parse-input-graph +++ b/parse-input-graph @@ -14,9 +14,9 @@ our %region; # $region{NAME}{Adj}[]{Dikes} # $region{NAME}{Adj}[]{L} -our %edges; -# $edges{EARLIER}{LATER}{Dikes} -# $edges{EARLIER}{LATER}{L}[] +our %adj; +# $adj{EARLIER}{LATER}{Dikes} +# $adj{EARLIER}{LATER}{L}[] sub read_in () { my $ccolour; @@ -106,7 +106,7 @@ sub resolve_arefs () { } } -sub edges () { +sub adjacencies () { foreach my $ra (sort keys %region) { foreach my $adja (@{ $region{$ra}{Adj} }) { my $rb = $adja->{Name}; @@ -115,17 +115,17 @@ sub edges () { ($a eq 'NZ') <=> ($b eq 'NZ') or $a cmp $b } ($ra,$rb); - push @{ $edges{$r0}{$r1}{L} }, $adja->{L}; - my $e = $edges{$r0}{$r1}; + push @{ $adj{$r0}{$r1}{L} }, $adja->{L}; + my $e = $adj{$r0}{$r1}; $e->{Dikes} //= $adja->{Dikes}; confess "$r0 - $r1 | @{ $e->{L} } | $e->{Dikes} $adja->{Dikes} ?" unless $e->{Dikes} == $adja->{Dikes}; } } my $ndikes = 0; - foreach my $r0 (sort keys %edges) { - foreach my $r1 (sort keys %{ $edges{$r0} }) { - my $e = $edges{$r0}{$r1}; + foreach my $r0 (sort keys %adj) { + foreach my $r1 (sort keys %{ $adj{$r0} }) { + my $e = $adj{$r0}{$r1}; confess "$r0 / $r1 : @{ $e->{L} } ?" unless @{ $e->{L} } == 2; $ndikes += $e->{Dikes}; } @@ -133,6 +133,13 @@ sub edges () { print STDERR "total $ndikes dikes\n"; } +sub dual () { + # We want to turn the graph from a graph on the regions, to + # one where the nodes are the vertices of region boundaries. + # + # Each adjacency in +} + sub o { print @_ or die $!; } sub output_dot () { @@ -144,9 +151,9 @@ strict graph "map" { fixedsize=true; ]; END - foreach my $r0 (sort keys %edges) { - foreach my $r1 (sort keys %{ $edges{$r0} }) { - my $e = $edges{$r0}{$r1}; + 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"; @@ -160,7 +167,8 @@ END read_in(); resolve_arefs(); -edges(); +adjacencies(); +dual(); output_dot(); # Local variables: -- 2.30.2