summaryrefslogtreecommitdiff
path: root/src/modules/Mouse.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/Mouse.js')
-rw-r--r--src/modules/Mouse.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/modules/Mouse.js b/src/modules/Mouse.js
new file mode 100644
index 0000000..0b8f922
--- /dev/null
+++ b/src/modules/Mouse.js
@@ -0,0 +1,53 @@
+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;