81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
|
"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;
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|