class Mouse { constructor(ct) { this.ct = ct; this.x = 0; this.y = 0; this.radius = 0.005; this.show = false; this.pressed = false; this.onMove = null; window.addEventListener('mousemove', e => { /* get current transform matrix */ const matrix = this.ct.getTransform(); matrix.invertSelf(); const x = e.offsetX; const y = e.offsetY; this.x = matrix.a*x + matrix.b*y; this.y = matrix.c*x + matrix.d*y; if (this.onMove) this.onMove(); }); const root = document.getElementById('root'); root.addEventListener('mouseover', e => { e = e ? e : window.event; this.show = true; }); root.addEventListener('mouseout', e => { e = e ? e: window.event; this.show = false; }); } render(ct) { if (!this.show) return; console.log(this.radius); ct.save(); ct.strokeStyle = '#fff'; ct.beginPath(); ct.arc(this.x, this.y, this.radius, 0, 2*Math.PI); ct.closePath(); ct.stroke(); ct.restore(); } } export default Mouse;