Needs a lot of cleanup. Data has been de-duplicated, and where identical copies existed, one of them has been replaced with a symlink. Some files have been excluded, such as binaries, installers and debug dumps. Some of that may still be present.
73 lines
No EOL
1.7 KiB
JavaScript
73 lines
No EOL
1.7 KiB
JavaScript
//
|
|
// 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(); |