Andrew Meadowsarchive remaining JS scriptsc0b446c10 years agoHistory
73 lines · 1.7 KB · JavaScript
RawDownload
////  lightModifierTestScene.js////  Created by James Pollack @imgntn on 12/15/2015//  Copyright 2015 High Fidelity, Inc.////  Given a selected light, instantiate some entities that represent various values you can dynamically adjust.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// var PARENT_SCRIPT_URL = Script.resolvePath('lightParent.js?' + Math.random(0 - 100));var basePosition, avatarRot;avatarRot = Quat.fromPitchYawRollDegrees(0, MyAvatar.bodyYaw, 0.0);basePosition = Vec3.sum(MyAvatar.position, Vec3.multiply(0, Quat.getUp(avatarRot))); var light; function createLight() {  var position = basePosition;  position.y += 2;  var lightTransform = evalLightWorldTransform(position, avatarRot);  var lightProperties = {    name: 'Hifi-Spotlight',    type: "Light",    isSpotlight: true,    dimensions: {      x: 2,      y: 2,      z: 8    },    color: {      red: 255,      green: 0,      blue: 255    },    intensity: 0.035,    exponent: 1,    cutoff: 30,    lifetime: -1,    position: lightTransform.p,    rotation: lightTransform.q  };   light = Entities.addEntity(lightProperties); } function evalLightWorldTransform(modelPos, modelRot) {  var MODEL_LIGHT_POSITION = {    x: 0,    y: -0.3,    z: 0  };  var MODEL_LIGHT_ROTATION = Quat.angleAxis(-90, {    x: 1,    y: 0,    z: 0  });  return {    p: Vec3.sum(modelPos, Vec3.multiplyQbyV(modelRot, MODEL_LIGHT_POSITION)),    q: Quat.multiply(modelRot, MODEL_LIGHT_ROTATION)  };} function cleanup() {  Entities.deleteEntity(light);} Script.scriptEnding.connect(cleanup); createLight();