mesh-links.js

total 0
used 0
limit 0
/* files: ../point_src/math.js head ../point_src/point-content.js pointlist point mouse stage ../point_src/extras.js ../point_src/random.js stroke ../point_src/functions/clamp.js ../point_src/distances.js ../point_src/dragging.js */ const data = [ ['a', 'b'] , ['a', 'c'] , ['c', 'd'] , ['c', 'e'] ] const pointMap = new Map() const getNamed = function(name) { if(pointMap.has(name)){ return pointMap.get(name) } let leftPad = 20 let point = new Point( leftPad + random.int(300), leftPad + random.int(600)) pointMap.set(name, point) return point; } class MainStage extends Stage { // canvas = document.getElementById('playspace'); canvas = 'playspace' mounted(){ this.stroke = new Stroke({ dash: [5,5] , color: 'grey' , width: 2 , march: 1 }) let c = 1 for (var i = 0; i < data.length; i++) { let [na, nb] = data[i]; let pa = getNamed(na) let pb = getNamed(nb) c += c if(pa.iid == undefined) { pa.iid = i + c } if(pb.iid == undefined) { pb.iid = i + c + .5 } } this.dragging.add(...pointMap.values()) } draw(ctx){ this.clear(ctx) pointMap.forEach((e,i,a)=>{ e.pen.indicator(ctx, { color: 'green', width: 1}) }) // this.drawConnections(ctx) this.drawEvery(ctx) let mousePoint = Point.mouse.position mousePoint.pen.indicator(ctx, { color: 'green', width: 3}) this.stroke.step(.1) } drawConnections(ctx) { let s = this.stroke s.set(ctx) for (var i = 0; i < data.length; i++) { let [na, nb] = data[i]; let pa = getNamed(na) let pb = getNamed(nb) pa.pen.line(ctx, pb) } s.unset(ctx) } drawEvery(ctx) { /* Draw A line from A to B for every point. Draw B to A if A to B does not exist. */ let s = this.stroke s.set(ctx) let points = PointList.from(pointMap.values()) points.everyEvery((a,b)=> a.pen.line(ctx, b)); s.unset(ctx) } } stage = MainStage.go()
Run
Meta Data
imports ()
files ('../point_src/math.js', 'head', '../point_src/point-content.js', 'pointlist', 'point', 'mouse', 'stage', '../point_src/extras.js', '../point_src/random.js', 'stroke', '../point_src/functions/clamp.js', '../point_src/distances.js', '../point_src/dragging.js')
unused_keys ('title',)
unknown_keys ()
filepath_exists True
path mesh-links.js
filepath mesh-links.js
clean_files ('../point_src/math.js', '../point_src/core/head.js', '../point_src/compass.js', '../point_src/center.js', '../point_src/point-content.js', '../point_src/pointlistdraw.js', '../point_src/pointlistgradient.js', '../point_src/pointlistshape.js', '../point_src/pointlistgenerator.js', '../point_src/unpack.js', '../point_src/pointlist.js', '../point_src/pointlistpen.js', '../point_src/pointpen.js', '../point_src/pointdraw.js', '../point_src/relative-xy.js', '../point_src/pointcast.js', '../point_src/point.js', '../point_src/events.js', '../point_src/automouse.js', '../point_src/stage-resize.js', '../point_src/functions/resolve.js', '../point_src/stage.js', '../point_src/extras.js', '../point_src/random.js', '../point_src/setunset.js', '../point_src/stroke.js', '../point_src/functions/clamp.js', '../point_src/distances.js', '../point_src/protractor.js', '../point_src/text/beta.js', '../point_src/dragging.js')
markdown {'html': '', 'content': 'files:\n ../point_src/math.js\n head\n ../point_src/point-content.js\n pointlist\n point\n mouse\n stage\n ../point_src/extras.js\n ../point_src/random.js\n stroke\n ../point_src/functions/clamp.js\n ../point_src/distances.js\n ../point_src/dragging.js'}