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,440 @@
1
+ /**
2
+ * Loads a Wavefront .obj file with materials
3
+ *
4
+ * @author mrdoob / http://mrdoob.com/
5
+ * @author angelxuanchang
6
+ */
7
+
8
+ THREE.OBJMTLLoader = function ( manager ) {
9
+
10
+ this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
11
+
12
+ };
13
+
14
+ THREE.OBJMTLLoader.prototype = {
15
+
16
+ constructor: THREE.OBJMTLLoader,
17
+
18
+ load: function ( url, mtlurl, onLoad, onProgress, onError ) {
19
+
20
+ var scope = this;
21
+
22
+ var mtlLoader = new THREE.MTLLoader( this.manager );
23
+ mtlLoader.setBaseUrl( url.substr( 0, url.lastIndexOf( "/" ) + 1 ) );
24
+ mtlLoader.setCrossOrigin( this.crossOrigin );
25
+ mtlLoader.load( mtlurl, function ( materials ) {
26
+
27
+ var materialsCreator = materials;
28
+ materialsCreator.preload();
29
+
30
+ var loader = new THREE.XHRLoader( scope.manager );
31
+ //loader.setCrossOrigin( scope.crossOrigin );
32
+ loader.load( url, function ( text ) {
33
+
34
+ var object = scope.parse( text );
35
+
36
+ object.traverse( function ( object ) {
37
+
38
+ if ( object instanceof THREE.Mesh ) {
39
+
40
+ if ( object.material.name ) {
41
+
42
+ var material = materialsCreator.create( object.material.name );
43
+
44
+ if ( material ) object.material = material;
45
+
46
+ }
47
+
48
+ }
49
+
50
+ } );
51
+
52
+ onLoad( object );
53
+
54
+ }, onProgress, onError );
55
+
56
+ }, onProgress, onError );
57
+
58
+ },
59
+
60
+ setCrossOrigin: function ( value ) {
61
+
62
+ this.crossOrigin = value;
63
+
64
+ },
65
+
66
+ /**
67
+ * Parses loaded .obj file
68
+ * @param data - content of .obj file
69
+ * @param mtllibCallback - callback to handle mtllib declaration (optional)
70
+ * @return {THREE.Object3D} - Object3D (with default material)
71
+ */
72
+
73
+ parse: function ( data, mtllibCallback ) {
74
+
75
+ var material_offset = 0;
76
+
77
+ function vector( x, y, z ) {
78
+
79
+ return new THREE.Vector3( x, y, z );
80
+
81
+ }
82
+
83
+ function uv( u, v ) {
84
+
85
+ return new THREE.Vector2( u, v );
86
+
87
+ }
88
+
89
+ function face3( a, b, c, normals ) {
90
+
91
+ return new THREE.Face3( a, b, c, normals, undefined, material_offset );
92
+
93
+ }
94
+
95
+ var face_offset = 0;
96
+
97
+ function meshN( meshName, materialName ) {
98
+
99
+ if ( vertices.length > 0 ) {
100
+
101
+ geometry.vertices = vertices;
102
+
103
+ geometry.mergeVertices();
104
+ geometry.computeFaceNormals();
105
+ geometry.computeBoundingSphere();
106
+
107
+ /*
108
+ if (geometry.faceVertexUvs[0]) {
109
+ for (var i = 0; i < geometry.faces.length; i++) {
110
+ if (!geometry.faceVertexUvs[0][i]) {
111
+ geometry.faceVertexUvs[0][i] = [
112
+ new THREE.Vector2(0,0),
113
+ new THREE.Vector2(1,0),
114
+ new THREE.Vector2(0,1)
115
+ ];
116
+ }
117
+ }
118
+ }
119
+ */
120
+
121
+ object.add( mesh );
122
+
123
+ geometry = new THREE.Geometry();
124
+ mesh = new THREE.Mesh( geometry, material );
125
+
126
+ material_offset = 0;
127
+
128
+ }
129
+
130
+ if ( meshName !== undefined ) mesh.name = meshName;
131
+
132
+ if ( materialName !== undefined ) {
133
+
134
+ material = new THREE.MeshLambertMaterial();
135
+ material.name = materialName;
136
+
137
+ mesh.material = material;
138
+
139
+ }
140
+
141
+ }
142
+
143
+ function materialN(materialName) {
144
+ var materials = [];
145
+ if (!(mesh.material instanceof THREE.MeshFaceMaterial)) {
146
+ materials[0] = mesh.material;
147
+ mesh.material = new THREE.MeshFaceMaterial(materials);
148
+ } else {
149
+ materials = mesh.material.materials;
150
+ }
151
+
152
+ if ( materialName !== undefined ) {
153
+
154
+ material = new THREE.MeshLambertMaterial();
155
+ material.name = materialName;
156
+
157
+ materials.push(material);
158
+
159
+ material_offset = materials.length - 1;
160
+
161
+ }
162
+
163
+ }
164
+
165
+ var group = new THREE.Group();
166
+ var object = group;
167
+
168
+ var geometry = new THREE.Geometry();
169
+ var material = new THREE.MeshLambertMaterial();
170
+ var mesh = new THREE.Mesh( geometry, material );
171
+
172
+ var vertices = [];
173
+ var normals = [];
174
+ var uvs = [];
175
+
176
+ function add_face( a, b, c, normals_inds ) {
177
+
178
+ var facenormals = false;
179
+
180
+ if ( normals_inds !== undefined ) {
181
+
182
+ var faceindexes = [
183
+ parseInt( normals_inds[ 0 ] ) - 1,
184
+ parseInt( normals_inds[ 1 ] ) - 1,
185
+ parseInt( normals_inds[ 2 ] ) - 1
186
+ ];
187
+ if (normals[faceindexes[0]] && normals[faceindexes[1]] && normals[faceindexes[2]]) {
188
+ facenormals = [
189
+ normals[ faceindexes[0] ].clone(),
190
+ normals[ faceindexes[1] ].clone(),
191
+ normals[ faceindexes[2] ].clone()
192
+ ];
193
+ }
194
+ }
195
+ if ( !facenormals ) {
196
+
197
+ geometry.faces.push( face3(
198
+ parseInt( a ) - ( face_offset + 1 ),
199
+ parseInt( b ) - ( face_offset + 1 ),
200
+ parseInt( c ) - ( face_offset + 1 )
201
+ ) );
202
+
203
+ } else {
204
+
205
+ geometry.faces.push( face3(
206
+ parseInt( a ) - ( face_offset + 1 ),
207
+ parseInt( b ) - ( face_offset + 1 ),
208
+ parseInt( c ) - ( face_offset + 1 ),
209
+ facenormals
210
+ ) );
211
+
212
+ }
213
+
214
+ }
215
+
216
+ function add_uvs( a, b, c ) {
217
+
218
+ geometry.faceVertexUvs[ 0 ].push( [
219
+ uvs[ parseInt( a ) - 1 ].clone(),
220
+ uvs[ parseInt( b ) - 1 ].clone(),
221
+ uvs[ parseInt( c ) - 1 ].clone()
222
+ ] );
223
+ /*
224
+ geometry.faceVertexUvs[ 0 ][geometry.faces.length-1] = [
225
+ uvs[ parseInt( a ) - 1 ].clone(),
226
+ uvs[ parseInt( b ) - 1 ].clone(),
227
+ uvs[ parseInt( c ) - 1 ].clone()
228
+ ];
229
+ */
230
+
231
+ }
232
+
233
+ function handle_face_line( faces, uvs, normals_inds ) {
234
+
235
+ if ( faces[ 3 ] === undefined ) {
236
+
237
+ add_face( faces[ 0 ], faces[ 1 ], faces[ 2 ], normals_inds );
238
+
239
+ if ( ! ( uvs === undefined ) && uvs.length > 0 ) {
240
+
241
+ add_uvs( uvs[ 0 ], uvs[ 1 ], uvs[ 2 ] );
242
+
243
+ } else {
244
+ // add_uvs( 1, 2, 3 );
245
+ }
246
+
247
+ } else {
248
+
249
+ if ( ! ( normals_inds === undefined ) && normals_inds.length > 0 ) {
250
+
251
+ add_face( faces[ 0 ], faces[ 1 ], faces[ 3 ], [ normals_inds[ 0 ], normals_inds[ 1 ], normals_inds[ 3 ] ] );
252
+ add_face( faces[ 1 ], faces[ 2 ], faces[ 3 ], [ normals_inds[ 1 ], normals_inds[ 2 ], normals_inds[ 3 ] ] );
253
+
254
+ } else {
255
+
256
+ add_face( faces[ 0 ], faces[ 1 ], faces[ 3 ] );
257
+ add_face( faces[ 1 ], faces[ 2 ], faces[ 3 ] );
258
+
259
+ }
260
+
261
+ if ( ! ( uvs === undefined ) && uvs.length > 0 ) {
262
+
263
+ add_uvs( uvs[ 0 ], uvs[ 1 ], uvs[ 3 ] );
264
+ add_uvs( uvs[ 1 ], uvs[ 2 ], uvs[ 3 ] );
265
+
266
+ } else {
267
+ //add_uvs( 1, 2, 3 );
268
+ //add_uvs( 2, 3, 4 );
269
+ }
270
+
271
+ }
272
+
273
+ }
274
+
275
+
276
+ // v float float float
277
+
278
+ var vertex_pattern = /v( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/;
279
+
280
+ // vn float float float
281
+
282
+ var normal_pattern = /vn( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/;
283
+
284
+ // vt float float
285
+
286
+ var uv_pattern = /vt( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/;
287
+
288
+ // f vertex vertex vertex ...
289
+
290
+ var face_pattern1 = /f( +\d+)( +\d+)( +\d+)( +\d+)?/;
291
+
292
+ // f vertex/uv vertex/uv vertex/uv ...
293
+
294
+ var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))?/;
295
+
296
+ // f vertex/uv/normal vertex/uv/normal vertex/uv/normal ...
297
+
298
+ var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))?/;
299
+
300
+ // f vertex//normal vertex//normal vertex//normal ...
301
+
302
+ var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))?/;
303
+
304
+ //
305
+
306
+ var lines = data.split( "\n" );
307
+
308
+ for ( var i = 0; i < lines.length; i ++ ) {
309
+
310
+ var line = lines[ i ];
311
+ line = line.trim();
312
+
313
+ var result;
314
+
315
+ if ( line.length === 0 || line.charAt( 0 ) === '#' ) {
316
+
317
+ continue;
318
+
319
+ } else if ( ( result = vertex_pattern.exec( line ) ) !== null ) {
320
+
321
+ // ["v 1.0 2.0 3.0", "1.0", "2.0", "3.0"]
322
+
323
+ vertices.push( vector(
324
+ parseFloat( result[ 1 ] ),
325
+ parseFloat( result[ 2 ] ),
326
+ parseFloat( result[ 3 ] )
327
+ ) );
328
+
329
+ } else if ( ( result = normal_pattern.exec( line ) ) !== null ) {
330
+
331
+ // ["vn 1.0 2.0 3.0", "1.0", "2.0", "3.0"]
332
+
333
+ normals.push( vector(
334
+ parseFloat( result[ 1 ] ),
335
+ parseFloat( result[ 2 ] ),
336
+ parseFloat( result[ 3 ] )
337
+ ) );
338
+
339
+ } else if ( ( result = uv_pattern.exec( line ) ) !== null ) {
340
+
341
+ // ["vt 0.1 0.2", "0.1", "0.2"]
342
+
343
+ uvs.push( uv(
344
+ parseFloat( result[ 1 ] ),
345
+ parseFloat( result[ 2 ] )
346
+ ) );
347
+
348
+ } else if ( ( result = face_pattern1.exec( line ) ) !== null ) {
349
+
350
+ // ["f 1 2 3", "1", "2", "3", undefined]
351
+
352
+ handle_face_line( [ result[ 1 ], result[ 2 ], result[ 3 ], result[ 4 ] ] );
353
+
354
+ } else if ( ( result = face_pattern2.exec( line ) ) !== null ) {
355
+
356
+ // ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined]
357
+
358
+ handle_face_line(
359
+ [ result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ] ], //faces
360
+ [ result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] ] //uv
361
+ );
362
+
363
+ } else if ( ( result = face_pattern3.exec( line ) ) !== null ) {
364
+
365
+ // ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined]
366
+
367
+ handle_face_line(
368
+ [ result[ 2 ], result[ 6 ], result[ 10 ], result[ 14 ] ], //faces
369
+ [ result[ 3 ], result[ 7 ], result[ 11 ], result[ 15 ] ], //uv
370
+ [ result[ 4 ], result[ 8 ], result[ 12 ], result[ 16 ] ] //normal
371
+ );
372
+
373
+ } else if ( ( result = face_pattern4.exec( line ) ) !== null ) {
374
+
375
+ // ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined]
376
+
377
+ handle_face_line(
378
+ [ result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ] ], //faces
379
+ [ ], //uv
380
+ [ result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] ] //normal
381
+ );
382
+
383
+ } else if ( /^o /.test( line ) ) {
384
+
385
+ // object
386
+
387
+ meshN();
388
+ face_offset = face_offset + vertices.length;
389
+ vertices = [];
390
+ object = new THREE.Object3D();
391
+ object.name = line.substring( 2 ).trim();
392
+ group.add( object );
393
+
394
+ } else if ( /^g /.test( line ) ) {
395
+
396
+ // group
397
+
398
+ meshN( line.substring( 2 ).trim(), undefined );
399
+
400
+ } else if ( /^usemtl /.test( line ) ) {
401
+
402
+ // material
403
+
404
+ //meshN( undefined, line.substring( 7 ).trim() );
405
+ materialN( line.substring( 7 ).trim() );
406
+
407
+ } else if ( /^mtllib /.test( line ) ) {
408
+
409
+ // mtl file
410
+
411
+ if ( mtllibCallback ) {
412
+
413
+ var mtlfile = line.substring( 7 );
414
+ mtlfile = mtlfile.trim();
415
+ mtllibCallback( mtlfile );
416
+
417
+ }
418
+
419
+ } else if ( /^s /.test( line ) ) {
420
+
421
+ // Smooth shading
422
+
423
+ } else {
424
+
425
+ console.log( "THREE.OBJMTLLoader: Unhandled line " + line );
426
+
427
+ }
428
+
429
+ }
430
+
431
+ //Add last object
432
+ meshN( undefined, undefined );
433
+
434
+ return group;
435
+
436
+ }
437
+
438
+ };
439
+
440
+ THREE.EventDispatcher.prototype.apply( THREE.OBJMTLLoader.prototype );