gsl_vector_add($$pr->raw, $translate->raw) and confess;
gsl_vector_scale($$pr->raw, $scale) and confess;
});
- $mid = $lims[1] - $lims[0];
+ $mid = ($lims[1] - $lims[0]) * 0.5;
}
sub adjust_nz() {
foreach my $v (@$poly) {
$v->{NZ_Occurs} = $occurs{$v->{VxName}};
}
+ print STDERR " nz ".(scalar @$poly)."\n";
my $occurs_m = sub {
my ($ei) = @_;
$poly->[($ei+@$poly) % @$poly]{NZ_Occurs} > 1
next if $occurs_m->($ei);
next unless $occurs_m->($ei-1);
next unless $occurs_m->($ei+1);
+ print STDERR " nz would adjust $poly->[$ei]{VxName}\n";
# adjust coord outwards
}
for my $ei (0..$#$poly) {
- next unless $occurs_m->($ei-1);
next unless $occurs_m->($ei);
- my $pos = \ $poly->[$ei]{Pos};
- $$pos = $$pos*2 - $mid + Math::GSL::Vector->new([-1000,0]);
+ print STDERR " nz occurs_m $ei $poly->[$ei]{VxName}\n";
+ next unless $occurs_m->($ei-1);
+ my $dleft = Math::GSL::Vector->new([-200,0]);
+ foreach my $which (0,-1) {
+ my $ej = ($ei + $which + @$poly) % @$poly;
+ my $ek = ($ei + +1 + 3*$which + @$poly) % @$poly;
+ my $posj = \ $poly->[$ej]{Pos};
+ my $posk = \ $poly->[$ek]{Pos};
+ print STDERR " nz adj j=$ej ",prvec($$posj)," $poly->[$ej]{VxName}\n";
+ print STDERR " nz adj k=$ek ",prvec($$posk)," $poly->[$ek]{VxName}\n";
+ $$posj = $$posj + $dleft;
+ }
}
}