Skip to content
Snippets Groups Projects
Commit 4707b91d authored by Neil Gershenfeld's avatar Neil Gershenfeld
Browse files

add clearance

parent 9fc0d4a3
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/files.js'>files.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/files.js'>files.js</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/mods.js'>mods.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/mods.js'>mods.js</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/modules.js'>modules.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/modules.js'>modules.js</a><br>
<i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node_modules</i><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/printserver.js'>printserver.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/printserver.js'>printserver.js</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/programs.js'>programs.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/programs.js'>programs.js</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/serialserver.js'>serialserver.js</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./js/serialserver.js'>serialserver.js</a><br>
...@@ -57,6 +58,7 @@ ...@@ -57,6 +58,7 @@
<i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operators</i><br> <i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operators</i><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/add'>add</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/add'>add</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/blend'>blend</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/blend'>blend</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/clearance'>clearance</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/intersect'>intersect</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/intersect'>intersect</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/morph'>morph</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/morph'>morph</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/subtract'>subtract</a><br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='./modules/frep/operators/subtract'>subtract</a><br>
......
//
// frep clearance
//
// Neil Gershenfeld
// (c) Massachusetts Institute of Technology 2018
//
// This work may be reproduced, modified, distributed, performed, and
// displayed for any purpose, but must acknowledge the mods
// project. Copyright is retained and must be preserved. The work is
// provided as is; no warranty is provided, and users accept all
// liability.
//
// closure
//
(function(){
//
// module globals
//
var mod = {}
//
// name
//
var name = 'frep clearance'
//
// initialization
//
var init = function() {
mod.shape0 = null
mod.shape1 = null
mod.offset.value = 1
mod.fn0.value = ''
mod.fn1.value = ''
}
//
// inputs
//
var inputs = {
shape0:{type:'',label:'shape 0',
event:function(evt){
mod.shape0 = evt.detail
mod.fn0.value = evt.detail.function
outputs.shape.event()
}},
shape1:{type:'',label:'shape 1',
event:function(evt){
mod.shape1 = evt.detail
mod.fn1.value = evt.detail.function
outputs.shape.event()
}},
clear:{type:'',
event:function(evt){
mod.shape0 = null
mod.shape1 = null
mod.fn0.value = ''
mod.fn1.value = ''
}}}
//
// outputs
//
var outputs = {
shape:{type:'',
event:function(){
if ((mod.shape0 != null) && (mod.shape1 != null)) {
var offset = parseFloat(mod.offset.value)
var fn = `Math.min(${mod.shape0.function},-(${offset}+${mod.shape1.function}))`
var fn = `Math.max(${fn},${mod.shape1.function})`
var variables = mod.shape0.variables
var type = mod.shape0.type
var limits = []
for (var v = 0; v < mod.shape0.limits.length; ++v) {
limits[v] = []
if (mod.shape0.limits[v][0] < mod.shape1.limits[v][0])
limits[v][0] = mod.shape0.limits[v][0]
else
limits[v][0] = mod.shape1.limits[v][0]
if (mod.shape0.limits[v][1] > mod.shape1.limits[v][1])
limits[v][1] = mod.shape0.limits[v][1]
else
limits[v][1] = mod.shape1.limits[v][1]
}
var shape = {function:fn,variables:variables,limits:limits,type:type}
mods.output(mod,'shape',shape)}
}
}}
//
// interface
//
var interface = function(div){
mod.div = div
//
// offset
//
div.appendChild(document.createTextNode('offset: '))
div.appendChild(document.createElement('br'))
var input = document.createElement('input')
input.type = 'text'
input.size = 6
div.appendChild(input)
mod.offset = input
div.appendChild(document.createElement('br'))
//
// function 0
//
div.appendChild(document.createTextNode('function 0: '))
div.appendChild(document.createElement('br'))
var input = document.createElement('input')
input.type = 'text'
input.size = 10
div.appendChild(input)
mod.fn0 = input
div.appendChild(document.createElement('br'))
//
// function 1
//
div.appendChild(document.createTextNode('function 1: '))
div.appendChild(document.createElement('br'))
var input = document.createElement('input')
input.type = 'text'
input.size = 10
div.appendChild(input)
mod.fn1 = input
div.appendChild(document.createElement('br'))
}
//
// local functions
//
;
//
// return values
//
return ({
name:name,
init:init,
inputs:inputs,
outputs:outputs,
interface:interface
})
}())
...@@ -28,6 +28,7 @@ module_label('frep') ...@@ -28,6 +28,7 @@ module_label('frep')
module_label(' operators') module_label(' operators')
module_menu(' add','modules/frep/operators/add') module_menu(' add','modules/frep/operators/add')
module_menu(' blend','modules/frep/operators/blend') module_menu(' blend','modules/frep/operators/blend')
module_menu(' clearance','modules/frep/operators/clearance')
module_menu(' intersect','modules/frep/operators/intersect') module_menu(' intersect','modules/frep/operators/intersect')
module_menu(' morph','modules/frep/operators/morph') module_menu(' morph','modules/frep/operators/morph')
module_menu(' subtract','modules/frep/operators/subtract') module_menu(' subtract','modules/frep/operators/subtract')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment