From cd593bcd8b46abe95dc5b9654fd0cb09a18ff946 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Sat, 18 Jan 2020 12:21:56 +0530
Subject: [PATCH] add map output

---
 modules/mesh/height map | 42 +++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 25 deletions(-)

diff --git a/modules/mesh/height map b/modules/mesh/height map
index 10c73f5..fc6e2a9 100644
--- a/modules/mesh/height map	
+++ b/modules/mesh/height map	
@@ -36,33 +36,24 @@ var inputs = {
    mesh:{type:'STL',
       event:function(evt){
          mod.mesh = new DataView(evt.detail)
-         find_limits_map()}},
-   settings:{type:'',
-      event:function(evt){
-         for (var p in evt.detail)
-            ;
          find_limits_map()}}}
 //
 // outputs
 //
 var outputs = {
-   map:{type:'F32',label:'height map',
-      event:function(){
-         }},
-   image:{type:'RGBA',
-      event:function(){
-         var ctx = mod.img.getContext("2d")
-         var img = ctx.getImageData(0,0,mod.img.width,mod.img.height)
-         mods.output(mod,'image',img)
-         }},
-   imageInfo:{type:'',
-      event:function(){
+   map:{type:'',label:'height map',
+      event:function(heightmap){
          var obj = {}
-         obj.name = "mesh height map"
+         obj.map = heightmap
+         obj.xmin = mod.xmin
+         obj.xmax = mod.xmax
+         obj.ymin = mod.ymin
+         obj.ymax = mod.ymax
+         obj.zmin = mod.zmin
+         obj.zmax = mod.zmax
          obj.width = mod.img.width
          obj.height = mod.img.height
-         obj.dpi = mod.img.width/(mod.dx*parseFloat(mod.inunits.value))
-         mods.output(mod,'imageInfo',obj)
+         mods.output(mod,'map',heightmap)
          }}}
 //
 // interface
@@ -312,6 +303,7 @@ function map_mesh() {
       var h = mod.img.height
       var w = mod.img.width
       var buf = new Uint8ClampedArray(evt.data.imgbuffer)
+      var map = new Float32Array(evt.data.mapbuffer)
       var imgdata = new ImageData(buf,w,h)
       var ctx = mod.img.getContext("2d")
       ctx.putImageData(imgdata,0,0)
@@ -330,8 +322,7 @@ function map_mesh() {
       var ctx = mod.mapcanvas.getContext("2d")
       ctx.clearRect(0,0,mod.mapcanvas.width,mod.mapcanvas.height)
       ctx.drawImage(mod.img,x0,y0,wd,hd)
-      outputs.image.event()
-      outputs.imageInfo.event()
+      outputs.map.event(map)
       })
    var ctx = mod.mapcanvas.getContext("2d")
    ctx.clearRect(0,0,mod.mapcanvas.width,mod.mapcanvas.height)
@@ -339,15 +330,16 @@ function map_mesh() {
    mod.img.height = Math.round(mod.img.width*mod.dy/mod.dx)
    var ctx = mod.img.getContext("2d")
    var img = ctx.getImageData(0,0,mod.img.width,mod.img.height)
-   var map = new Float32Array(1000)
+   var map = new Float32Array(mod.img.width*mod.img.height)
    webworker.postMessage({
       height:mod.img.height,width:mod.img.width,
       imgbuffer:img.data.buffer,
+      mapbuffer:map.buffer,
       mesh:mod.mesh,
       xmin:mod.xmin,xmax:mod.xmax,
       ymin:mod.ymin,ymax:mod.ymax,
       zmin:mod.zmin,zmax:mod.zmax},
-      [img.data.buffer])
+      [img.data.buffer,map.buffer])
    }
 function map_worker() {
    self.addEventListener('message',function(evt) {
@@ -361,7 +353,7 @@ function map_worker() {
       var zmin = evt.data.zmin
       var zmax = evt.data.zmax
       var buf = new Uint8ClampedArray(evt.data.imgbuffer)
-      var map = new Float32Array(h*w)
+      var map = new Float32Array(evt.data.mapbuffer)
       //
       // get vars from buffer
       //
@@ -518,7 +510,7 @@ function map_worker() {
       //
       // output the map
       //
-      self.postMessage({imgbuffer:buf.buffer},[buf.buffer])
+      self.postMessage({imgbuffer:buf.buffer,mapbuffer:map.buffer},[buf.buffer,map.buffer])
       self.close()
       })
    }
-- 
GitLab