Buckets:
| import { Light } from './Light.js'; | |
| import { SpotLightShadow } from './SpotLightShadow.js'; | |
| import { Object3D } from '../core/Object3D.js'; | |
| class SpotLight extends Light { | |
| constructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) { | |
| super( color, intensity ); | |
| this.isSpotLight = true; | |
| this.type = 'SpotLight'; | |
| this.position.copy( Object3D.DEFAULT_UP ); | |
| this.updateMatrix(); | |
| this.target = new Object3D(); | |
| this.distance = distance; | |
| this.angle = angle; | |
| this.penumbra = penumbra; | |
| this.decay = decay; | |
| this.map = null; | |
| this.shadow = new SpotLightShadow(); | |
| } | |
| get power() { | |
| // compute the light's luminous power (in lumens) from its intensity (in candela) | |
| // by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd) | |
| return this.intensity * Math.PI; | |
| } | |
| set power( power ) { | |
| // set the light's intensity (in candela) from the desired luminous power (in lumens) | |
| this.intensity = power / Math.PI; | |
| } | |
| dispose() { | |
| this.shadow.dispose(); | |
| } | |
| copy( source, recursive ) { | |
| super.copy( source, recursive ); | |
| this.distance = source.distance; | |
| this.angle = source.angle; | |
| this.penumbra = source.penumbra; | |
| this.decay = source.decay; | |
| this.target = source.target.clone(); | |
| this.shadow = source.shadow.clone(); | |
| return this; | |
| } | |
| } | |
| export { SpotLight }; | |
Xet Storage Details
- Size:
- 1.37 kB
- Xet hash:
- 280ee680c7037169a09bd4b5c67edd8f28f21fcd2b6a86a80a8df4db131d31cd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.