content/hifi-content/lincoln/mirror-box/LHtoRH.js
2022-02-14 02:04:11 +01:00

40 lines
No EOL
1 KiB
JavaScript

// hand controller of Vive
// RHtoLH.js
// Created 21 November 2016
// This is a script that allows one controller(Vive) to move both hands in a mirrored fashion
var scale = 10;
function mirrorRot(q) {
return {x: q.x, y: -q.y, z: -q.z, w: q.w};
}
// function mirrorPos(p, scale) {
// return {x: -p.x*scale, y: p.y*scale, z: p.z*scale}
// }
function mirrorPos(p, scale) {
return {x: -p.x, y: p.y, z: p.z}
}
function mirrorPos(p, scale) {
return {x: -p.x, y: p.y, z: p.z}
}
var mirrorMapping = Controller.newMapping();
mirrorMapping.from(function(){
var pose = Controller.getPoseValue(Controller.Standard.LeftHand);
pose.rotation = mirrorRot(pose.rotation);
pose.translation = mirrorPos(pose.translation);
pose.velocity = mirrorPos(pose.velocity);
pose.angularVelocity = mirrorPos(pose.angularVelocity);
return pose;
}).to(Controller.Standard.RightHand);
mirrorMapping.enable();
Script.scriptEnding.connect(function() {
mirrorMapping.disable();
});