mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 17:35:45 +02:00
77 lines
No EOL
2.1 KiB
JavaScript
77 lines
No EOL
2.1 KiB
JavaScript
//
|
|
// multipleCursorsExample.js
|
|
// examples
|
|
//
|
|
// Created by Thijs Wenker on 7/23/14.
|
|
// Copyright 2014 High Fidelity, Inc.
|
|
//
|
|
// This is an example script that demonstrates use of multiple cursors
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
var cursors = {};
|
|
|
|
function Cursor(event) {
|
|
this.deviceID = event.deviceID;
|
|
|
|
this.held_buttons = {
|
|
LEFT: false,
|
|
MIDDLE: false,
|
|
RIGHT: false
|
|
}
|
|
this.updatePosition = function(event) {
|
|
this.x = event.x;
|
|
this.y = event.y;
|
|
};
|
|
this.pressEvent = function(event) {
|
|
if (this.held_buttons[event.button] != undefined) {
|
|
this.held_buttons[event.button] = true;
|
|
}
|
|
};
|
|
this.releaseEvent = function(event) {
|
|
if (this.held_buttons[event.button] != undefined) {
|
|
this.held_buttons[event.button] = false;
|
|
}
|
|
};
|
|
this.updatePosition(event);
|
|
}
|
|
|
|
function mousePressEvent(event) {
|
|
if (cursors[event.deviceID] == undefined) {
|
|
cursors[event.deviceID] = new Cursor(event);
|
|
}
|
|
cursors[event.deviceID].pressEvent(event);
|
|
}
|
|
|
|
function mouseReleaseEvent(event) {
|
|
if (cursors[event.deviceID] == undefined) {
|
|
cursors[event.deviceID] = new Cursor(event);
|
|
}
|
|
cursors[event.deviceID].releaseEvent(event);
|
|
}
|
|
|
|
function mouseMoveEvent(event) {
|
|
if (cursors[event.deviceID] == undefined) {
|
|
cursors[event.deviceID] = new Cursor(event);
|
|
} else {
|
|
cursors[event.deviceID].updatePosition(event);
|
|
}
|
|
}
|
|
|
|
var lastOutputString = "";
|
|
function checkCursors() {
|
|
if(lastOutputString != JSON.stringify(cursors)) {
|
|
lastOutputString = JSON.stringify(cursors);
|
|
// outputs json string of all cursors only when a change occured
|
|
print(lastOutputString);
|
|
}
|
|
}
|
|
|
|
Script.update.connect(checkCursors);
|
|
|
|
// Map the mouse events to our functions
|
|
Controller.mousePressEvent.connect(mousePressEvent);
|
|
Controller.mouseMoveEvent.connect(mouseMoveEvent);
|
|
Controller.mouseReleaseEvent.connect(mouseReleaseEvent); |