overte-HifiExperiments/script-archive/tPose.js
2016-04-26 11:18:22 -07:00

84 lines
2.5 KiB
JavaScript

//
// tPose.js
// examples
//
// Created by Anthony Thibault on 12/10/2015
// Copyright 2015 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
// Example of how to put the avatar into it's default tpose.
//
// TODO: CHANGE
var buttonImageUrl = "https://s3.amazonaws.com/hifi-public/images/tools/tpose.svg";
var windowDimensions = Controller.getViewportDimensions();
var buttonWidth = 37;
var buttonHeight = 46;
var buttonPadding = 10;
var buttonPositionX = windowDimensions.x - buttonPadding - buttonWidth;
var buttonPositionY = (windowDimensions.y - buttonHeight) / 2 - (buttonHeight + buttonPadding);
var tPoseEnterImageOverlay = {
x: buttonPositionX,
y: buttonPositionY,
width: buttonWidth,
height: buttonHeight,
subImage: { x: 0, y: buttonHeight, width: buttonWidth, height: buttonHeight },
imageURL: buttonImageUrl,
visible: true,
alpha: 1.0
};
var tPoseExitImageOverlay = {
x: buttonPositionX,
y: buttonPositionY,
width: buttonWidth,
height: buttonHeight,
subImage: { x: buttonWidth, y: buttonHeight, width: buttonWidth, height: buttonHeight },
imageURL: buttonImageUrl,
visible: false,
alpha: 1.0
};
var tPoseEnterButton = Overlays.addOverlay("image", tPoseEnterImageOverlay);
var tPoseExitButton = Overlays.addOverlay("image", tPoseExitImageOverlay);
var tPose = false;
function enterDefaultPose() {
tPose = true;
var i, l = MyAvatar.getJointNames().length;
var rot, trans;
for (i = 0; i < l; i++) {
rot = MyAvatar.getDefaultJointRotation(i);
trans = MyAvatar.getDefaultJointTranslation(i);
MyAvatar.setJointData(i, rot, trans);
}
Overlays.editOverlay(tPoseEnterButton, { visible: false });
Overlays.editOverlay(tPoseExitButton, { visible: true });
}
function exitDefaultPose() {
tPose = false;
MyAvatar.clearJointsData();
Overlays.editOverlay(tPoseEnterButton, { visible: true });
Overlays.editOverlay(tPoseExitButton, { visible: false });
}
Controller.mousePressEvent.connect(function (event) {
var clickedOverlay = Overlays.getOverlayAtPoint({ x: event.x, y: event.y });
if (clickedOverlay == tPoseEnterButton) {
enterDefaultPose();
} else if (clickedOverlay == tPoseExitButton) {
exitDefaultPose();
}
});
Script.scriptEnding.connect(function() {
Overlays.deleteOverlay(tPoseEnterButton);
Overlays.deleteOverlay(tPoseExitButton);
});