modern/js/lights.js
2021-01-17 17:17:19 +01:00

81 lines
2.1 KiB
JavaScript
Executable File

"use strict";
import {
Group,
RectAreaLight
} from "./three_modules";
/*
TODO:
- Loading light configuration from scene file
*/
export default class Lights {
constructor(scene) {
this.state = false;
this.lightgroup = new Group();
let intensity = 1;
let decay = 20;
let rectLight = new RectAreaLight(0xc6ffe5, intensity, 2.15, 2.35);
rectLight.decay = decay;
rectLight.position.set(4.76, 1.35, -4.08);
rectLight.rotation.set(0, -1.57, 0);
this.lightgroup.add(rectLight);
rectLight = new RectAreaLight(0xc6ffe5, intensity, 2.15, 2.35);
rectLight.decay = decay;
rectLight.position.set(4.76, 1.35, -6.49);
rectLight.rotation.set(0, -1.57, 0);
this.lightgroup.add(rectLight);
rectLight = new RectAreaLight(0xc6ffe5, intensity, 2.15, 2.35);
rectLight.decay = decay;
rectLight.position.set(4.76, 1.35, -1.7);
rectLight.rotation.set(0, -1.57, 0);
this.lightgroup.add(rectLight);
rectLight = new RectAreaLight(0xc6ffe5, intensity, 2.24, 2.36);
rectLight.decay = decay;
rectLight.position.set(-2.27, 1.34, -7.9);
rectLight.rotation.set(0, 0, 0);
this.lightgroup.add(rectLight);
rectLight = new RectAreaLight(0xc6ffe5, intensity, 2.67, 2.36);
rectLight.decay = decay;
rectLight.position.set(-3.80, 1.34, -6.15);
rectLight.rotation.set(0, 1.57, 0);
this.lightgroup.add(rectLight);
this.lightgroup.name = "lightgroup",
this.lightgroup.visible = false;
scene.add(this.lightgroup);
}
disable() {
this.state = false;
this.lightgroup.visible = false;
console.log("Lights disabled");
}
enable() {
this.state = true;
this.lightgroup.visible = true;
console.log("Lights enabled");
}
toggle() {
switch (this.state) {
case false:
this.enable();
break;
case true:
this.disable();
break;
}
}
}