@openhps/core
Version:
Open Hybrid Positioning System - Core component
54 lines (51 loc) • 1.41 kB
JavaScript
import { Light } from './Light.js';
import { Color } from '../math/Color.js';
import { Object3D } from '../core/Object3D.js';
/**
* A light source positioned directly above the scene, with color fading from
* the sky color to the ground color.
*
* This light cannot be used to cast shadows.
*
* ```js
* const light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
* scene.add( light );
* ```
*
* @augments Light
*/
class HemisphereLight extends Light {
/**
* Constructs a new hemisphere light.
*
* @param {(number|Color|string)} [skyColor=0xffffff] - The light's sky color.
* @param {(number|Color|string)} [groundColor=0xffffff] - The light's ground color.
* @param {number} [intensity=1] - The light's strength/intensity.
*/
constructor(skyColor, groundColor, intensity) {
super(skyColor, intensity);
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isHemisphereLight = true;
this.type = 'HemisphereLight';
this.position.copy(Object3D.DEFAULT_UP);
this.updateMatrix();
/**
* The light's ground color.
*
* @type {Color}
*/
this.groundColor = new Color(groundColor);
}
copy(source, recursive) {
super.copy(source, recursive);
this.groundColor.copy(source.groundColor);
return this;
}
}
export { HemisphereLight };