chiark
/
gitweb
/
~ianmdlvl
/
reprap-play.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
commitid: break out p_edgelist (nfc)
[reprap-play.git]
/
commitid.scad.pl
diff --git
a/commitid.scad.pl
b/commitid.scad.pl
index e75143b46ca91b49697670d54a1ddbd2620d1cd8..87e806bd408cdf58e2d3770f5f9bff1fae39f49a 100755
(executable)
--- a/
commitid.scad.pl
+++ b/
commitid.scad.pl
@@
-360,6
+360,19
@@
END
our @demo;
our @demo;
+
+sub p_edgelist ($$$) {
+ my ($points,$vecs,$p) = @_;
+ my @vec;
+ foreach my $pt (@$p) {
+ $pt =~ s{\d{5}}{$&,};
+ $pt =~ s{\b\d}{$&.}g;
+ push @$points, "[$pt]";
+ push @vec, $#$points;
+ }
+ push @$vecs, \@vec;
+}
+
sub parsefont () {
my %cellmap;
for (;;) {
sub parsefont () {
my %cellmap;
for (;;) {
@@
-416,15
+429,10
@@
sub parsefont () {
my $mod = chrmodname $chr;
p "module $mod () {\n";
foreach my $poly (@$polys) {
my $mod = chrmodname $chr;
p "module $mod () {\n";
foreach my $poly (@$polys) {
- p " polygon([";
- my $delim = "";
- foreach my $pt (@{ $poly->{E} }) {
- p $delim;
- $pt =~ s{\d{5}}{$&,};
- $pt =~ s{\b\d}{$&.}g;
- p "[$pt]";
- $delim = ',';
- }
+ p " polygon(";
+ my (@points, @vecs);
+ p_edgelist(\@points, \@vecs, $poly->{E});
+ p "points=[".(join ",",@points)."]";
p "]);\n";
}
p "}\n";
p "]);\n";
}
p "}\n";