die "$_ ?" if m{\S};
}
}
- foreach my $polys (values %chrpolys) {
- my %edges;
- foreach my $p (@$polys) {
- foreach my $ei (0..$#$p) {
- my $e = $p->[$ei].$p->[($ei+1) % @$p];
- die if $edges{$e};
- $edges{$e} = [ $p, $ei ];
- }
- }
- AGAIN: {
- foreach my $pa (@$polys) {
- foreach my $eai (0..$#$pa) {
- my $ear = $pa->[ ($eai+1) % @$pa ].$pa->[$eai];
- my $ebi = $edges{$ear};
- next unless $ebi;
- my $pb;
- ($pb, $ebi) = @$ebi;
-# print "# merging $eai $ebi\n";
- splice @$pb, $ebi, 1;
- splice @$pa, $eai, 1, @$pb;
- @$pb = ( );
- next AGAIN;
- }
- }
- }
-# @$polys = grep { @$_ } @$polys;
- }
use Data::Dumper;
print Dumper(\%chrpolys);