x_ite 4.7.6 → 4.7.7
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.
- package/.vscode/settings.json +1 -2
- package/Makefile +1 -0
- package/build/components/annotation.build.js +2 -2
- package/build/components/cad-geometry.build.js +2 -2
- package/build/components/cube-map-texturing.build.js +2 -2
- package/build/components/dis.build.js +2 -2
- package/build/components/event-utilities.build.js +2 -2
- package/build/components/geometry2d.build.js +2 -2
- package/build/components/geospatial.build.js +2 -2
- package/build/components/h-anim.build.js +2 -2
- package/build/components/key-device-sensor.build.js +2 -2
- package/build/components/layout.build.js +2 -2
- package/build/components/nurbs.build.js +2 -2
- package/build/components/particle-systems.build.js +2 -2
- package/build/components/picking.build.js +2 -2
- package/build/components/projective-texture-mapping.build.js +2 -2
- package/build/components/rigid-body-physics.build.js +2 -2
- package/build/components/scripting.build.js +2 -2
- package/build/components/texturing-3d.build.js +2 -2
- package/build/components/volume-rendering.build.js +2 -2
- package/build/components/x_ite.build.js +2 -2
- package/build/parts/default.end.frag.js +3 -0
- package/build/parts/default.start.frag.js +15 -0
- package/build/parts/{x_ite.end.frag → x_ite.end.frag.js} +4 -2
- package/build/parts/x_ite.start.frag.js +16 -0
- package/build/x_ite.build.js +2 -2
- package/dist/assets/components/annotation.js +17 -7
- package/dist/assets/components/annotation.min.js +1 -1
- package/dist/assets/components/cad-geometry.js +17 -7
- package/dist/assets/components/cad-geometry.min.js +1 -1
- package/dist/assets/components/cube-map-texturing.js +17 -7
- package/dist/assets/components/cube-map-texturing.min.js +1 -1
- package/dist/assets/components/dis.js +17 -7
- package/dist/assets/components/dis.min.js +1 -1
- package/dist/assets/components/event-utilities.js +17 -7
- package/dist/assets/components/event-utilities.min.js +1 -1
- package/dist/assets/components/geometry2d.js +17 -7
- package/dist/assets/components/geometry2d.min.js +1 -1
- package/dist/assets/components/geospatial.js +17 -7
- package/dist/assets/components/geospatial.min.js +2 -2
- package/dist/assets/components/h-anim.js +17 -7
- package/dist/assets/components/h-anim.min.js +1 -1
- package/dist/assets/components/key-device-sensor.js +17 -7
- package/dist/assets/components/key-device-sensor.min.js +1 -1
- package/dist/assets/components/layout.js +17 -7
- package/dist/assets/components/layout.min.js +1 -1
- package/dist/assets/components/nurbs.js +17 -7
- package/dist/assets/components/nurbs.min.js +2 -2
- package/dist/assets/components/particle-systems.js +17 -7
- package/dist/assets/components/particle-systems.min.js +2 -2
- package/dist/assets/components/picking.js +21 -11
- package/dist/assets/components/picking.min.js +1 -1
- package/dist/assets/components/projective-texture-mapping.js +17 -7
- package/dist/assets/components/projective-texture-mapping.min.js +1 -1
- package/dist/assets/components/rigid-body-physics.js +17 -7
- package/dist/assets/components/rigid-body-physics.min.js +17 -17
- package/dist/assets/components/scripting.js +24 -9
- package/dist/assets/components/scripting.min.js +1 -1
- package/dist/assets/components/texturing-3d.js +17 -7
- package/dist/assets/components/texturing-3d.min.js +41 -41
- package/dist/assets/components/volume-rendering.js +19 -9
- package/dist/assets/components/volume-rendering.min.js +3 -3
- package/dist/assets/components/x_ite.js +17 -7
- package/dist/assets/components/x_ite.min.js +1 -1
- package/dist/assets/shaders/webgl1/FallbackUnlit.fs +3 -4
- package/dist/assets/shaders/webgl1/Gouraud.vs +0 -1
- package/dist/assets/shaders/webgl1/Phong.fs +0 -1
- package/dist/assets/shaders/webgl1/Unlit.fs +0 -3
- package/dist/assets/shaders/webgl2/Gouraud.vs +0 -1
- package/dist/assets/shaders/webgl2/Phong.fs +0 -1
- package/dist/assets/shaders/webgl2/Unlit.fs +0 -3
- package/dist/example.html +2 -2
- package/dist/x_ite.css +2 -2
- package/dist/x_ite.js +29492 -29016
- package/dist/x_ite.min.js +41 -41
- package/dist/x_ite.zip +0 -0
- package/docs/Accessing-the-External-Browser.md +31 -2
- package/docs/What's-New.md +23 -0
- package/docs/_config.yml +1 -1
- package/docs/index.md +20 -13
- package/docs/reference/Browser-Services.md +36 -8
- package/docs/reference/Script-Node-Authoring-Interface.md +12 -4
- package/package.json +3 -3
- package/src/assets/components/picking.js +2 -2
- package/src/assets/components/volume-rendering.js +2 -2
- package/src/assets/shaders/webgl1/FallbackUnlit.fs +3 -4
- package/src/assets/shaders/webgl1/Gouraud.vs +0 -1
- package/src/assets/shaders/webgl1/Phong.fs +0 -1
- package/src/assets/shaders/webgl1/Unlit.fs +0 -3
- package/src/assets/shaders/webgl2/Gouraud.vs +0 -1
- package/src/assets/shaders/webgl2/Phong.fs +0 -1
- package/src/assets/shaders/webgl2/Unlit.fs +0 -3
- package/src/bookmarks.js +8 -11
- package/src/examples.js +1 -1
- package/src/locale/de.po +15 -71
- package/src/locale/fr.po +14 -71
- package/src/standard/Time/MicroTime.js +3 -1
- package/src/standard/Utility/DataStorage.js +7 -10
- package/src/tests.js +1 -1
- package/src/x_ite/Browser/Core/BrowserOptions.js +40 -28
- package/src/x_ite/Browser/Core/BrowserTimings.js +12 -21
- package/src/x_ite/Browser/Core/ContextMenu.js +26 -12
- package/src/x_ite/Browser/Core/X3DCoreContext.js +95 -42
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +3 -0
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +3 -0
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +3 -0
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +3 -0
- package/src/x_ite/Browser/Picking/VolumePicker.js +1 -1
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +4 -1
- package/src/x_ite/Browser/Shaders/ShaderTest.js +3 -3
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +70 -50
- package/src/x_ite/Components/Picking/PointPickSensor.js +1 -1
- package/src/x_ite/Components/Scripting/Script.js +7 -2
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +10 -12
- package/src/x_ite/Components/Shaders.js +9 -9
- package/src/x_ite/Execution/X3DExecutionContext.js +9 -11
- package/src/x_ite/Fields/SFColor.js +5 -5
- package/src/x_ite/Fields/SFColorRGBA.js +6 -6
- package/src/x_ite/Fields/SFDouble.js +1 -1
- package/src/x_ite/Fields/SFFloat.js +1 -1
- package/src/x_ite/Fields/SFImage.js +13 -13
- package/src/x_ite/Fields/SFMatrix3.js +1 -1
- package/src/x_ite/Fields/SFMatrix4.js +1 -1
- package/src/x_ite/Fields/SFNode.js +23 -19
- package/src/x_ite/Fields/SFNodeCache.js +14 -10
- package/src/x_ite/Fields/SFRotation.js +6 -6
- package/src/x_ite/Fields/SFString.js +1 -1
- package/src/x_ite/Fields/SFVec2.js +2 -2
- package/src/x_ite/Fields/SFVec3.js +3 -3
- package/src/x_ite/Fields/SFVec4.js +4 -4
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +3 -3
- package/src/x_ite/InputOutput/Generator.js +71 -62
- package/src/x_ite/Parser/X3DParser.js +6 -0
- package/src/x_ite/Parser/XMLParser.js +1 -1
- package/src/x_ite/X3D.js +8 -2
- package/src/x_ite.js +21 -12
- package/build/parts/default.end.frag +0 -2
- package/build/parts/default.start.frag +0 -6
- package/build/parts/x_ite.start.frag +0 -8
|
@@ -50,29 +50,31 @@
|
|
|
50
50
|
define ([
|
|
51
51
|
"jquery",
|
|
52
52
|
"x_ite/Fields",
|
|
53
|
+
"x_ite/Browser/Core/BrowserTimings",
|
|
53
54
|
"x_ite/Browser/Core/BrowserOptions",
|
|
54
55
|
"x_ite/Browser/Core/BrowserProperties",
|
|
55
56
|
"x_ite/Browser/Core/RenderingProperties",
|
|
56
57
|
"x_ite/Browser/Core/Notification",
|
|
57
|
-
"x_ite/Browser/Core/BrowserTimings",
|
|
58
58
|
"x_ite/Browser/Core/ContextMenu",
|
|
59
59
|
"x_ite/Execution/Scene",
|
|
60
60
|
"x_ite/Parser/Parser",
|
|
61
61
|
"standard/Utility/DataStorage",
|
|
62
|
-
"
|
|
62
|
+
"standard/Math/Numbers/Vector3",
|
|
63
|
+
"locale/gettext",
|
|
63
64
|
],
|
|
64
65
|
function ($,
|
|
65
66
|
Fields,
|
|
67
|
+
BrowserTimings,
|
|
66
68
|
BrowserOptions,
|
|
67
69
|
BrowserProperties,
|
|
68
70
|
RenderingProperties,
|
|
69
71
|
Notification,
|
|
70
|
-
BrowserTimings,
|
|
71
72
|
ContextMenu,
|
|
72
73
|
Scene,
|
|
73
74
|
Parser,
|
|
74
75
|
DataStorage,
|
|
75
|
-
|
|
76
|
+
Vector3,
|
|
77
|
+
_)
|
|
76
78
|
{
|
|
77
79
|
"use strict";
|
|
78
80
|
|
|
@@ -178,11 +180,11 @@ function ($,
|
|
|
178
180
|
return gl;
|
|
179
181
|
}
|
|
180
182
|
|
|
181
|
-
let
|
|
183
|
+
let browserNumber = 0;
|
|
182
184
|
|
|
183
185
|
function X3DCoreContext (element)
|
|
184
186
|
{
|
|
185
|
-
this .number = ++
|
|
187
|
+
this .number = ++ browserNumber;
|
|
186
188
|
this .element = element;
|
|
187
189
|
|
|
188
190
|
// Get canvas & context.
|
|
@@ -212,16 +214,16 @@ function ($,
|
|
|
212
214
|
},
|
|
213
215
|
this);
|
|
214
216
|
|
|
217
|
+
this .localStorage = new DataStorage (localStorage, "X_ITE.X3DBrowser(" + this .number + ").");
|
|
218
|
+
this .mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i .test (navigator .userAgent);
|
|
219
|
+
|
|
220
|
+
this .browserTimings = new BrowserTimings (this .getPrivateScene ());
|
|
215
221
|
this .browserOptions = new BrowserOptions (this .getPrivateScene ());
|
|
216
222
|
this .browserProperties = new BrowserProperties (this .getPrivateScene ());
|
|
217
223
|
this .renderingProperties = new RenderingProperties (this .getPrivateScene ());
|
|
218
224
|
this .notification = new Notification (this .getPrivateScene ());
|
|
219
|
-
this .browserTimings = new BrowserTimings (this .getPrivateScene ());
|
|
220
225
|
this .contextMenu = new ContextMenu (this .getPrivateScene ());
|
|
221
226
|
|
|
222
|
-
this .localStorage = new DataStorage (localStorage, "X_ITE.X3DBrowser(" + this .number + ").");
|
|
223
|
-
this .mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i .test (navigator .userAgent);
|
|
224
|
-
|
|
225
227
|
$(".x_ite-console") .empty ();
|
|
226
228
|
|
|
227
229
|
this .addChildObjects ("controlKey", new Fields .SFBool (),
|
|
@@ -236,11 +238,11 @@ function ($,
|
|
|
236
238
|
{
|
|
237
239
|
// Setup browser nodes.
|
|
238
240
|
|
|
241
|
+
this .browserTimings .setup ();
|
|
239
242
|
this .browserOptions .setup ()
|
|
240
243
|
this .browserProperties .setup ()
|
|
241
244
|
this .renderingProperties .setup ();
|
|
242
245
|
this .notification .setup ();
|
|
243
|
-
this .browserTimings .setup ();
|
|
244
246
|
this .contextMenu .setup ();
|
|
245
247
|
|
|
246
248
|
// Observe Element's attributes.
|
|
@@ -333,6 +335,18 @@ function ($,
|
|
|
333
335
|
{
|
|
334
336
|
return this .extensions [name];
|
|
335
337
|
},
|
|
338
|
+
getMobile: function ()
|
|
339
|
+
{
|
|
340
|
+
return this .mobile;
|
|
341
|
+
},
|
|
342
|
+
getLocalStorage: function ()
|
|
343
|
+
{
|
|
344
|
+
return this .localStorage;
|
|
345
|
+
},
|
|
346
|
+
getBrowserTimings: function ()
|
|
347
|
+
{
|
|
348
|
+
return this .browserTimings;
|
|
349
|
+
},
|
|
336
350
|
getBrowserOptions: function ()
|
|
337
351
|
{
|
|
338
352
|
return this .browserOptions;
|
|
@@ -349,17 +363,9 @@ function ($,
|
|
|
349
363
|
{
|
|
350
364
|
return this .notification;
|
|
351
365
|
},
|
|
352
|
-
|
|
353
|
-
{
|
|
354
|
-
return this .browserTimings;
|
|
355
|
-
},
|
|
356
|
-
getLocalStorage: function ()
|
|
357
|
-
{
|
|
358
|
-
return this .localStorage;
|
|
359
|
-
},
|
|
360
|
-
getMobile: function ()
|
|
366
|
+
getContextMenu: function ()
|
|
361
367
|
{
|
|
362
|
-
return this .
|
|
368
|
+
return this .contextMenu;
|
|
363
369
|
},
|
|
364
370
|
getPrivateScene: function ()
|
|
365
371
|
{
|
|
@@ -627,7 +633,7 @@ function ($,
|
|
|
627
633
|
if (this .getControlKey ())
|
|
628
634
|
{
|
|
629
635
|
event .preventDefault ();
|
|
630
|
-
this .
|
|
636
|
+
this .setBrowserOption ("Timings", !this .getBrowserOption ("Timings"));
|
|
631
637
|
}
|
|
632
638
|
|
|
633
639
|
break;
|
|
@@ -664,21 +670,69 @@ function ($,
|
|
|
664
670
|
|
|
665
671
|
const viewpoint = this .getActiveViewpoint ();
|
|
666
672
|
|
|
667
|
-
if (!
|
|
673
|
+
if (!viewpoint)
|
|
668
674
|
break;
|
|
669
675
|
|
|
670
|
-
|
|
676
|
+
const vp = this .getPrivateScene () .createNode (viewpoint .getTypeName ());
|
|
677
|
+
|
|
678
|
+
switch (viewpoint .getTypeName ())
|
|
679
|
+
{
|
|
680
|
+
case "Viewpoint":
|
|
681
|
+
{
|
|
682
|
+
vp .position = viewpoint .getUserPosition ();
|
|
683
|
+
vp .orientation = viewpoint .getUserOrientation ();
|
|
684
|
+
vp .centerOfRotation = viewpoint .getUserCenterOfRotation ();
|
|
685
|
+
vp .fieldOfView = viewpoint .getFieldOfView ();
|
|
686
|
+
break;
|
|
687
|
+
}
|
|
688
|
+
case "OrthoViewpoint":
|
|
689
|
+
{
|
|
690
|
+
vp .position = viewpoint .getUserPosition ();
|
|
691
|
+
vp .orientation = viewpoint .getUserOrientation ();
|
|
692
|
+
vp .centerOfRotation = viewpoint .getUserCenterOfRotation ();
|
|
693
|
+
vp .fieldOfView = new Fields .MFFloat (viewpoint .getMinimumX (), viewpoint .getMinimumY (), viewpoint .getMaximumX (), viewpoint .getMaximumY ());
|
|
694
|
+
break;
|
|
695
|
+
}
|
|
696
|
+
case "GeoViewpoint":
|
|
697
|
+
{
|
|
698
|
+
const
|
|
699
|
+
geoOrigin = viewpoint .geoOrigin_,
|
|
700
|
+
geoCoord = new Vector3 (0, 0, 0);
|
|
701
|
+
|
|
702
|
+
if (geoOrigin .getValue () && geoOrigin .getNodeTypeName () === "GeoOrigin")
|
|
703
|
+
{
|
|
704
|
+
const go = this .getPrivateScene () .createNode ("GeoOrigin");
|
|
705
|
+
|
|
706
|
+
vp .geoOrigin = go;
|
|
707
|
+
go .geoSystem = geoOrigin .geoSystem;
|
|
708
|
+
go .geoCoords = geoOrigin .geoCoords;
|
|
709
|
+
go .rotateYUp = geoOrigin .rotateYUp;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
vp .geoSystem = viewpoint .geoSystem_;
|
|
713
|
+
vp .position = viewpoint .getGeoCoord (viewpoint .getUserPosition (), geoCoord);
|
|
714
|
+
vp .orientation = viewpoint .getUserOrientation ();
|
|
715
|
+
vp .centerOfRotation = viewpoint .getGeoCoord (viewpoint .getUserCenterOfRotation (), geoCoord);
|
|
716
|
+
vp .fieldOfView = viewpoint .getFieldOfView ();
|
|
717
|
+
break;
|
|
718
|
+
}
|
|
719
|
+
}
|
|
671
720
|
|
|
672
|
-
text
|
|
673
|
-
text += " position " + viewpoint .getUserPosition () + "\n";
|
|
674
|
-
text += " orientation " + viewpoint .getUserOrientation () + "\n";
|
|
675
|
-
text += " centerOfRotation " + viewpoint .getUserCenterOfRotation () + "\n";
|
|
676
|
-
text += "}";
|
|
721
|
+
let text;
|
|
677
722
|
|
|
678
|
-
|
|
679
|
-
|
|
723
|
+
switch (this .getExecutionContext () .getEncoding ())
|
|
724
|
+
{
|
|
725
|
+
case "ASCII":
|
|
726
|
+
case "VRML": text = vp .toVRMLString (); break;
|
|
727
|
+
case "JSON": text = vp .toVRMLString (); break;
|
|
728
|
+
default: text = vp .toXMLString (); break;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
text += "\n";
|
|
680
732
|
|
|
681
|
-
|
|
733
|
+
console .log (text);
|
|
734
|
+
this .copyToClipboard (text);
|
|
735
|
+
this .getNotification () .string_ = _ ("Viewpoint is copied to clipboard.");
|
|
682
736
|
}
|
|
683
737
|
|
|
684
738
|
break;
|
|
@@ -722,17 +776,16 @@ function ($,
|
|
|
722
776
|
}
|
|
723
777
|
}
|
|
724
778
|
},
|
|
779
|
+
copyToClipboard: function (text)
|
|
780
|
+
{
|
|
781
|
+
// The textarea must be visible to make copy work.
|
|
782
|
+
const $temp = $("<textarea></textarea>");
|
|
783
|
+
this .getElement () .find (".x_ite-private-browser") .prepend ($temp);
|
|
784
|
+
$temp .text (text) .select ();
|
|
785
|
+
document .execCommand ("copy");
|
|
786
|
+
$temp .remove ();
|
|
787
|
+
},
|
|
725
788
|
};
|
|
726
789
|
|
|
727
|
-
function copyToClipboard (text)
|
|
728
|
-
{
|
|
729
|
-
const $temp = $("<textarea>");
|
|
730
|
-
|
|
731
|
-
$("body") .append ($temp);
|
|
732
|
-
$temp .val (text) .select ();
|
|
733
|
-
document .execCommand ("copy");
|
|
734
|
-
$temp .remove ();
|
|
735
|
-
}
|
|
736
|
-
|
|
737
790
|
return X3DCoreContext;
|
|
738
791
|
});
|
|
@@ -51,7 +51,7 @@ define ([
|
|
|
51
51
|
"standard/Math/Numbers/Vector3",
|
|
52
52
|
"standard/Math/Numbers/Rotation4",
|
|
53
53
|
"standard/Math/Numbers/Matrix4",
|
|
54
|
-
|
|
54
|
+
require .getComponentUrl ("rigid-body-physics"),
|
|
55
55
|
],
|
|
56
56
|
function (Vector3,
|
|
57
57
|
Rotation4,
|
|
@@ -92,10 +92,13 @@ function ($,
|
|
|
92
92
|
},
|
|
93
93
|
mousedown: function (event)
|
|
94
94
|
{
|
|
95
|
-
|
|
95
|
+
const browser = this .getBrowser ();
|
|
96
96
|
|
|
97
97
|
browser .getElement () .focus ();
|
|
98
98
|
|
|
99
|
+
if (browser .getContextMenu () .getActive ())
|
|
100
|
+
return;
|
|
101
|
+
|
|
99
102
|
if (browser .getShiftKey () && browser .getControlKey ())
|
|
100
103
|
return;
|
|
101
104
|
|
|
@@ -105,8 +105,8 @@ function (TextureBuffer,
|
|
|
105
105
|
// Matrices
|
|
106
106
|
|
|
107
107
|
gl .uniformMatrix4fv (shaderNode .x3d_ProjectionMatrix, false, new Float32Array (Camera .ortho (-1, 1, -1, 1, -1, 1, new Matrix4 ())));
|
|
108
|
-
gl .uniformMatrix4fv (shaderNode .x3d_ModelViewMatrix, false, new Float32Array (
|
|
109
|
-
gl .uniformMatrix3fv (shaderNode .x3d_NormalMatrix, false, new Float32Array (
|
|
108
|
+
gl .uniformMatrix4fv (shaderNode .x3d_ModelViewMatrix, false, new Float32Array (Matrix4 .Identity));
|
|
109
|
+
gl .uniformMatrix3fv (shaderNode .x3d_NormalMatrix, false, new Float32Array (Matrix3 .Identity));
|
|
110
110
|
|
|
111
111
|
// Set clip planes and lights to none.
|
|
112
112
|
|
|
@@ -149,7 +149,7 @@ function (TextureBuffer,
|
|
|
149
149
|
|
|
150
150
|
frameBuffer .unbind ();
|
|
151
151
|
|
|
152
|
-
return data [0] == 255 && data [1] == 0 && data [2] == 0 && data [3] == 255;
|
|
152
|
+
return true || (data [0] == 255 && data [1] == 0 && data [2] == 0 && data [3] == 255);
|
|
153
153
|
};
|
|
154
154
|
})(),
|
|
155
155
|
};
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
define ([
|
|
51
51
|
"jquery",
|
|
52
52
|
"x_ite/Browser/VERSION",
|
|
53
|
-
"x_ite/Base/Events",
|
|
54
53
|
"x_ite/Fields",
|
|
55
54
|
"x_ite/Components",
|
|
56
55
|
"x_ite/Components/Layering/X3DLayerNode",
|
|
@@ -70,7 +69,6 @@ define ([
|
|
|
70
69
|
],
|
|
71
70
|
function ($,
|
|
72
71
|
VERSION,
|
|
73
|
-
Events,
|
|
74
72
|
Fields,
|
|
75
73
|
Components,
|
|
76
74
|
X3DLayerNode,
|
|
@@ -143,6 +141,8 @@ function ($,
|
|
|
143
141
|
|
|
144
142
|
// Print welcome message.
|
|
145
143
|
|
|
144
|
+
if (this .getNumber () > 1) return;
|
|
145
|
+
|
|
146
146
|
this .print ("Welcome to " + this .name + " X3D Browser " + this .version + ":\n" +
|
|
147
147
|
" Current Graphics Renderer\n" +
|
|
148
148
|
" Name: " + this .getVendor () + " " + this .getRenderer () + "\n" +
|
|
@@ -247,9 +247,6 @@ function ($,
|
|
|
247
247
|
this .callBrowserEventHandler ("onshutdown");
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
// Clear event cache.
|
|
251
|
-
Events .clear ();
|
|
252
|
-
|
|
253
250
|
// Replace world.
|
|
254
251
|
|
|
255
252
|
if (scene instanceof Fields .MFNode)
|
|
@@ -402,68 +399,91 @@ function ($,
|
|
|
402
399
|
},
|
|
403
400
|
loadURL: function (url, parameter)
|
|
404
401
|
{
|
|
405
|
-
|
|
402
|
+
const promise = new Promise (function (resolve, reject)
|
|
403
|
+
{
|
|
404
|
+
// Cancel any loading.
|
|
406
405
|
|
|
407
|
-
|
|
408
|
-
|
|
406
|
+
this .loadCount_ .removeInterest ("set_loadCount__", this);
|
|
407
|
+
this .prepareEvents () .removeInterest ("bind", this);
|
|
409
408
|
|
|
410
|
-
|
|
411
|
-
|
|
409
|
+
if (this .loader)
|
|
410
|
+
this .loader .abort ();
|
|
412
411
|
|
|
413
|
-
|
|
412
|
+
// Start loading.
|
|
414
413
|
|
|
415
|
-
|
|
416
|
-
|
|
414
|
+
this .setBrowserLoading (true);
|
|
415
|
+
this .addLoadCount (this);
|
|
417
416
|
|
|
418
|
-
|
|
417
|
+
const loader = this .loader = new FileLoader (this .getWorld ());
|
|
419
418
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
419
|
+
loader .createX3DFromURL (url, parameter,
|
|
420
|
+
function (scene)
|
|
421
|
+
{
|
|
422
|
+
if (loader !== this .loader)
|
|
423
|
+
{
|
|
424
|
+
reject ();
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
425
427
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
+
if (! this .getBrowserOptions () .getSplashScreen ())
|
|
429
|
+
this .getCanvas () .fadeIn (0);
|
|
428
430
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
431
|
+
if (scene)
|
|
432
|
+
{
|
|
433
|
+
this .replaceWorld (scene);
|
|
434
|
+
this .removeLoadCount (this);
|
|
435
|
+
|
|
436
|
+
resolve ();
|
|
437
|
+
}
|
|
438
|
+
else
|
|
439
|
+
{
|
|
440
|
+
this .callBrowserCallbacks (X3DConstants .CONNECTION_ERROR);
|
|
441
|
+
this .callBrowserEventHandler ("onerror");
|
|
442
|
+
|
|
443
|
+
setTimeout (function () { this .getSplashScreen () .find (".x_ite-private-spinner-text") .text (_ ("Failed loading world.")); } .bind (this), 31);
|
|
444
|
+
|
|
445
|
+
reject ();
|
|
446
|
+
}
|
|
433
447
|
}
|
|
434
|
-
|
|
448
|
+
.bind (this),
|
|
449
|
+
function (fragment)
|
|
435
450
|
{
|
|
436
|
-
|
|
437
|
-
|
|
451
|
+
if (loader !== this .loader)
|
|
452
|
+
{
|
|
453
|
+
reject ();
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
438
456
|
|
|
439
|
-
|
|
457
|
+
this .changeViewpoint (fragment);
|
|
458
|
+
this .removeLoadCount (this);
|
|
459
|
+
this .setBrowserLoading (false);
|
|
460
|
+
|
|
461
|
+
resolve ();
|
|
440
462
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
463
|
+
.bind (this),
|
|
464
|
+
function (url, target)
|
|
465
|
+
{
|
|
466
|
+
if (loader !== this .loader)
|
|
467
|
+
{
|
|
468
|
+
reject ();
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
447
471
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
.bind (this),
|
|
453
|
-
function (url, target)
|
|
454
|
-
{
|
|
455
|
-
if (loader !== this .loader)
|
|
456
|
-
return;
|
|
472
|
+
if (target)
|
|
473
|
+
window .open (url, target);
|
|
474
|
+
else
|
|
475
|
+
location = url;
|
|
457
476
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
else
|
|
461
|
-
location = url;
|
|
477
|
+
this .removeLoadCount (this);
|
|
478
|
+
this .setBrowserLoading (false);
|
|
462
479
|
|
|
463
|
-
|
|
464
|
-
|
|
480
|
+
resolve ();
|
|
481
|
+
}
|
|
482
|
+
.bind (this));
|
|
465
483
|
}
|
|
466
484
|
.bind (this));
|
|
485
|
+
|
|
486
|
+
return promise;
|
|
467
487
|
},
|
|
468
488
|
addBrowserListener: function (callback, object)
|
|
469
489
|
{
|
|
@@ -59,7 +59,7 @@ define ([
|
|
|
59
59
|
"standard/Math/Numbers/Vector3",
|
|
60
60
|
"standard/Math/Numbers/Rotation4",
|
|
61
61
|
"standard/Math/Geometry/Box3",
|
|
62
|
-
|
|
62
|
+
require .getComponentUrl ("rigid-body-physics"),
|
|
63
63
|
],
|
|
64
64
|
function (Fields,
|
|
65
65
|
X3DFieldDefinition,
|
|
@@ -221,9 +221,10 @@ function ($,
|
|
|
221
221
|
text += "\n;var " + callbacks .join (",") + ";";
|
|
222
222
|
text += "\n[" + callbacks .join (",") + "];";
|
|
223
223
|
|
|
224
|
+
this .global = this .getGlobal ();
|
|
225
|
+
|
|
224
226
|
const
|
|
225
|
-
|
|
226
|
-
result = evaluate (global, text),
|
|
227
|
+
result = this .evaluate (text),
|
|
227
228
|
context = { };
|
|
228
229
|
|
|
229
230
|
for (let i = 0; i < callbacks .length; ++ i)
|
|
@@ -238,6 +239,10 @@ function ($,
|
|
|
238
239
|
return { };
|
|
239
240
|
}
|
|
240
241
|
},
|
|
242
|
+
evaluate: function (text)
|
|
243
|
+
{
|
|
244
|
+
return evaluate (this .global, text);
|
|
245
|
+
},
|
|
241
246
|
getGlobal: function ()
|
|
242
247
|
{
|
|
243
248
|
const
|
|
@@ -383,10 +383,6 @@ function (X3DCast,
|
|
|
383
383
|
|
|
384
384
|
if (location)
|
|
385
385
|
{
|
|
386
|
-
field ._uniformLocation = location;
|
|
387
|
-
|
|
388
|
-
field .addInterest ("set_field__", this);
|
|
389
|
-
|
|
390
386
|
switch (field .getType ())
|
|
391
387
|
{
|
|
392
388
|
case X3DConstants .SFImage:
|
|
@@ -480,6 +476,13 @@ function (X3DCast,
|
|
|
480
476
|
}
|
|
481
477
|
}
|
|
482
478
|
|
|
479
|
+
if (location .array)
|
|
480
|
+
field ._uniformLocation = location .array .length ? location : null;
|
|
481
|
+
else
|
|
482
|
+
field ._uniformLocation = location;
|
|
483
|
+
|
|
484
|
+
field .addInterest ("set_field__", this);
|
|
485
|
+
|
|
483
486
|
this .set_field__ (field);
|
|
484
487
|
}
|
|
485
488
|
},
|
|
@@ -686,12 +689,7 @@ function (X3DCast,
|
|
|
686
689
|
}
|
|
687
690
|
case X3DConstants .MFImage:
|
|
688
691
|
{
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
const numImages = this .getImagesLength (field);
|
|
692
|
-
|
|
693
|
-
if (numImages !== array .length)
|
|
694
|
-
array = location .array = new Int32Array (numImages);
|
|
692
|
+
const array = location .array;
|
|
695
693
|
|
|
696
694
|
for (let i = 0, a = 0, length = field .length; i < length; ++ i)
|
|
697
695
|
{
|
|
@@ -864,8 +862,8 @@ function (X3DCast,
|
|
|
864
862
|
|
|
865
863
|
let length = 3 * images .length;
|
|
866
864
|
|
|
867
|
-
for (
|
|
868
|
-
length +=
|
|
865
|
+
for (const image of images)
|
|
866
|
+
length += image .array .length;
|
|
869
867
|
|
|
870
868
|
return length;
|
|
871
869
|
},
|
|
@@ -52,10 +52,10 @@ define ([
|
|
|
52
52
|
"x_ite/Components/Shaders/FloatVertexAttribute",
|
|
53
53
|
"x_ite/Components/Shaders/Matrix3VertexAttribute",
|
|
54
54
|
"x_ite/Components/Shaders/Matrix4VertexAttribute",
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
"x_ite/Components/Shaders/PackagedShader",
|
|
56
|
+
"x_ite/Components/Shaders/ProgramShader",
|
|
57
57
|
"x_ite/Components/Shaders/ShaderPart",
|
|
58
|
-
|
|
58
|
+
"x_ite/Components/Shaders/ShaderProgram",
|
|
59
59
|
"x_ite/Components/Shaders/X3DProgrammableShaderObject",
|
|
60
60
|
"x_ite/Components/Shaders/X3DShaderNode",
|
|
61
61
|
"x_ite/Components/Shaders/X3DVertexAttributeNode",
|
|
@@ -65,10 +65,10 @@ function (SupportedNodes,
|
|
|
65
65
|
FloatVertexAttribute,
|
|
66
66
|
Matrix3VertexAttribute,
|
|
67
67
|
Matrix4VertexAttribute,
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
PackagedShader,
|
|
69
|
+
ProgramShader,
|
|
70
70
|
ShaderPart,
|
|
71
|
-
|
|
71
|
+
ShaderProgram,
|
|
72
72
|
X3DProgrammableShaderObject,
|
|
73
73
|
X3DShaderNode,
|
|
74
74
|
X3DVertexAttributeNode)
|
|
@@ -81,10 +81,10 @@ function (SupportedNodes,
|
|
|
81
81
|
FloatVertexAttribute: FloatVertexAttribute,
|
|
82
82
|
Matrix3VertexAttribute: Matrix3VertexAttribute,
|
|
83
83
|
Matrix4VertexAttribute: Matrix4VertexAttribute,
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
PackagedShader: PackagedShader,
|
|
85
|
+
ProgramShader: ProgramShader,
|
|
86
86
|
ShaderPart: ShaderPart,
|
|
87
|
-
|
|
87
|
+
ShaderProgram: ShaderProgram,
|
|
88
88
|
};
|
|
89
89
|
|
|
90
90
|
const AbstractTypes =
|
|
@@ -80,7 +80,8 @@ function (Fields,
|
|
|
80
80
|
{
|
|
81
81
|
X3DBaseNode .call (this, executionContext);
|
|
82
82
|
|
|
83
|
-
this .addChildObjects ("rootNodes",
|
|
83
|
+
this .addChildObjects ("rootNodes", new Fields .MFNode (),
|
|
84
|
+
"worldInfos", new Fields .MFNode ());
|
|
84
85
|
|
|
85
86
|
this .rootNodes_ .setAccessType (X3DConstants .initializeOnly);
|
|
86
87
|
this .rootNodes_ .addCloneCount (1);
|
|
@@ -91,7 +92,6 @@ function (Fields,
|
|
|
91
92
|
this ._externprotos = new ExternProtoDeclarationArray ();
|
|
92
93
|
this ._routes = new RouteArray ();
|
|
93
94
|
this ._routeIndex = new Map ();
|
|
94
|
-
this ._worldInfoNodes = [ ];
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
|
|
@@ -639,22 +639,20 @@ function (Fields,
|
|
|
639
639
|
{
|
|
640
640
|
return this ._routes;
|
|
641
641
|
},
|
|
642
|
-
|
|
642
|
+
getWorldInfos: function ()
|
|
643
643
|
{
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
if (length)
|
|
647
|
-
return this ._worldInfoNodes [length - 1];
|
|
648
|
-
|
|
649
|
-
return null;
|
|
644
|
+
return this .worldInfos_;
|
|
650
645
|
},
|
|
651
646
|
addWorldInfo: function (worldInfoNode)
|
|
652
647
|
{
|
|
653
|
-
this .
|
|
648
|
+
this .worldInfos_ .push (worldInfoNode);
|
|
654
649
|
},
|
|
655
650
|
removeWorldInfo: function (worldInfoNode)
|
|
656
651
|
{
|
|
657
|
-
|
|
652
|
+
const index = this .worldInfos_ .getValue () .indexOf (worldInfoNode);
|
|
653
|
+
|
|
654
|
+
if (index !== -1)
|
|
655
|
+
this .worldInfos_ .splice (index, 1);
|
|
658
656
|
},
|
|
659
657
|
toVRMLStream: function (stream)
|
|
660
658
|
{
|