Spaces:
Running
Running
import { LightShadow } from './LightShadow.js'; | |
import { _Math } from '../math/Math.js'; | |
import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js'; | |
/** | |
* @author mrdoob / http://mrdoob.com/ | |
*/ | |
function SpotLightShadow() { | |
LightShadow.call( this, new PerspectiveCamera( 50, 1, 0.5, 500 ) ); | |
} | |
SpotLightShadow.prototype = Object.assign( Object.create( LightShadow.prototype ), { | |
constructor: SpotLightShadow, | |
isSpotLightShadow: true, | |
update: function ( light ) { | |
var camera = this.camera; | |
var fov = _Math.RAD2DEG * 2 * light.angle; | |
var aspect = this.mapSize.width / this.mapSize.height; | |
var far = light.distance || camera.far; | |
if ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) { | |
camera.fov = fov; | |
camera.aspect = aspect; | |
camera.far = far; | |
camera.updateProjectionMatrix(); | |
} | |
} | |
} ); | |
export { SpotLightShadow }; | |