chiark / gitweb /
adj_ends
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 17:15:09 +0000 (17:15 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 17:15:09 +0000 (17:15 +0000)
generate-board

index cda2272d98dad2a98ff213382a797171bb0562d4..0726f998f5304cd39cf69698087aa25b639bb0e8 100755 (executable)
@@ -131,6 +131,11 @@ sub read_faces () {
 
 #----- geometry mangling -----
 
+sub adj_ends ($) {
+  my ($adj) = @_;
+  map { $_->{Pos} } @{ $adj->{Ends} };
+}
+
 sub calculate_centres () {
   # Sets
   #  $region{NAME}{Centre}
@@ -139,7 +144,7 @@ sub calculate_centres () {
     my $sum = Math::GSL::Vector->new(2);
     my $wsum = 0;
     foreach my $adj (@{ $rr->{Adj} }) {
-      my @ends = map { $_->{Pos} } @{ $adj->{Ends} };
+      my @ends = adj_ends($adj);
       my $w = ($ends[1] - $ends[0])->norm();
       $sum += $w * $_ foreach @ends;
       $wsum += $w;
@@ -374,7 +379,7 @@ sub some_edge_faces (@) {
 sub afsluitdijk() {
   my ($adj) = grep { $_->{Name} eq 'NZ' } @{ $region{'ZZ'}{Adj} };
   my $dash = 20;
-  my (@pos) = map { $_->{Pos} } @{ $adj->{Ends} };
+  my (@pos) = adj_ends($adj);
   my $mid = 0.5 * ($pos[0] + $pos[1]);
   my $r = 0.5 * ($pos[1] - $pos[0])->norm();
   o(sprintf <<'END', facepscolour('sea'), psvec($mid), $r);