return v_len(v_subtract($_[0],$_[1]));
}
+#---------- utility functions ----------
+
sub upd_min ($$) {
my ($limr,$now)=@_;
$$limr= $now unless defined $$limr && $$limr <= $now;
}
}
+#---------- output helpers ----------
+
sub o ($) { $o .= $_[0]; }
sub ol ($) { $ol .= $_[0]; }
sub oflushpage () {
$r;
}
+#---------- parametric segments ----------
+
sub psu_coords ($$$) {
my ($ends,$inunit,$across)=@_;
# $ends->[0]{X} etc.; $inunit 0 to 1 (but go to 1.5);
}
}
+#---------- commands for segments and their helpers ----------
+
sub arc ($$$$$) {
my ($to, $ctr,$from, $radius,$delta) = @_;
# does parametric_segment to draw an arc centred on $ctr
printf DEBUG "to $to->{X} $to->{Y} $to->{A}\n";
}
+#---------- other commands ----------
+
sub loc2dbg ($) {
my ($loc) = @_;
return "$loc->{X} $loc->{Y} ".ang2deg($loc->{A});
$ctx->{Draw}= layer_draw($k,$l);
}
+#---------- commands for parts and object ----------
+
sub cmd_part { cmd__obj(Part); }
sub cmd_obj { cmd__obj(1); }
sub cmd_objflip { cmd__obj(-1); }
cmd__do();
}
+#---------- main program ----------
+
o("%!\n".
" /lf /Courier-New findfont $lmu_marktpt scalefont def\n".
" /sf /Courier-Bold findfont $lmu_segtpt scalefont def\n".