]> git.scottworley.com Git - nt3d/blobdiff - nt3d.js
Closed quadstrip: Munge the input, not the output
[nt3d] / nt3d.js
diff --git a/nt3d.js b/nt3d.js
index 878ee43b34d9b66f32ddc13b14b682f6255498a9..ae17af1a01225f486e8fd1bb3cddb7d4ce2b910c 100644 (file)
--- a/nt3d.js
+++ b/nt3d.js
@@ -23,6 +23,26 @@ nt3d = {
                return this.triangle(a, b, c).concat(
                       this.triangle(c, d, a));
        },
+       trianglefan: function(fan) {
+               var result = [];
+               for (var i = 2; i < fan.length; i++) {
+                       result.push(fan[0], fan[i-1], fan[i]);
+               }
+               return result;
+       },
+       quadstrip: function(strip) {
+               if (strip.length % 2 != 0) {
+                       alert("quadstrip length not divisble by 2!");
+               }
+               var result = [];
+               for (var i = 2; i < strip.length; i += 2) {
+                       result = result.concat(nt3d.quad(strip[i-2], strip[i-1], strip[i+1], strip[i]));
+               }
+               return result;
+       },
+       closed_quadstrip: function(strip) {
+               return nt3d.quadstrip(strip.concat([strip[0], strip[1]]));
+       },
        sub: function(a, b) {
                return [a[0] - b[0],
                        a[1] - b[1],
@@ -77,9 +97,11 @@ nt3d = {
                var download_link = document.createElement("a");
                download_link.appendChild(document.createTextNode("Download!"));
                download_link.setAttribute("id", "nt3d_download");
+               download_link.setAttribute("style", "background-color: blue");
                download_link.setAttribute("download", this.user_function.name + ".stl");
                download_link.setAttribute("href", "data:application/sla," + encodeURIComponent(this.stl));
                this.ui.appendChild(download_link);
+               setTimeout(function() { download_link.setAttribute("style", "-webkit-transition: background-color 0.4s; -moz-transition: background-color 0.4s; -o-transition: background-color 0.4s; -ms-transition: background-color 0.4s; transition: background-color 0.4s; background-color: inherit"); }, 0);
        },
        framework: function (f, params) {
                this.user_function = f;
@@ -93,6 +115,7 @@ nt3d = {
                        document.body.appendChild(this.ui);
                }
                this.form = document.createElement("form");
+               this.form.setAttribute("onsubmit", "nt3d.go(); return false");
                this.ui.appendChild(this.form);
                var table = document.createElement("table");
                this.form.appendChild(table);