Select Git revision
Neil Gershenfeld authored
mods.js 61.09 KiB
//
// mods.js
//
// 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(){
//
// globals
//
var mods = {}
mods.ui = {source:null,
progname:'',
padding:7,
bezier:100,
canvas:250,
rows:5,
cols:20,
link:'rgb(0,0,128)',
link_highlight:'rgb(255,0,0)',
header:50,
mousedown:false
}
mods.globals = {}
mods.mod = {}
document.body.id = 'body'
//
// UI
//
document.body.style.overflow = "hidden"
function mods_transform() {
var transform = document.body.style.transform
var index = transform.indexOf('scale')
var left = transform.indexOf('(',index)
var right = transform.indexOf(')',index)
var s = parseFloat(transform.slice(left+1,right))
var index = transform.indexOf('translate')
var left = transform.indexOf('(',index)
var right = transform.indexOf('px',left)
var tx = parseFloat(transform.slice(left+1,right))
var left = transform.indexOf(',',right)
var right = transform.indexOf('px',left)
var ty = parseFloat(transform.slice(left+1,right))
var origin = document.body.style.transformOrigin
var pxx = origin.indexOf('px')
var ox = parseFloat(origin.slice(0,pxx))
var pxy = origin.indexOf('px',pxx+2)
var oy = parseFloat(origin.slice(pxx+2,pxy))
return({s:s,tx:tx,ty:ty,ox:ox,oy:oy})
}
document.body.style.transform = 'scale(1) translate(0px,0px)'
document.body.style.transformOrigin = '0px 0px'
//
// scroll wheel
//
/*
(xw+tx-ox)*s+ox = xs
xw = ox-tx+(xs-ox)/s
(xw+tx0-ox0)*s+ox0 = (xw+tx1-ox1)*s+ox1
(tx0-ox0)*s+ox0 = (tx1-ox1)*s+ox1
tx0+(ox1-ox0)+(ox0-ox1)/s = tx1
tx0+(ox1-ox0)*(1-1/s) = tx1