forked from mrdoob/three.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Light.js
62 lines (36 loc) · 1.33 KB
/
Light.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import { Object3D } from '../core/Object3D.js';
import { Color } from '../math/Color.js';
/**
* @author mrdoob / http://mrdoob.com/
* @author alteredq / http://alteredqualia.com/
*/
function Light( color, intensity ) {
Object3D.call( this );
this.type = 'Light';
this.color = new Color( color );
this.intensity = intensity !== undefined ? intensity : 1;
this.receiveShadow = undefined;
}
Light.prototype = Object.assign( Object.create( Object3D.prototype ), {
constructor: Light,
isLight: true,
copy: function ( source ) {
Object3D.prototype.copy.call( this, source );
this.color.copy( source.color );
this.intensity = source.intensity;
return this;
},
toJSON: function ( meta ) {
var data = Object3D.prototype.toJSON.call( this, meta );
data.object.color = this.color.getHex();
data.object.intensity = this.intensity;
if ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();
if ( this.distance !== undefined ) data.object.distance = this.distance;
if ( this.angle !== undefined ) data.object.angle = this.angle;
if ( this.decay !== undefined ) data.object.decay = this.decay;
if ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;
if ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();
return data;
}
} );
export { Light };