mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 20:33:09 +02:00
Puck attach only shows available tracked objects.
This commit is contained in:
parent
6e10a6fc60
commit
3184d4e9d1
1 changed files with 31 additions and 4 deletions
|
@ -13,7 +13,8 @@ Script.include("/~/system/libraries/Xform.js");
|
||||||
(function() { // BEGIN LOCAL_SCOPE
|
(function() { // BEGIN LOCAL_SCOPE
|
||||||
|
|
||||||
var TABLET_BUTTON_NAME = "PUCKTACH";
|
var TABLET_BUTTON_NAME = "PUCKTACH";
|
||||||
var HTML_URL = "https://s3.amazonaws.com/hifi-public/tony/html/puck-attach.html";
|
// var HTML_URL = "https://s3.amazonaws.com/hifi-public/tony/html/puck-attach.html";
|
||||||
|
var HTML_URL = "file:///C:/msys64/home/anthony/code/hifi/examples/html/puck-attach.html";
|
||||||
|
|
||||||
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
|
||||||
var tabletButton = tablet.addButton({
|
var tabletButton = tablet.addButton({
|
||||||
|
@ -40,6 +41,14 @@ function onScreenChanged(type, url) {
|
||||||
if (!shown) {
|
if (!shown) {
|
||||||
// hook up to event bridge
|
// hook up to event bridge
|
||||||
tablet.webEventReceived.connect(onWebEventReceived);
|
tablet.webEventReceived.connect(onWebEventReceived);
|
||||||
|
|
||||||
|
Script.setTimeout(function () {
|
||||||
|
// send available tracked objects to the html running in the tablet.
|
||||||
|
var availableTrackedObjects = getAvailableTrackedObjects();
|
||||||
|
tablet.emitScriptEvent(JSON.stringify(availableTrackedObjects));
|
||||||
|
|
||||||
|
print("PUCK-ATTACH: availableTrackedObjects = " + JSON.stringify(availableTrackedObjects));
|
||||||
|
}, 1000); // wait 1 sec before sending..
|
||||||
}
|
}
|
||||||
shown = true;
|
shown = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -54,6 +63,24 @@ function onScreenChanged(type, url) {
|
||||||
|
|
||||||
tablet.screenChanged.connect(onScreenChanged);
|
tablet.screenChanged.connect(onScreenChanged);
|
||||||
|
|
||||||
|
function indexToTrackedObjectName(index) {
|
||||||
|
return "TrackedObject" + pad(index, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getAvailableTrackedObjects() {
|
||||||
|
var available = [];
|
||||||
|
var NUM_TRACKED_OBJECTS = 16;
|
||||||
|
var i;
|
||||||
|
for (i = 0; i < NUM_TRACKED_OBJECTS; i++) {
|
||||||
|
var key = indexToTrackedObjectName(i);
|
||||||
|
var pose = Controller.getPoseValue(Controller.Hardware.Vive[key]);
|
||||||
|
if (pose && pose.valid) {
|
||||||
|
available.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return available;
|
||||||
|
}
|
||||||
|
|
||||||
function attach(obj) {
|
function attach(obj) {
|
||||||
attachedEntity = Entities.addEntity({
|
attachedEntity = Entities.addEntity({
|
||||||
type: "Model",
|
type: "Model",
|
||||||
|
@ -64,7 +91,7 @@ function attach(obj) {
|
||||||
var localPos = {x: Number(obj.posx), y: Number(obj.posy), z: Number(obj.posz)};
|
var localPos = {x: Number(obj.posx), y: Number(obj.posy), z: Number(obj.posz)};
|
||||||
var localRot = Quat.fromVec3Degrees({x: Number(obj.rotx), y: Number(obj.roty), z: Number(obj.rotz)});
|
var localRot = Quat.fromVec3Degrees({x: Number(obj.rotx), y: Number(obj.roty), z: Number(obj.rotz)});
|
||||||
attachedObj.localXform = new Xform(localRot, localPos);
|
attachedObj.localXform = new Xform(localRot, localPos);
|
||||||
var key = "TrackedObject" + pad(attachedObj.puckno, 2);
|
var key = indexToTrackedObjectName(Number(attachedObj.puckno));
|
||||||
attachedObj.key = key;
|
attachedObj.key = key;
|
||||||
|
|
||||||
print("PUCK-ATTACH: attachedObj = " + JSON.stringify(attachedObj));
|
print("PUCK-ATTACH: attachedObj = " + JSON.stringify(attachedObj));
|
||||||
|
@ -83,8 +110,8 @@ function remove() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function pad(num, size) {
|
function pad(num, size) {
|
||||||
var s = "000000000" + num;
|
var tempString = "000000000" + num;
|
||||||
return s.substr(s.length-size);
|
return tempString.substr(tempString.length - size);
|
||||||
}
|
}
|
||||||
|
|
||||||
function update(dt) {
|
function update(dt) {
|
||||||
|
|
Loading…
Reference in a new issue