zincjs 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +27 -22
  2. package/build/zinc.js +2 -2
  3. package/build/zinc.js.map +1 -1
  4. package/package.json +4 -1
  5. package/src/controls.js +1332 -1241
  6. package/src/geometryCSG.js +111 -115
  7. package/src/glyphsetCSG.js +51 -55
  8. package/src/loaders/GLTFToZincJSLoader.js +31 -33
  9. package/src/loaders/JSONLoader.js +339 -449
  10. package/src/loaders/OBJLoader.js +654 -851
  11. package/src/loaders/STLLoader.js +271 -329
  12. package/src/loaders/niftiReader.js +90 -59
  13. package/src/loaders/primitivesLoader.js +55 -52
  14. package/src/minimap.js +63 -43
  15. package/src/primitives/geometry.js +40 -44
  16. package/src/primitives/glyph.js +16 -19
  17. package/src/primitives/glyphset.js +229 -185
  18. package/src/primitives/label.js +29 -31
  19. package/src/primitives/lines.js +20 -20
  20. package/src/primitives/lines2.js +33 -39
  21. package/src/primitives/lod.js +43 -43
  22. package/src/primitives/marker.js +31 -32
  23. package/src/primitives/markerCluster.js +32 -35
  24. package/src/primitives/pointset.js +86 -83
  25. package/src/primitives/texturePrimitive.js +9 -10
  26. package/src/primitives/textureSlides.js +84 -97
  27. package/src/primitives/textureVolume.js +46 -49
  28. package/src/primitives/tubeLines.js +108 -108
  29. package/src/primitives/zincObject.js +176 -184
  30. package/src/region.js +145 -155
  31. package/src/renderRequests.js +3 -3
  32. package/src/renderer.js +635 -620
  33. package/src/scene.js +479 -419
  34. package/src/sceneExporter.js +22 -17
  35. package/src/sceneLoader.js +542 -296
  36. package/src/shaders/rgbVolumeRender.js +11 -18
  37. package/src/shaders/textureArray.js +5 -12
  38. package/src/shaders/textureSlide.js +10 -17
  39. package/src/shaders/volumeRender.js +11 -18
  40. package/src/shaders/volumeRender_old.js +11 -18
  41. package/src/shaders/volumeTexture.js +7 -14
  42. package/src/textSprite.js +23 -19
  43. package/src/texture/texture.js +14 -15
  44. package/src/texture/textureArray.js +14 -16
  45. package/src/three/InstancedPoints.js +2 -9
  46. package/src/three/Loader.js +334 -315
  47. package/src/three/line/Line.js +165 -215
  48. package/src/three/line/LineSegments.js +40 -55
  49. package/src/three/line/LineSegments2.js +322 -366
  50. package/src/three/line/LineSegmentsGeometry.js +239 -280
  51. package/src/three-js-csg.js +260 -252
  52. package/src/tsl/glyphRenderMaterial.js +12 -3
  53. package/src/tsl/glyphTransform.js +51 -29
  54. package/src/tsl/textureSlides.js +23 -24
  55. package/src/utilities.js +309 -371
  56. package/src/videoHandler.js +76 -83
  57. package/src/workers/geometryCSG.worker.js +33 -36
  58. package/src/workers/geometryCSGInternal.js +39 -44
  59. package/src/zinc.js +4 -7
  60. package/vite.config.js +7 -7
@@ -1,23 +1,20 @@
1
1
  import {
2
- NoBlending,
3
- NormalBlending,
4
- AdditiveBlending,
5
- SubtractiveBlending,
6
- MultiplyBlending,
7
- CustomBlending,
8
-
9
- FaceColors,
10
- VertexColors,
11
-
12
- DoubleSide,
13
- BackSide,
14
-
15
- MirroredRepeatWrapping,
2
+ NoBlending,
3
+ NormalBlending,
4
+ AdditiveBlending,
5
+ SubtractiveBlending,
6
+ MultiplyBlending,
7
+ CustomBlending,
8
+ FaceColors,
9
+ VertexColors,
10
+ DoubleSide,
11
+ BackSide,
12
+ MirroredRepeatWrapping,
16
13
  RepeatWrapping,
17
14
  MathUtils,
18
15
  MaterialLoader,
19
16
  TextureLoader,
20
- Color
17
+ Color,
21
18
  } from 'three/webgpu';
22
19
 
23
20
  /**
@@ -27,317 +24,339 @@ import {
27
24
  function Loader() {}
28
25
 
29
26
  Loader.Handlers = {
27
+ handlers: [],
30
28
 
31
- handlers: [],
32
-
33
- add: function ( regex, loader ) {
34
-
35
- this.handlers.push( regex, loader );
36
-
37
- },
38
-
39
- get: function ( file ) {
40
-
41
- var handlers = this.handlers;
29
+ add: function (regex, loader) {
30
+ this.handlers.push(regex, loader);
31
+ },
42
32
 
43
- for ( var i = 0, l = handlers.length; i < l; i += 2 ) {
33
+ get: function (file) {
34
+ var handlers = this.handlers;
44
35
 
45
- var regex = handlers[ i ];
46
- var loader = handlers[ i + 1 ];
36
+ for (var i = 0, l = handlers.length; i < l; i += 2) {
37
+ var regex = handlers[i];
38
+ var loader = handlers[i + 1];
47
39
 
48
- if ( regex.test( file ) ) {
49
-
50
- return loader;
51
-
52
- }
53
-
54
- }
55
-
56
- return null;
57
-
58
- }
40
+ if (regex.test(file)) {
41
+ return loader;
42
+ }
43
+ }
59
44
 
45
+ return null;
46
+ },
60
47
  };
61
48
 
62
- Object.assign( Loader.prototype, {
63
-
64
- crossOrigin: 'anonymous',
65
-
66
- onLoadStart: function () {},
67
-
68
- onLoadProgress: function () {},
69
-
70
- onLoadComplete: function () {},
71
-
72
- initMaterials: function ( materials, texturePath, crossOrigin ) {
73
-
74
- var array = [];
75
-
76
- for ( var i = 0; i < materials.length; ++ i ) {
77
-
78
- array[ i ] = this.createMaterial( materials[ i ], texturePath, crossOrigin );
79
-
80
- }
81
-
82
- return array;
83
-
84
- },
85
-
86
- createMaterial: ( function () {
87
-
88
- var BlendingMode = {
89
- NoBlending: NoBlending,
90
- NormalBlending: NormalBlending,
91
- AdditiveBlending: AdditiveBlending,
92
- SubtractiveBlending: SubtractiveBlending,
93
- MultiplyBlending: MultiplyBlending,
94
- CustomBlending: CustomBlending
95
- };
96
-
97
- var color = new Color();
98
- var textureLoader = new TextureLoader();
99
- var materialLoader = new MaterialLoader();
100
-
101
- return function createMaterial( m, texturePath, crossOrigin ) {
102
-
103
- // convert from old material format
104
-
105
- var textures = {};
106
-
107
- function loadTexture( path, repeat, offset, wrap, anisotropy ) {
49
+ Object.assign(Loader.prototype, {
50
+ crossOrigin: 'anonymous',
108
51
 
109
- var fullPath = texturePath + path;
110
- var loader = Loader.Handlers.get( fullPath );
52
+ onLoadStart: function () {},
111
53
 
112
- var texture;
54
+ onLoadProgress: function () {},
113
55
 
114
- if ( loader !== null ) {
56
+ onLoadComplete: function () {},
115
57
 
116
- texture = loader.load( fullPath );
117
-
118
- } else {
119
-
120
- textureLoader.setCrossOrigin( crossOrigin );
121
- texture = textureLoader.load( fullPath );
122
-
123
- }
124
-
125
- if ( repeat !== undefined ) {
126
-
127
- texture.repeat.fromArray( repeat );
128
-
129
- if ( repeat[ 0 ] !== 1 ) texture.wrapS = RepeatWrapping;
130
- if ( repeat[ 1 ] !== 1 ) texture.wrapT = RepeatWrapping;
131
-
132
- }
133
-
134
- if ( offset !== undefined ) {
135
-
136
- texture.offset.fromArray( offset );
137
-
138
- }
139
-
140
- if ( wrap !== undefined ) {
141
-
142
- if ( wrap[ 0 ] === 'repeat' ) texture.wrapS = RepeatWrapping;
143
- if ( wrap[ 0 ] === 'mirror' ) texture.wrapS = MirroredRepeatWrapping;
144
-
145
- if ( wrap[ 1 ] === 'repeat' ) texture.wrapT = RepeatWrapping;
146
- if ( wrap[ 1 ] === 'mirror' ) texture.wrapT = MirroredRepeatWrapping;
147
-
148
- }
149
-
150
- if ( anisotropy !== undefined ) {
151
-
152
- texture.anisotropy = anisotropy;
153
-
154
- }
155
-
156
- var uuid = MathUtils.generateUUID();
157
-
158
- textures[ uuid ] = texture;
159
-
160
- return uuid;
161
-
162
- }
163
-
164
- //
165
-
166
- var json = {
167
- uuid: MathUtils.generateUUID(),
168
- type: 'MeshLambertMaterial'
169
- };
170
-
171
- for ( var name in m ) {
172
-
173
- var value = m[ name ];
174
-
175
- switch ( name ) {
176
-
177
- case 'DbgColor':
178
- case 'DbgIndex':
179
- case 'opticalDensity':
180
- case 'illumination':
181
- break;
182
- case 'DbgName':
183
- json.name = value;
184
- break;
185
- case 'blending':
186
- json.blending = BlendingMode[ value ];
187
- break;
188
- case 'colorAmbient':
189
- case 'mapAmbient':
190
- console.warn( 'THREE.Loader.createMaterial:', name, 'is no longer supported.' );
191
- break;
192
- case 'colorDiffuse':
193
- json.color = color.fromArray( value ).getHex();
194
- break;
195
- case 'colorSpecular':
196
- json.specular = color.fromArray( value ).getHex();
197
- break;
198
- case 'colorEmissive':
199
- json.emissive = color.fromArray( value ).getHex();
200
- break;
201
- case 'specularCoef':
202
- json.shininess = value;
203
- break;
204
- case 'shading':
205
- if ( value.toLowerCase() === 'basic' ) json.type = 'MeshBasicMaterial';
206
- if ( value.toLowerCase() === 'phong' ) json.type = 'MeshPhongMaterial';
207
- if ( value.toLowerCase() === 'standard' ) json.type = 'MeshStandardMaterial';
208
- break;
209
- case 'mapDiffuse':
210
- json.map = loadTexture( value, m.mapDiffuseRepeat, m.mapDiffuseOffset, m.mapDiffuseWrap, m.mapDiffuseAnisotropy );
211
- break;
212
- case 'mapDiffuseRepeat':
213
- case 'mapDiffuseOffset':
214
- case 'mapDiffuseWrap':
215
- case 'mapDiffuseAnisotropy':
216
- break;
217
- case 'mapEmissive':
218
- json.emissiveMap = loadTexture( value, m.mapEmissiveRepeat, m.mapEmissiveOffset, m.mapEmissiveWrap, m.mapEmissiveAnisotropy );
219
- break;
220
- case 'mapEmissiveRepeat':
221
- case 'mapEmissiveOffset':
222
- case 'mapEmissiveWrap':
223
- case 'mapEmissiveAnisotropy':
224
- break;
225
- case 'mapLight':
226
- json.lightMap = loadTexture( value, m.mapLightRepeat, m.mapLightOffset, m.mapLightWrap, m.mapLightAnisotropy );
227
- break;
228
- case 'mapLightRepeat':
229
- case 'mapLightOffset':
230
- case 'mapLightWrap':
231
- case 'mapLightAnisotropy':
232
- break;
233
- case 'mapAO':
234
- json.aoMap = loadTexture( value, m.mapAORepeat, m.mapAOOffset, m.mapAOWrap, m.mapAOAnisotropy );
235
- break;
236
- case 'mapAORepeat':
237
- case 'mapAOOffset':
238
- case 'mapAOWrap':
239
- case 'mapAOAnisotropy':
240
- break;
241
- case 'mapBump':
242
- json.bumpMap = loadTexture( value, m.mapBumpRepeat, m.mapBumpOffset, m.mapBumpWrap, m.mapBumpAnisotropy );
243
- break;
244
- case 'mapBumpScale':
245
- json.bumpScale = value;
246
- break;
247
- case 'mapBumpRepeat':
248
- case 'mapBumpOffset':
249
- case 'mapBumpWrap':
250
- case 'mapBumpAnisotropy':
251
- break;
252
- case 'mapNormal':
253
- json.normalMap = loadTexture( value, m.mapNormalRepeat, m.mapNormalOffset, m.mapNormalWrap, m.mapNormalAnisotropy );
254
- break;
255
- case 'mapNormalFactor':
256
- json.normalScale = value;
257
- break;
258
- case 'mapNormalRepeat':
259
- case 'mapNormalOffset':
260
- case 'mapNormalWrap':
261
- case 'mapNormalAnisotropy':
262
- break;
263
- case 'mapSpecular':
264
- json.specularMap = loadTexture( value, m.mapSpecularRepeat, m.mapSpecularOffset, m.mapSpecularWrap, m.mapSpecularAnisotropy );
265
- break;
266
- case 'mapSpecularRepeat':
267
- case 'mapSpecularOffset':
268
- case 'mapSpecularWrap':
269
- case 'mapSpecularAnisotropy':
270
- break;
271
- case 'mapMetalness':
272
- json.metalnessMap = loadTexture( value, m.mapMetalnessRepeat, m.mapMetalnessOffset, m.mapMetalnessWrap, m.mapMetalnessAnisotropy );
273
- break;
274
- case 'mapMetalnessRepeat':
275
- case 'mapMetalnessOffset':
276
- case 'mapMetalnessWrap':
277
- case 'mapMetalnessAnisotropy':
278
- break;
279
- case 'mapRoughness':
280
- json.roughnessMap = loadTexture( value, m.mapRoughnessRepeat, m.mapRoughnessOffset, m.mapRoughnessWrap, m.mapRoughnessAnisotropy );
281
- break;
282
- case 'mapRoughnessRepeat':
283
- case 'mapRoughnessOffset':
284
- case 'mapRoughnessWrap':
285
- case 'mapRoughnessAnisotropy':
286
- break;
287
- case 'mapAlpha':
288
- json.alphaMap = loadTexture( value, m.mapAlphaRepeat, m.mapAlphaOffset, m.mapAlphaWrap, m.mapAlphaAnisotropy );
289
- break;
290
- case 'mapAlphaRepeat':
291
- case 'mapAlphaOffset':
292
- case 'mapAlphaWrap':
293
- case 'mapAlphaAnisotropy':
294
- break;
295
- case 'flipSided':
296
- json.side = BackSide;
297
- break;
298
- case 'doubleSided':
299
- json.side = DoubleSide;
300
- break;
301
- case 'transparency':
302
- console.warn( 'THREE.Loader.createMaterial: transparency has been renamed to opacity' );
303
- json.opacity = value;
304
- break;
305
- case 'depthTest':
306
- case 'depthWrite':
307
- case 'colorWrite':
308
- case 'opacity':
309
- case 'reflectivity':
310
- case 'transparent':
58
+ initMaterials: function (materials, texturePath, crossOrigin) {
59
+ var array = [];
60
+
61
+ for (var i = 0; i < materials.length; ++i) {
62
+ array[i] = this.createMaterial(materials[i], texturePath, crossOrigin);
63
+ }
64
+
65
+ return array;
66
+ },
67
+
68
+ createMaterial: (function () {
69
+ var BlendingMode = {
70
+ NoBlending: NoBlending,
71
+ NormalBlending: NormalBlending,
72
+ AdditiveBlending: AdditiveBlending,
73
+ SubtractiveBlending: SubtractiveBlending,
74
+ MultiplyBlending: MultiplyBlending,
75
+ CustomBlending: CustomBlending,
76
+ };
77
+
78
+ var color = new Color();
79
+ var textureLoader = new TextureLoader();
80
+ var materialLoader = new MaterialLoader();
81
+
82
+ return function createMaterial(m, texturePath, crossOrigin) {
83
+ // convert from old material format
84
+
85
+ var textures = {};
86
+
87
+ function loadTexture(path, repeat, offset, wrap, anisotropy) {
88
+ var fullPath = texturePath + path;
89
+ var loader = Loader.Handlers.get(fullPath);
90
+
91
+ var texture;
92
+
93
+ if (loader !== null) {
94
+ texture = loader.load(fullPath);
95
+ } else {
96
+ textureLoader.setCrossOrigin(crossOrigin);
97
+ texture = textureLoader.load(fullPath);
98
+ }
99
+
100
+ if (repeat !== undefined) {
101
+ texture.repeat.fromArray(repeat);
102
+
103
+ if (repeat[0] !== 1) texture.wrapS = RepeatWrapping;
104
+ if (repeat[1] !== 1) texture.wrapT = RepeatWrapping;
105
+ }
106
+
107
+ if (offset !== undefined) {
108
+ texture.offset.fromArray(offset);
109
+ }
110
+
111
+ if (wrap !== undefined) {
112
+ if (wrap[0] === 'repeat') texture.wrapS = RepeatWrapping;
113
+ if (wrap[0] === 'mirror') texture.wrapS = MirroredRepeatWrapping;
114
+
115
+ if (wrap[1] === 'repeat') texture.wrapT = RepeatWrapping;
116
+ if (wrap[1] === 'mirror') texture.wrapT = MirroredRepeatWrapping;
117
+ }
118
+
119
+ if (anisotropy !== undefined) {
120
+ texture.anisotropy = anisotropy;
121
+ }
122
+
123
+ var uuid = MathUtils.generateUUID();
124
+
125
+ textures[uuid] = texture;
126
+
127
+ return uuid;
128
+ }
129
+
130
+ //
131
+
132
+ var json = {
133
+ uuid: MathUtils.generateUUID(),
134
+ type: 'MeshLambertMaterial',
135
+ };
136
+
137
+ for (var name in m) {
138
+ var value = m[name];
139
+
140
+ switch (name) {
141
+ case 'DbgColor':
142
+ case 'DbgIndex':
143
+ case 'opticalDensity':
144
+ case 'illumination':
145
+ break;
146
+ case 'DbgName':
147
+ json.name = value;
148
+ break;
149
+ case 'blending':
150
+ json.blending = BlendingMode[value];
151
+ break;
152
+ case 'colorAmbient':
153
+ case 'mapAmbient':
154
+ console.warn('THREE.Loader.createMaterial:', name, 'is no longer supported.');
155
+ break;
156
+ case 'colorDiffuse':
157
+ json.color = color.fromArray(value).getHex();
158
+ break;
159
+ case 'colorSpecular':
160
+ json.specular = color.fromArray(value).getHex();
161
+ break;
162
+ case 'colorEmissive':
163
+ json.emissive = color.fromArray(value).getHex();
164
+ break;
165
+ case 'specularCoef':
166
+ json.shininess = value;
167
+ break;
168
+ case 'shading':
169
+ if (value.toLowerCase() === 'basic') json.type = 'MeshBasicMaterial';
170
+ if (value.toLowerCase() === 'phong') json.type = 'MeshPhongMaterial';
171
+ if (value.toLowerCase() === 'standard') json.type = 'MeshStandardMaterial';
172
+ break;
173
+ case 'mapDiffuse':
174
+ json.map = loadTexture(
175
+ value,
176
+ m.mapDiffuseRepeat,
177
+ m.mapDiffuseOffset,
178
+ m.mapDiffuseWrap,
179
+ m.mapDiffuseAnisotropy,
180
+ );
181
+ break;
182
+ case 'mapDiffuseRepeat':
183
+ case 'mapDiffuseOffset':
184
+ case 'mapDiffuseWrap':
185
+ case 'mapDiffuseAnisotropy':
186
+ break;
187
+ case 'mapEmissive':
188
+ json.emissiveMap = loadTexture(
189
+ value,
190
+ m.mapEmissiveRepeat,
191
+ m.mapEmissiveOffset,
192
+ m.mapEmissiveWrap,
193
+ m.mapEmissiveAnisotropy,
194
+ );
195
+ break;
196
+ case 'mapEmissiveRepeat':
197
+ case 'mapEmissiveOffset':
198
+ case 'mapEmissiveWrap':
199
+ case 'mapEmissiveAnisotropy':
200
+ break;
201
+ case 'mapLight':
202
+ json.lightMap = loadTexture(
203
+ value,
204
+ m.mapLightRepeat,
205
+ m.mapLightOffset,
206
+ m.mapLightWrap,
207
+ m.mapLightAnisotropy,
208
+ );
209
+ break;
210
+ case 'mapLightRepeat':
211
+ case 'mapLightOffset':
212
+ case 'mapLightWrap':
213
+ case 'mapLightAnisotropy':
214
+ break;
215
+ case 'mapAO':
216
+ json.aoMap = loadTexture(
217
+ value,
218
+ m.mapAORepeat,
219
+ m.mapAOOffset,
220
+ m.mapAOWrap,
221
+ m.mapAOAnisotropy,
222
+ );
223
+ break;
224
+ case 'mapAORepeat':
225
+ case 'mapAOOffset':
226
+ case 'mapAOWrap':
227
+ case 'mapAOAnisotropy':
228
+ break;
229
+ case 'mapBump':
230
+ json.bumpMap = loadTexture(
231
+ value,
232
+ m.mapBumpRepeat,
233
+ m.mapBumpOffset,
234
+ m.mapBumpWrap,
235
+ m.mapBumpAnisotropy,
236
+ );
237
+ break;
238
+ case 'mapBumpScale':
239
+ json.bumpScale = value;
240
+ break;
241
+ case 'mapBumpRepeat':
242
+ case 'mapBumpOffset':
243
+ case 'mapBumpWrap':
244
+ case 'mapBumpAnisotropy':
245
+ break;
246
+ case 'mapNormal':
247
+ json.normalMap = loadTexture(
248
+ value,
249
+ m.mapNormalRepeat,
250
+ m.mapNormalOffset,
251
+ m.mapNormalWrap,
252
+ m.mapNormalAnisotropy,
253
+ );
254
+ break;
255
+ case 'mapNormalFactor':
256
+ json.normalScale = value;
257
+ break;
258
+ case 'mapNormalRepeat':
259
+ case 'mapNormalOffset':
260
+ case 'mapNormalWrap':
261
+ case 'mapNormalAnisotropy':
262
+ break;
263
+ case 'mapSpecular':
264
+ json.specularMap = loadTexture(
265
+ value,
266
+ m.mapSpecularRepeat,
267
+ m.mapSpecularOffset,
268
+ m.mapSpecularWrap,
269
+ m.mapSpecularAnisotropy,
270
+ );
271
+ break;
272
+ case 'mapSpecularRepeat':
273
+ case 'mapSpecularOffset':
274
+ case 'mapSpecularWrap':
275
+ case 'mapSpecularAnisotropy':
276
+ break;
277
+ case 'mapMetalness':
278
+ json.metalnessMap = loadTexture(
279
+ value,
280
+ m.mapMetalnessRepeat,
281
+ m.mapMetalnessOffset,
282
+ m.mapMetalnessWrap,
283
+ m.mapMetalnessAnisotropy,
284
+ );
285
+ break;
286
+ case 'mapMetalnessRepeat':
287
+ case 'mapMetalnessOffset':
288
+ case 'mapMetalnessWrap':
289
+ case 'mapMetalnessAnisotropy':
290
+ break;
291
+ case 'mapRoughness':
292
+ json.roughnessMap = loadTexture(
293
+ value,
294
+ m.mapRoughnessRepeat,
295
+ m.mapRoughnessOffset,
296
+ m.mapRoughnessWrap,
297
+ m.mapRoughnessAnisotropy,
298
+ );
299
+ break;
300
+ case 'mapRoughnessRepeat':
301
+ case 'mapRoughnessOffset':
302
+ case 'mapRoughnessWrap':
303
+ case 'mapRoughnessAnisotropy':
304
+ break;
305
+ case 'mapAlpha':
306
+ json.alphaMap = loadTexture(
307
+ value,
308
+ m.mapAlphaRepeat,
309
+ m.mapAlphaOffset,
310
+ m.mapAlphaWrap,
311
+ m.mapAlphaAnisotropy,
312
+ );
313
+ break;
314
+ case 'mapAlphaRepeat':
315
+ case 'mapAlphaOffset':
316
+ case 'mapAlphaWrap':
317
+ case 'mapAlphaAnisotropy':
318
+ break;
319
+ case 'flipSided':
320
+ json.side = BackSide;
321
+ break;
322
+ case 'doubleSided':
323
+ json.side = DoubleSide;
324
+ break;
325
+ case 'transparency':
326
+ console.warn('THREE.Loader.createMaterial: transparency has been renamed to opacity');
327
+ json.opacity = value;
328
+ break;
329
+ case 'depthTest':
330
+ case 'depthWrite':
331
+ case 'colorWrite':
332
+ case 'opacity':
333
+ case 'reflectivity':
334
+ case 'transparent':
311
335
  case 'video':
312
- case 'visible':
313
- case 'wireframe':
314
- json[ name ] = value;
315
- break;
316
- case 'vertexColors':
317
- if ( value === true ) json.vertexColors = VertexColors;
318
- if ( value === 'face' ) json.vertexColors = FaceColors;
319
- break;
320
- default:
321
- console.error( 'THREE.Loader.createMaterial: Unsupported', name, value );
322
- break;
323
-
324
- }
325
-
326
- }
327
-
328
- if ( json.type === 'MeshBasicMaterial' ) delete json.emissive;
329
- if ( json.type !== 'MeshPhongMaterial' ) delete json.specular;
330
-
331
- if ( json.opacity < 1 ) json.transparent = true;
332
-
333
- materialLoader.setTextures( textures );
334
-
335
- return materialLoader.parse( json );
336
-
337
- };
338
-
339
- } )()
340
-
341
- } );
336
+ case 'visible':
337
+ case 'wireframe':
338
+ json[name] = value;
339
+ break;
340
+ case 'vertexColors':
341
+ if (value === true) json.vertexColors = VertexColors;
342
+ if (value === 'face') json.vertexColors = FaceColors;
343
+ break;
344
+ default:
345
+ console.error('THREE.Loader.createMaterial: Unsupported', name, value);
346
+ break;
347
+ }
348
+ }
349
+
350
+ if (json.type === 'MeshBasicMaterial') delete json.emissive;
351
+ if (json.type !== 'MeshPhongMaterial') delete json.specular;
352
+
353
+ if (json.opacity < 1) json.transparent = true;
354
+
355
+ materialLoader.setTextures(textures);
356
+
357
+ return materialLoader.parse(json);
358
+ };
359
+ })(),
360
+ });
342
361
 
343
362
  export { Loader };