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],
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;
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);