- 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;
- }
+
+ my @demo;
+ my $democols = 6;
+ foreach my $chr (sort keys %chrpolys) {
+ my $mod = chrmodname $chr;
+ p "module $mod () {\n";
+ foreach my $poly (@{ $chrpolys{$chr} }) {
+ p " polygon([";
+ my $delim = "";
+ foreach my $pt (@$poly) {
+ p $delim;
+ $pt =~ s{\d{5}}{$&,};
+ $pt =~ s{\b\d}{$&.}g;
+ p "[$pt]";
+ $delim = ',';