Skip to content

Commit 5fd137b

Browse files
authored
Light: Unify toJSON() implementations. (#32414)
1 parent 8687381 commit 5fd137b

File tree

5 files changed

+54
-11
lines changed

5 files changed

+54
-11
lines changed

src/lights/DirectionalLight.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,17 @@ class DirectionalLight extends Light {
9595

9696
}
9797

98+
toJSON( meta ) {
99+
100+
const data = super.toJSON( meta );
101+
102+
data.object.shadow = this.shadow.toJSON();
103+
data.object.target = this.target.uuid;
104+
105+
return data;
106+
107+
}
108+
98109
}
99110

100111
export { DirectionalLight };

src/lights/HemisphereLight.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ class HemisphereLight extends Light {
6161

6262
}
6363

64+
toJSON( meta ) {
65+
66+
const data = super.toJSON( meta );
67+
68+
data.object.groundColor = this.groundColor.getHex();
69+
70+
return data;
71+
72+
}
73+
6474
}
6575

6676
export { HemisphereLight };

src/lights/Light.js

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,6 @@ class Light extends Object3D {
7676
data.object.color = this.color.getHex();
7777
data.object.intensity = this.intensity;
7878

79-
if ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();
80-
81-
if ( this.distance !== undefined ) data.object.distance = this.distance;
82-
if ( this.angle !== undefined ) data.object.angle = this.angle;
83-
if ( this.decay !== undefined ) data.object.decay = this.decay;
84-
if ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;
85-
86-
if ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();
87-
if ( this.target !== undefined ) data.object.target = this.target.uuid;
88-
8979
return data;
9080

9181
}

src/lights/PointLight.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,19 @@ class PointLight extends Light {
111111

112112
}
113113

114+
toJSON( meta ) {
115+
116+
const data = super.toJSON( meta );
117+
118+
data.object.distance = this.distance;
119+
data.object.decay = this.decay;
120+
121+
data.object.shadow = this.shadow.toJSON();
122+
123+
return data;
124+
125+
}
126+
114127
}
115128

116129
export { PointLight };

src/lights/SpotLight.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,32 @@ class SpotLight extends Light {
161161
this.decay = source.decay;
162162

163163
this.target = source.target.clone();
164-
164+
this.map = source.map;
165165
this.shadow = source.shadow.clone();
166166

167167
return this;
168168

169169
}
170170

171+
toJSON( meta ) {
172+
173+
const data = super.toJSON( meta );
174+
175+
data.object.distance = this.distance;
176+
data.object.angle = this.angle;
177+
data.object.decay = this.decay;
178+
data.object.penumbra = this.penumbra;
179+
180+
data.object.target = this.target.uuid;
181+
182+
if ( this.map && this.map.isTexture ) data.object.map = this.map.toJSON( meta ).uuid;
183+
184+
data.object.shadow = this.shadow.toJSON();
185+
186+
return data;
187+
188+
}
189+
171190
}
172191

173192
export { SpotLight };

0 commit comments

Comments
 (0)