First steps

This commit is contained in:
Zach Fox 2017-06-27 17:09:59 -07:00
parent 064a7cbb9b
commit 99ebd743e6

View file

@ -58,18 +58,10 @@
var viewFinderOverlay = false; var viewFinderOverlay = false;
var camera = false; var camera = false;
var cameraIsDynamic = false; var cameraIsDynamic = false;
var lastCameraPosition = false;
var lastCameraRotation = false;
function updateRenderFromCamera() { function updateRenderFromCamera() {
var cameraData = Entities.getEntityProperties(camera, ['position', 'rotation']); var cameraData = Entities.getEntityProperties(camera, ['position', 'rotation']);
if (JSON.stringify(lastCameraRotation) !== JSON.stringify(cameraData.rotation)) { beginSpectatorFrameRenderConfig.orientation = cameraData.rotation;
lastCameraRotation = cameraData.rotation; beginSpectatorFrameRenderConfig.position = Vec3.sum(inFrontOf(0.17, cameraData.position, lastCameraRotation), {x: 0, y: 0.02, z: 0});
beginSpectatorFrameRenderConfig.orientation = lastCameraRotation;
}
if (JSON.stringify(lastCameraPosition) !== JSON.stringify(cameraData.position)) {
lastCameraPosition = cameraData.position;
beginSpectatorFrameRenderConfig.position = Vec3.sum(inFrontOf(0.17, lastCameraPosition, lastCameraRotation), {x: 0, y: 0.02, z: 0});
}
} }
// //
@ -104,6 +96,7 @@
// the overlay since it is an Image3DOverlay so it is set to 0 // the overlay since it is an Image3DOverlay so it is set to 0
var glassPaneWidth = 0.16; var glassPaneWidth = 0.16;
var viewFinderOverlayDim = { x: glassPaneWidth, y: -glassPaneWidth, z: 0 }; var viewFinderOverlayDim = { x: glassPaneWidth, y: -glassPaneWidth, z: 0 };
var cameraUpdateInterval;
function spectatorCameraOn() { function spectatorCameraOn() {
// Sets the special texture size based on the window it is displayed in, which doesn't include the menu bar // Sets the special texture size based on the window it is displayed in, which doesn't include the menu bar
spectatorFrameRenderConfig.resetSizeSpectatorCamera(Window.innerWidth, Window.innerHeight); spectatorFrameRenderConfig.resetSizeSpectatorCamera(Window.innerWidth, Window.innerHeight);
@ -112,7 +105,7 @@
beginSpectatorFrameRenderConfig.nearClipPlaneDistance = nearClipPlaneDistance; beginSpectatorFrameRenderConfig.nearClipPlaneDistance = nearClipPlaneDistance;
beginSpectatorFrameRenderConfig.farClipPlaneDistance = farClipPlaneDistance; beginSpectatorFrameRenderConfig.farClipPlaneDistance = farClipPlaneDistance;
cameraRotation = MyAvatar.orientation, cameraPosition = inFrontOf(1, Vec3.sum(MyAvatar.position, { x: 0, y: 0.3, z: 0 })); cameraRotation = MyAvatar.orientation, cameraPosition = inFrontOf(1, Vec3.sum(MyAvatar.position, { x: 0, y: 0.3, z: 0 }));
Script.update.connect(updateRenderFromCamera); cameraUpdateInterval = Script.setInterval(updateRenderFromCamera, 10);
isUpdateRenderWired = true; isUpdateRenderWired = true;
camera = Entities.addEntity({ camera = Entities.addEntity({
"angularDamping": 0.98000001907348633, "angularDamping": 0.98000001907348633,
@ -147,7 +140,7 @@
function spectatorCameraOff() { function spectatorCameraOff() {
spectatorFrameRenderConfig.enabled = beginSpectatorFrameRenderConfig.enabled = false; spectatorFrameRenderConfig.enabled = beginSpectatorFrameRenderConfig.enabled = false;
if (isUpdateRenderWired) { if (isUpdateRenderWired) {
Script.update.disconnect(updateRenderFromCamera); Script.clearInterval(cameraUpdateInterval);
isUpdateRenderWired = false; isUpdateRenderWired = false;
} }
if (camera) { if (camera) {