84 lines
3 KiB
JavaScript
84 lines
3 KiB
JavaScript
//
|
|
// catEyes.js
|
|
//
|
|
// Created by Rebecca Stankus on 09/11/18
|
|
// Copyright 2018 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
|
|
|
|
|
|
(function() {
|
|
|
|
var UPDATE_EYES_INTERVAL_MS = 200;
|
|
|
|
var _this;
|
|
|
|
var leftEyeOverlay;
|
|
var rightEyeOverlay;
|
|
var cat;
|
|
var interval;
|
|
var leftEyePosition;
|
|
var rightEyePosition;
|
|
|
|
var CatEyes = function() {
|
|
_this = this;
|
|
};
|
|
|
|
CatEyes.prototype = {
|
|
|
|
preload: function(entityID) {
|
|
_this.entityID = entityID;
|
|
cat = Entities.getEntityProperties(_this.entityID, 'parentID').parentID;
|
|
},
|
|
|
|
enterEntity: function() {
|
|
leftEyeOverlay = Overlays.addOverlay("model", {
|
|
url: Script.resolvePath("models/catEye.fbx"),
|
|
dimensions: { x: 0.029752083122730255, y: 0.029752083122730255, z: 0.029752083122730255 },
|
|
name: "Cat Eye CC-BY Poly by Google",
|
|
parentID: cat,
|
|
localPosition: { x: -0.024972915649414062, y: -0.1860809326171875, z: 0.14186573028564453 },
|
|
localRotation: { x: 0.6599678993225098, y: 0.07908749580383301, z: 0.0625467300415039, w: 0.7444723844528198 },
|
|
glow: 1
|
|
});
|
|
|
|
rightEyeOverlay = Overlays.addOverlay("model", {
|
|
url: Script.resolvePath("models/catEye.fbx"),
|
|
dimensions: { x: 0.03403420001268387, y: 0.03403420001268387, z: 0.03403420001268387 },
|
|
name: "Cat Eye CC-BY Poly by Google",
|
|
parentID: cat,
|
|
localPosition: { x: -0.07740211486816406, y: -0.1835193634033203, z: 0.13999652862548828 },
|
|
localRotation: { x: 0.665918946266174, y: -0.0835736393928527, z: -0.0666666626930236, w: 0.7383078336715698 },
|
|
glow: 1
|
|
});
|
|
|
|
leftEyePosition = Overlays.getProperty(leftEyeOverlay, 'position');
|
|
rightEyePosition = Overlays.getProperty(rightEyeOverlay, 'position');
|
|
|
|
interval = Script.setInterval(function() {
|
|
Overlays.editOverlay(leftEyeOverlay, {
|
|
rotation: Quat.cancelOutRoll(Quat.lookAtSimple(MyAvatar.getJointPosition("Head"), leftEyePosition))
|
|
});
|
|
Overlays.editOverlay(rightEyeOverlay, {
|
|
rotation: Quat.cancelOutRoll(Quat.lookAtSimple(MyAvatar.getJointPosition("Head"), rightEyePosition))
|
|
});
|
|
}, UPDATE_EYES_INTERVAL_MS);
|
|
},
|
|
|
|
leaveEntity: function() {
|
|
Overlays.deleteOverlay(rightEyeOverlay);
|
|
Overlays.deleteOverlay(leftEyeOverlay);
|
|
if (interval) {
|
|
Script.clearInterval(interval);
|
|
}
|
|
},
|
|
|
|
unload: function() {
|
|
_this.leaveEntity();
|
|
}
|
|
|
|
};
|
|
|
|
return new CatEyes;
|
|
});
|