elation-engine 0.9.113 → 0.9.115

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 (91) hide show
  1. package/css/systems/render.css +5 -1
  2. package/package.json +1 -1
  3. package/scripts/assets.js +103 -20
  4. package/scripts/assetworker.js +18 -1
  5. package/scripts/external/holoplay.js +1494 -0
  6. package/scripts/external/octree.js +0 -0
  7. package/scripts/external/three/CSS3DRenderer.js +46 -43
  8. package/scripts/external/three/CubemapToEquirectangular.js +1 -1
  9. package/scripts/external/three/three-extras.js +1553 -392
  10. package/scripts/external/three/three-icosa.js +2575 -0
  11. package/scripts/external/three/three-loaders.js +925 -133
  12. package/scripts/external/three/three-postprocessing.js +3 -3
  13. package/scripts/external/three/three-r116dev.js +50930 -0
  14. package/scripts/external/three/three-spotlighttextures.js +50953 -0
  15. package/scripts/external/three/three-vrm.js +2 -2
  16. package/scripts/external/three/three-working.js +35968 -0
  17. package/scripts/external/three/three.js +38532 -24087
  18. package/scripts/external/three-mesh-bvh.js +5370 -0
  19. package/scripts/external/three-old/BVHLoader.js +406 -0
  20. package/scripts/external/three-old/ColladaLoader.js +5519 -0
  21. package/scripts/external/three-old/ColladaLoader2.js +1694 -0
  22. package/scripts/external/three-old/CubemapToEquirectangular.js +188 -0
  23. package/scripts/external/three-old/DDSLoader.js +269 -0
  24. package/scripts/external/three-old/FBXLoader-mine.js +5063 -0
  25. package/scripts/external/three-old/FBXLoader.js +5112 -0
  26. package/scripts/external/three-old/FlyControls.js +295 -0
  27. package/scripts/external/three-old/GLTF2Loader.js +2950 -0
  28. package/scripts/external/three-old/GLTFLoader.js +2213 -0
  29. package/scripts/external/three-old/JSONLoader.js +435 -0
  30. package/scripts/external/three-old/MTLLoader.js +533 -0
  31. package/scripts/external/three-old/OBJLoader-experimental.js +874 -0
  32. package/scripts/external/three-old/OBJLoader-working.js +727 -0
  33. package/scripts/external/three-old/OBJLoader.js +723 -0
  34. package/scripts/external/three-old/OBJMTLLoader.js +440 -0
  35. package/scripts/external/three-old/OrbitControls.js +592 -0
  36. package/scripts/external/three-old/PLYLoader.js +517 -0
  37. package/scripts/external/three-old/TransformControls.js +1100 -0
  38. package/scripts/external/three-old/VRMLLoader.js +1021 -0
  39. package/scripts/external/three-old/glTFLoader-combined.js +2513 -0
  40. package/scripts/external/three-old/nodethree.js +44018 -0
  41. package/scripts/external/three-old/render/BleachBypassShader.js +64 -0
  42. package/scripts/external/three-old/render/BloomPass.js +116 -0
  43. package/scripts/external/three-old/render/CSS3DRenderer.js +310 -0
  44. package/scripts/external/three-old/render/ClearPass.js +44 -0
  45. package/scripts/external/three-old/render/ConvolutionShader.js +101 -0
  46. package/scripts/external/three-old/render/CopyShader.js +46 -0
  47. package/scripts/external/three-old/render/EffectComposer.js +211 -0
  48. package/scripts/external/three-old/render/FXAAShader.js +88 -0
  49. package/scripts/external/three-old/render/FilmPass.js +60 -0
  50. package/scripts/external/three-old/render/FilmShader.js +104 -0
  51. package/scripts/external/three-old/render/ManualMSAARenderPass.js +168 -0
  52. package/scripts/external/three-old/render/MaskPass.js +97 -0
  53. package/scripts/external/three-old/render/OculusRenderPass.js +84 -0
  54. package/scripts/external/three-old/render/OculusRiftEffect.js +240 -0
  55. package/scripts/external/three-old/render/PortalRenderPass.js +166 -0
  56. package/scripts/external/three-old/render/RecordingPass.js +208 -0
  57. package/scripts/external/three-old/render/RenderPass.js +57 -0
  58. package/scripts/external/three-old/render/SSAOShader.js +259 -0
  59. package/scripts/external/three-old/render/SepiaShader.js +54 -0
  60. package/scripts/external/three-old/render/ShaderPass.js +66 -0
  61. package/scripts/external/three-old/render/VREffect.js +482 -0
  62. package/scripts/external/three-old/shimthree.js +23 -0
  63. package/scripts/external/three-old/stats.js +6 -0
  64. package/scripts/external/three-old/three-88dev.js +45004 -0
  65. package/scripts/external/three-old/three-backgroundoptimization.js +44432 -0
  66. package/scripts/external/three-old/three-updates.js +44735 -0
  67. package/scripts/external/three-old/three-working.js +44719 -0
  68. package/scripts/external/three-old/three.js +44431 -0
  69. package/scripts/external/three-old/threex.rendererstats.js +66 -0
  70. package/scripts/external/three-old/tween.js +13 -0
  71. package/scripts/external/webvr-polyfill-new.js +3497 -0
  72. package/scripts/external/webvr-polyfill-newest.js +3491 -0
  73. package/scripts/external/webvr-polyfill-old.js +6337 -0
  74. package/scripts/geometries.js +2 -2
  75. package/scripts/math.js +6 -6
  76. package/scripts/systems/admin.js +1 -1
  77. package/scripts/systems/controls.js +6 -4
  78. package/scripts/systems/physics.js +10 -10
  79. package/scripts/systems/render.js +58 -20
  80. package/scripts/systems/render2.js +38 -0
  81. package/scripts/things/camera.js +6 -1
  82. package/scripts/things/generic-trackedvectors.js +1875 -0
  83. package/scripts/things/generic.js +3 -4
  84. package/scripts/things/label2d.js +1 -1
  85. package/scripts/things/leapmotion.js +6 -6
  86. package/scripts/things/menu.js +1 -1
  87. package/scripts/things/player-bak.js +638 -0
  88. package/scripts/things/player.js +28 -10
  89. package/scripts/things/skysphere.js +1 -1
  90. package/scripts/things/terrain.js +1 -1
  91. package/scripts/things/text.js +1 -1
@@ -0,0 +1,435 @@
1
+ /**
2
+ * @author mrdoob / http://mrdoob.com/
3
+ * @author alteredq / http://alteredqualia.com/
4
+ */
5
+
6
+ THREE.JSONLoader = function ( showStatus ) {
7
+
8
+ THREE.Loader.call( this, showStatus );
9
+
10
+ this.withCredentials = false;
11
+
12
+ };
13
+
14
+ THREE.JSONLoader.prototype = Object.create( THREE.Loader.prototype );
15
+
16
+ THREE.JSONLoader.prototype.load = function ( url, callback, texturePath ) {
17
+
18
+ var scope = this;
19
+
20
+ // todo: unify load API to for easier SceneLoader use
21
+
22
+ texturePath = texturePath && ( typeof texturePath === "string" ) ? texturePath : this.extractUrlBase( url );
23
+
24
+ this.onLoadStart();
25
+ this.loadAjaxJSON( this, url, callback, texturePath );
26
+
27
+ };
28
+
29
+ THREE.JSONLoader.prototype.loadAjaxJSON = function ( context, url, callback, texturePath, callbackProgress ) {
30
+
31
+ var xhr = new XMLHttpRequest();
32
+
33
+ var length = 0;
34
+
35
+ xhr.onreadystatechange = function () {
36
+
37
+ if ( xhr.readyState === xhr.DONE ) {
38
+
39
+ if ( xhr.status === 200 || xhr.status === 0 ) {
40
+
41
+ if ( xhr.responseText ) {
42
+
43
+ var json = JSON.parse( xhr.responseText );
44
+ var result = context.parse( json, texturePath );
45
+ callback( result.geometry, result.materials );
46
+
47
+ } else {
48
+
49
+ console.warn( "THREE.JSONLoader: [" + url + "] seems to be unreachable or file there is empty" );
50
+
51
+ }
52
+
53
+ // in context of more complex asset initialization
54
+ // do not block on single failed file
55
+ // maybe should go even one more level up
56
+
57
+ context.onLoadComplete();
58
+
59
+ } else {
60
+
61
+ console.error( "THREE.JSONLoader: Couldn't load [" + url + "] [" + xhr.status + "]" );
62
+
63
+ }
64
+
65
+ } else if ( xhr.readyState === xhr.LOADING ) {
66
+
67
+ if ( callbackProgress ) {
68
+
69
+ if ( length === 0 ) {
70
+
71
+ length = xhr.getResponseHeader( "Content-Length" );
72
+
73
+ }
74
+
75
+ callbackProgress( { total: length, loaded: xhr.responseText.length } );
76
+
77
+ }
78
+
79
+ } else if ( xhr.readyState === xhr.HEADERS_RECEIVED ) {
80
+
81
+ length = xhr.getResponseHeader( "Content-Length" );
82
+
83
+ }
84
+
85
+ };
86
+
87
+ xhr.open( "GET", url, true );
88
+ xhr.withCredentials = this.withCredentials;
89
+ xhr.send( null );
90
+
91
+ };
92
+
93
+ THREE.JSONLoader.prototype.parse = function ( json, texturePath ) {
94
+
95
+ var scope = this,
96
+ geometry = new THREE.Geometry(),
97
+ scale = ( json.scale !== undefined ) ? 1.0 / json.scale : 1.0;
98
+
99
+ parseModel( scale );
100
+
101
+ parseSkin();
102
+ parseMorphing( scale );
103
+
104
+ geometry.computeCentroids();
105
+ geometry.computeFaceNormals();
106
+
107
+ function parseModel( scale ) {
108
+
109
+ function isBitSet( value, position ) {
110
+
111
+ return value & ( 1 << position );
112
+
113
+ }
114
+
115
+ var i, j, fi,
116
+
117
+ offset, zLength, nVertices,
118
+
119
+ colorIndex, normalIndex, uvIndex, materialIndex,
120
+
121
+ type,
122
+ isQuad,
123
+ hasMaterial,
124
+ hasFaceUv, hasFaceVertexUv,
125
+ hasFaceNormal, hasFaceVertexNormal,
126
+ hasFaceColor, hasFaceVertexColor,
127
+
128
+ vertex, face, color, normal,
129
+
130
+ uvLayer, uvs, u, v,
131
+
132
+ faces = json.faces,
133
+ vertices = json.vertices,
134
+ normals = json.normals,
135
+ colors = json.colors,
136
+
137
+ nUvLayers = 0;
138
+
139
+ // disregard empty arrays
140
+
141
+ for ( i = 0; i < json.uvs.length; i++ ) {
142
+
143
+ if ( json.uvs[ i ].length ) nUvLayers ++;
144
+
145
+ }
146
+
147
+ for ( i = 0; i < nUvLayers; i++ ) {
148
+
149
+ geometry.faceUvs[ i ] = [];
150
+ geometry.faceVertexUvs[ i ] = [];
151
+
152
+ }
153
+
154
+ offset = 0;
155
+ zLength = vertices.length;
156
+
157
+ while ( offset < zLength ) {
158
+
159
+ vertex = new THREE.Vector3();
160
+
161
+ vertex.x = vertices[ offset ++ ] * scale;
162
+ vertex.y = vertices[ offset ++ ] * scale;
163
+ vertex.z = vertices[ offset ++ ] * scale;
164
+
165
+ geometry.vertices.push( vertex );
166
+
167
+ }
168
+
169
+ offset = 0;
170
+ zLength = faces.length;
171
+
172
+ while ( offset < zLength ) {
173
+
174
+ type = faces[ offset ++ ];
175
+
176
+
177
+ isQuad = isBitSet( type, 0 );
178
+ hasMaterial = isBitSet( type, 1 );
179
+ hasFaceUv = isBitSet( type, 2 );
180
+ hasFaceVertexUv = isBitSet( type, 3 );
181
+ hasFaceNormal = isBitSet( type, 4 );
182
+ hasFaceVertexNormal = isBitSet( type, 5 );
183
+ hasFaceColor = isBitSet( type, 6 );
184
+ hasFaceVertexColor = isBitSet( type, 7 );
185
+
186
+ //console.log("type", type, "bits", isQuad, hasMaterial, hasFaceUv, hasFaceVertexUv, hasFaceNormal, hasFaceVertexNormal, hasFaceColor, hasFaceVertexColor);
187
+
188
+ if ( isQuad ) {
189
+
190
+ face = new THREE.Face4();
191
+
192
+ face.a = faces[ offset ++ ];
193
+ face.b = faces[ offset ++ ];
194
+ face.c = faces[ offset ++ ];
195
+ face.d = faces[ offset ++ ];
196
+
197
+ nVertices = 4;
198
+
199
+ } else {
200
+
201
+ face = new THREE.Face3();
202
+
203
+ face.a = faces[ offset ++ ];
204
+ face.b = faces[ offset ++ ];
205
+ face.c = faces[ offset ++ ];
206
+
207
+ nVertices = 3;
208
+
209
+ }
210
+
211
+ if ( hasMaterial ) {
212
+
213
+ materialIndex = faces[ offset ++ ];
214
+ face.materialIndex = materialIndex;
215
+
216
+ }
217
+
218
+ // to get face <=> uv index correspondence
219
+
220
+ fi = geometry.faces.length;
221
+
222
+ if ( hasFaceUv ) {
223
+
224
+ for ( i = 0; i < nUvLayers; i++ ) {
225
+
226
+ uvLayer = json.uvs[ i ];
227
+
228
+ uvIndex = faces[ offset ++ ];
229
+
230
+ u = uvLayer[ uvIndex * 2 ];
231
+ v = uvLayer[ uvIndex * 2 + 1 ];
232
+
233
+ geometry.faceUvs[ i ][ fi ] = new THREE.Vector2( u, v );
234
+
235
+ }
236
+
237
+ }
238
+
239
+ if ( hasFaceVertexUv ) {
240
+
241
+ for ( i = 0; i < nUvLayers; i++ ) {
242
+
243
+ uvLayer = json.uvs[ i ];
244
+
245
+ uvs = [];
246
+
247
+ for ( j = 0; j < nVertices; j ++ ) {
248
+
249
+ uvIndex = faces[ offset ++ ];
250
+
251
+ u = uvLayer[ uvIndex * 2 ];
252
+ v = uvLayer[ uvIndex * 2 + 1 ];
253
+
254
+ uvs[ j ] = new THREE.Vector2( u, v );
255
+
256
+ }
257
+
258
+ geometry.faceVertexUvs[ i ][ fi ] = uvs;
259
+
260
+ }
261
+
262
+ }
263
+
264
+ if ( hasFaceNormal ) {
265
+
266
+ normalIndex = faces[ offset ++ ] * 3;
267
+
268
+ normal = new THREE.Vector3();
269
+
270
+ normal.x = normals[ normalIndex ++ ];
271
+ normal.y = normals[ normalIndex ++ ];
272
+ normal.z = normals[ normalIndex ];
273
+
274
+ face.normal = normal;
275
+
276
+ }
277
+
278
+ if ( hasFaceVertexNormal ) {
279
+
280
+ for ( i = 0; i < nVertices; i++ ) {
281
+
282
+ normalIndex = faces[ offset ++ ] * 3;
283
+
284
+ normal = new THREE.Vector3();
285
+
286
+ normal.x = normals[ normalIndex ++ ];
287
+ normal.y = normals[ normalIndex ++ ];
288
+ normal.z = normals[ normalIndex ];
289
+
290
+ face.vertexNormals.push( normal );
291
+
292
+ }
293
+
294
+ }
295
+
296
+
297
+ if ( hasFaceColor ) {
298
+
299
+ colorIndex = faces[ offset ++ ];
300
+
301
+ color = new THREE.Color( colors[ colorIndex ] );
302
+ face.color = color;
303
+
304
+ }
305
+
306
+
307
+ if ( hasFaceVertexColor ) {
308
+
309
+ for ( i = 0; i < nVertices; i++ ) {
310
+
311
+ colorIndex = faces[ offset ++ ];
312
+
313
+ color = new THREE.Color( colors[ colorIndex ] );
314
+ face.vertexColors.push( color );
315
+
316
+ }
317
+
318
+ }
319
+
320
+ geometry.faces.push( face );
321
+
322
+ }
323
+
324
+ };
325
+
326
+ function parseSkin() {
327
+
328
+ var i, l, x, y, z, w, a, b, c, d;
329
+
330
+ if ( json.skinWeights ) {
331
+
332
+ for ( i = 0, l = json.skinWeights.length; i < l; i += 2 ) {
333
+
334
+ x = json.skinWeights[ i ];
335
+ y = json.skinWeights[ i + 1 ];
336
+ z = 0;
337
+ w = 0;
338
+
339
+ geometry.skinWeights.push( new THREE.Vector4( x, y, z, w ) );
340
+
341
+ }
342
+
343
+ }
344
+
345
+ if ( json.skinIndices ) {
346
+
347
+ for ( i = 0, l = json.skinIndices.length; i < l; i += 2 ) {
348
+
349
+ a = json.skinIndices[ i ];
350
+ b = json.skinIndices[ i + 1 ];
351
+ c = 0;
352
+ d = 0;
353
+
354
+ geometry.skinIndices.push( new THREE.Vector4( a, b, c, d ) );
355
+
356
+ }
357
+
358
+ }
359
+
360
+ geometry.bones = json.bones;
361
+ geometry.animation = json.animation;
362
+
363
+ };
364
+
365
+ function parseMorphing( scale ) {
366
+
367
+ if ( json.morphTargets !== undefined ) {
368
+
369
+ var i, l, v, vl, dstVertices, srcVertices;
370
+
371
+ for ( i = 0, l = json.morphTargets.length; i < l; i ++ ) {
372
+
373
+ geometry.morphTargets[ i ] = {};
374
+ geometry.morphTargets[ i ].name = json.morphTargets[ i ].name;
375
+ geometry.morphTargets[ i ].vertices = [];
376
+
377
+ dstVertices = geometry.morphTargets[ i ].vertices;
378
+ srcVertices = json.morphTargets [ i ].vertices;
379
+
380
+ for( v = 0, vl = srcVertices.length; v < vl; v += 3 ) {
381
+
382
+ var vertex = new THREE.Vector3();
383
+ vertex.x = srcVertices[ v ] * scale;
384
+ vertex.y = srcVertices[ v + 1 ] * scale;
385
+ vertex.z = srcVertices[ v + 2 ] * scale;
386
+
387
+ dstVertices.push( vertex );
388
+
389
+ }
390
+
391
+ }
392
+
393
+ }
394
+
395
+ if ( json.morphColors !== undefined ) {
396
+
397
+ var i, l, c, cl, dstColors, srcColors, color;
398
+
399
+ for ( i = 0, l = json.morphColors.length; i < l; i++ ) {
400
+
401
+ geometry.morphColors[ i ] = {};
402
+ geometry.morphColors[ i ].name = json.morphColors[ i ].name;
403
+ geometry.morphColors[ i ].colors = [];
404
+
405
+ dstColors = geometry.morphColors[ i ].colors;
406
+ srcColors = json.morphColors [ i ].colors;
407
+
408
+ for ( c = 0, cl = srcColors.length; c < cl; c += 3 ) {
409
+
410
+ color = new THREE.Color( 0xffaa00 );
411
+ color.setRGB( srcColors[ c ], srcColors[ c + 1 ], srcColors[ c + 2 ] );
412
+ dstColors.push( color );
413
+
414
+ }
415
+
416
+ }
417
+
418
+ }
419
+
420
+ };
421
+
422
+ var materials = this.initMaterials( json.materials, texturePath );
423
+
424
+ if ( this.needsTangents( materials ) ) {
425
+
426
+ geometry.computeTangents();
427
+
428
+ }
429
+
430
+ return {
431
+ geometry: geometry,
432
+ materials: materials
433
+ };
434
+
435
+ };