chiark / gitweb /
poster-tube-lid: catch: rework mostly done ?
[reprap-play.git] / distort-stl
index 8167e3540932a14f62954b1790e229528ba624ec..68290c410a6ae4738d680d6409abd8f3464c008e 100755 (executable)
@@ -32,7 +32,7 @@ use Data::Dumper;
 
 sub TAU () { M_PI * 2; }
 
-our $debug = $ENV{DISTORT_DEBUG};
+our $debug = $ENV{DISTORT_DEBUG} // 0 ;
 
 my $ps = $ENV{DISTORT_PS};
 if ($ps) {
@@ -104,6 +104,7 @@ sub maybe_subdivide_triangle ($$$$) {
        printf STDERR "OK nok=%d nchanged=%d\n",
            (scalar @$ok), (scalar @$changed)
            if $debug;
+       print STDERR Dumper(\@$ok) if $debug>=2;
        return;
     }
     my ($dummy,$ix,$jx) = @longest;
@@ -179,7 +180,7 @@ sub project_cylinder_tri {
     my $radius = $project_cylinder_radius;
 
     my @ot;
-    foreach my $p (@$t) {
+    foreach my $p (@$t[0..2]) {
        my ($x,$y,$z) = @$p;
        my $r = $radius - $y;
        my $theta = $x / $radius;
@@ -187,6 +188,7 @@ sub project_cylinder_tri {
                    -$r * cos($theta),
                    $z ];
     }
+    push @ot, $t->[3].'P';
     append_triangle \@ot;
 }
 
@@ -274,8 +276,8 @@ print "solid distort-stl\n";
 foreach my $t (@$triangles) {
     print "  facet normal 0 0 0\n";
     print "    outer loop\n";
-    die unless @$t==3;
-    foreach my $p (@$t) {
+    die unless @$t==4;
+    foreach my $p (@$t[0..2]) {
        die unless @$p==3;
        print "      vertex";
        printf " %.18g", $_ foreach @$p;