From eeaa003a8203e5f72580f759527e96b4c38f19d7 Mon Sep 17 00:00:00 2001 From: Dan Marshall Date: Thu, 5 Nov 2015 20:02:55 -0800 Subject: [PATCH 1/6] added boolean (checkbox) metaparameter --- debug/viewer.js | 38 ++++++++++++++++++++++++++++---------- examples/combine.js | 7 ++++--- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/debug/viewer.js b/debug/viewer.js index 43161279c..ba36a2ed4 100644 --- a/debug/viewer.js +++ b/debug/viewer.js @@ -155,17 +155,35 @@ var Viewer = { var label = new makerjs.exporter.XmlTag('label', { "for": id, title: attrs.title }); label.innerText = attrs.title + ': '; - if (attrs.type == 'range') { - attrs.title = attrs.value; - var input = new makerjs.exporter.XmlTag('input', attrs); - input.attrs['onchange'] = 'this.title=this.value;Viewer.Refresh(' + i + ', this.valueAsNumber)'; - input.attrs['id'] = id; - - var div = new makerjs.exporter.XmlTag('div'); - div.innerText = label.toString() + input.toString(); - div.innerTextEscaped = true; - paramsHtml += div.toString(); + var input = null; + + switch (attrs.type) { + + case 'range': + attrs.title = attrs.value; + input = new makerjs.exporter.XmlTag('input', attrs); + input.attrs['onchange'] = 'this.title=this.value;Viewer.Refresh(' + i + ', this.valueAsNumber)'; + input.attrs['id'] = id; + + break; + + case 'bool': + input = new makerjs.exporter.XmlTag('input', { + id: id, + type: 'checkbox', + checked: attrs.value ? 'checked' : '', + onchange: 'Viewer.Refresh(' + i + ', this.checked)' + }); + + break; } + + if (!input) continue; + + var div = new makerjs.exporter.XmlTag('div'); + div.innerText = label.toString() + input.toString(); + div.innerTextEscaped = true; + paramsHtml += div.toString(); } } document.getElementById("params").innerHTML = paramsHtml; diff --git a/examples/combine.js b/examples/combine.js index 8b9f19eed..716e205cc 100644 --- a/examples/combine.js +++ b/examples/combine.js @@ -1,5 +1,5 @@  -function combine(angle) { +function combine(angle, add) { var star1 = new makerjs.models.Oval(50, 100); @@ -31,11 +31,12 @@ function combine(angle) { star2: star2 }; - makerjs.model.combine(star1, star2, false, true, false, true); + makerjs.model.combine(star1, star2, false, true, !add, add); } combine.metaParameters = [ - { title: "angle", type: "range", min: -180, max: 180, step: 1, value: 40 } + { title: "angle", type: "range", min: -180, max: 180, step: 1, value: 40 }, + { title: "add", type: "bool", value: true } ]; From 0f57b05a2485533944b23fe7bb5d802d9a2830bc Mon Sep 17 00:00:00 2001 From: Dan Marshall Date: Thu, 5 Nov 2015 20:12:04 -0800 Subject: [PATCH 2/6] added Rimbox --- debug/viewer.html | 3 +- examples/Rimbox.js | 67 ++++++++++++++++++++++++++++ examples/{stackbox.js => starbox.js} | 28 ++++++------ 3 files changed, 83 insertions(+), 15 deletions(-) create mode 100644 examples/Rimbox.js rename examples/{stackbox.js => starbox.js} (82%) diff --git a/debug/viewer.html b/debug/viewer.html index b1d951648..aa87ca08a 100644 --- a/debug/viewer.html +++ b/debug/viewer.html @@ -62,7 +62,8 @@