x_ite 8.10.0 → 8.11.0

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 (138) hide show
  1. package/Makefile +3 -0
  2. package/build/bin/version.pl +28 -20
  3. package/build/docs/glTF-samples.pl +151 -0
  4. package/build/docs/nodes.pl +1 -1
  5. package/build/src/nodes.pl +41 -0
  6. package/dist/assets/components/Annotation.js +13 -13
  7. package/dist/assets/components/Annotation.min.js +1 -1
  8. package/dist/assets/components/CADGeometry.js +13 -13
  9. package/dist/assets/components/CADGeometry.min.js +1 -1
  10. package/dist/assets/components/CubeMapTexturing.js +30 -26
  11. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  12. package/dist/assets/components/DIS.js +14 -14
  13. package/dist/assets/components/DIS.min.js +1 -1
  14. package/dist/assets/components/EventUtilities.js +9 -9
  15. package/dist/assets/components/EventUtilities.min.js +1 -1
  16. package/dist/assets/components/Geometry2D.js +19 -19
  17. package/dist/assets/components/Geometry2D.min.js +1 -1
  18. package/dist/assets/components/Geospatial.js +33 -33
  19. package/dist/assets/components/Geospatial.min.js +1 -1
  20. package/dist/assets/components/HAnim.js +394 -30
  21. package/dist/assets/components/HAnim.min.js +1 -1
  22. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  23. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  24. package/dist/assets/components/Layout.js +26 -26
  25. package/dist/assets/components/Layout.min.js +1 -1
  26. package/dist/assets/components/NURBS.js +24 -24
  27. package/dist/assets/components/NURBS.min.js +1 -1
  28. package/dist/assets/components/ParticleSystems.js +73 -74
  29. package/dist/assets/components/ParticleSystems.min.js +1 -1
  30. package/dist/assets/components/Picking.js +18 -18
  31. package/dist/assets/components/Picking.min.js +1 -1
  32. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  33. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  34. package/dist/assets/components/Scripting.js +37 -37
  35. package/dist/assets/components/Scripting.min.js +1 -1
  36. package/dist/assets/components/Text.js +55 -63
  37. package/dist/assets/components/Text.min.js +1 -1
  38. package/dist/assets/components/TextureProjector.js +14 -14
  39. package/dist/assets/components/TextureProjector.min.js +1 -1
  40. package/dist/assets/components/Texturing3D.js +35 -31
  41. package/dist/assets/components/Texturing3D.min.js +1 -1
  42. package/dist/assets/components/VolumeRendering.js +20 -20
  43. package/dist/assets/components/VolumeRendering.min.js +1 -1
  44. package/dist/assets/components/X_ITE.js +9 -9
  45. package/dist/assets/components/X_ITE.min.js +1 -1
  46. package/dist/x_ite.css +1 -1
  47. package/dist/x_ite.js +1456 -844
  48. package/dist/x_ite.min.js +1 -1
  49. package/dist/x_ite.zip +0 -0
  50. package/docs/_config.yml +2 -2
  51. package/docs/_posts/components/Core/MetadataBoolean.md +6 -4
  52. package/docs/_posts/components/Core/MetadataDouble.md +6 -4
  53. package/docs/_posts/components/Core/MetadataFloat.md +6 -4
  54. package/docs/_posts/components/Core/MetadataInteger.md +6 -4
  55. package/docs/_posts/components/Core/MetadataSet.md +6 -4
  56. package/docs/_posts/components/Core/MetadataString.md +6 -4
  57. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +1 -1
  58. package/docs/_posts/components/HAnim/HAnimMotion.md +48 -48
  59. package/docs/_posts/components/RigidBodyPhysics/Contact.md +1 -1
  60. package/docs/_posts/getting-started.md +45 -35
  61. package/docs/_posts/reference/browser-services.md +6 -0
  62. package/docs/_posts/what's-new.md +23 -0
  63. package/docs/_tabs/playground.html +215 -15
  64. package/docs/assets/css/style.scss +35 -2
  65. package/docs/assets/js/example.js +95 -3
  66. package/docs/laboratory/gltf-sample-viewer.html +617 -240
  67. package/package.json +2 -2
  68. package/src/assets/shaders/Types.glsl.js +4 -0
  69. package/src/assets/shaders/webgl1/include/Hatch.glsl.js +2 -3
  70. package/src/assets/shaders/webgl2/Compose.fs.js +29 -0
  71. package/src/assets/shaders/webgl2/Compose.vs.js +14 -0
  72. package/src/assets/shaders/webgl2/include/Fragment.glsl.js +24 -2
  73. package/src/assets/shaders/webgl2/include/Hatch.glsl.js +2 -3
  74. package/src/assets/shaders/webgl2/include/Stipple.glsl.js +5 -3
  75. package/src/bookmarks.js +92 -5
  76. package/src/examples.js +1 -0
  77. package/src/standard/Math/Numbers/Quaternion.js +191 -13
  78. package/src/standard/Math/Numbers/Rotation4.js +23 -0
  79. package/src/standard/Time/{MicroTime.js → Time.js} +21 -28
  80. package/src/x_ite/Base/X3DChildObject.js +5 -4
  81. package/src/x_ite/Browser/Core/BrowserOptions.js +71 -60
  82. package/src/x_ite/Browser/Core/Context.js +2 -2
  83. package/src/x_ite/Browser/Core/X3DCoreContext.js +6 -0
  84. package/src/x_ite/Browser/DOMIntegration.js +0 -17
  85. package/src/x_ite/Browser/Navigation/ExamineViewer.js +5 -4
  86. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +7 -4
  87. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +20 -15
  88. package/src/x_ite/Browser/Shaders/Shaders.js +19 -15
  89. package/src/x_ite/Browser/Text/X3DTextContext.js +16 -16
  90. package/src/x_ite/Browser/Time/X3DTimeContext.js +3 -2
  91. package/src/x_ite/Browser/VERSION.js +1 -1
  92. package/src/x_ite/Browser/VolumeRendering/VolumeMaterial.js +2 -2
  93. package/src/x_ite/Browser/X3DBrowser.js +1 -2
  94. package/src/x_ite/Browser/X3DBrowserContext.js +0 -5
  95. package/src/x_ite/Components/Core/MetadataBoolean.js +8 -1
  96. package/src/x_ite/Components/Core/MetadataDouble.js +8 -1
  97. package/src/x_ite/Components/Core/MetadataFloat.js +8 -1
  98. package/src/x_ite/Components/Core/MetadataInteger.js +8 -1
  99. package/src/x_ite/Components/Core/MetadataSet.js +8 -1
  100. package/src/x_ite/Components/Core/MetadataString.js +8 -1
  101. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +9 -6
  102. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +2 -1
  103. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +1 -1
  104. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +5 -1
  105. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +2 -0
  106. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +34 -2
  107. package/src/x_ite/Components/HAnim/HAnimMotion.js +331 -15
  108. package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -3
  109. package/src/x_ite/Components/Lighting/PointLight.js +1 -3
  110. package/src/x_ite/Components/Lighting/SpotLight.js +1 -3
  111. package/src/x_ite/Components/Networking/X3DUrlObject.js +5 -4
  112. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +47 -51
  113. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +4 -2
  114. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
  115. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +1 -1
  116. package/src/x_ite/Components/Shape/FillProperties.js +4 -0
  117. package/src/x_ite/Components/Shape/LineProperties.js +4 -0
  118. package/src/x_ite/Components/Shape/PointProperties.js +4 -0
  119. package/src/x_ite/Components/Shape/X3DMaterialNode.js +44 -20
  120. package/src/x_ite/Components/Sound/AudioClip.js +2 -1
  121. package/src/x_ite/Components/Text/X3DFontStyleNode.js +13 -23
  122. package/src/x_ite/Components/Texturing/ImageTexture.js +2 -1
  123. package/src/x_ite/Components/Texturing/MovieTexture.js +2 -1
  124. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +2 -1
  125. package/src/x_ite/Components/Time/TimeSensor.js +25 -24
  126. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +5 -4
  127. package/src/x_ite/Execution/BindableList.js +3 -3
  128. package/src/x_ite/Execution/X3DScene.js +2 -0
  129. package/src/x_ite/Parser/XMLParser.js +12 -2
  130. package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +264 -26
  131. package/src/x_ite/Rendering/PointingBuffer.js +5 -7
  132. package/src/x_ite/Rendering/TextureBuffer.js +6 -14
  133. package/src/x_ite/Rendering/X3DRenderObject.js +28 -28
  134. package/src/x_ite/X3D.js +0 -1
  135. package/src/x_ite/X3DCanvasElement.js +2 -0
  136. package/src/x_ite.html +23 -24
  137. package/x_ite.min.html +23 -24
  138. /package/build/{bin → docs}/tags.pl +0 -0
@@ -17,12 +17,13 @@ $tab-count: {{ site.tabs | size | plus: 1 }}; // plus 1 for home tab
17
17
  --h3-color-strong: rgb(232, 201, 133);
18
18
  --h4-color: rgb(60, 107, 184);
19
19
  --h4-color-strong: rgb(175, 206, 255);
20
- --example-background-color: rgba(27, 27, 30, 0.4);
20
+ --example-background-color: rgba(0, 0, 0, 0.471);
21
21
  --button-background-color: black;
22
22
  --system-red: rgb(255, 69, 58);
23
23
  --system-yellow: rgb(255, 214, 10);
24
24
  --system-blue: rgb(10, 132, 255);
25
25
  --system-green: rgb(48, 209, 88);
26
+ --playground-toolbar-color: rgba(48, 17, 78, 0.7);
26
27
  --playground-editor-background: rgba(0, 0, 0, 0.2);
27
28
  }
28
29
 
@@ -32,11 +33,13 @@ $tab-count: {{ site.tabs | size | plus: 1 }}; // plus 1 for home tab
32
33
  --h3-color-strong: rgb(173, 81, 0);
33
34
  --h4-color: rgb(29, 80, 163);
34
35
  --h4-color-strong: rgb(10, 80, 144);
36
+ --example-background-color: rgba(235, 235, 255, 0.644);
35
37
  --button-background-color: white;
36
38
  --system-red: rgb(255, 59, 48);
37
39
  --system-yellow: rgb(255, 204, 0);
38
40
  --system-blue: rgb(0, 122, 255);
39
41
  --system-green: rgb(52, 199, 89);
42
+ --playground-toolbar-color: rgba(182, 143, 219, 0.7);
40
43
  --playground-editor-background: rgba(0, 0, 0, 0.03);
41
44
  }
42
45
 
@@ -228,7 +231,37 @@ small, .small {
228
231
  .example p {
229
232
  margin-top: 0;
230
233
  margin-bottom: 0;
231
- text-shadow: 1px 1px 0px var(--button-background-color);
234
+ }
235
+
236
+ .example .toolbar {
237
+ user-select: none;
238
+ -moz-user-select: none;
239
+ -webkit-user-select: none;
240
+ -ms-user-select: none;
241
+ background-color: var(--example-background-color);
242
+ }
243
+
244
+ .example .toolbar span {
245
+ cursor: pointer;
246
+ padding: 0 3px;
247
+ }
248
+
249
+ .example .toolbar span.selected {
250
+ color: var(--h2-color);
251
+ }
252
+
253
+ .example .toolbar span.separator {
254
+ border-left: 1px solid var(--text-color);
255
+ margin: 0 0 0 5px;
256
+ }
257
+
258
+ .example .toolbar span.dot::before {
259
+ content: "·";
260
+ margin: 0 3px 0 4px;
261
+ }
262
+
263
+ .example .toolbar span.separator + .separator {
264
+ display: none;
232
265
  }
233
266
 
234
267
  .example x3d-canvas {
@@ -3,6 +3,7 @@ $("table.examples a") .on ("click", function ()
3
3
  let
4
4
  div = $("div.example"),
5
5
  header = div .find (".header"),
6
+ toolbar = div .find (".toolbar"),
6
7
  canvas = div .find ("x3d-canvas"),
7
8
  zip = div .find ("zip");
8
9
 
@@ -13,9 +14,10 @@ $("table.examples a") .on ("click", function ()
13
14
  }
14
15
  else
15
16
  {
16
- div = $("<div></div>") .addClass ("example") .appendTo ("body");
17
- header = $("<p></p>") .addClass ("header") .appendTo (div);
18
- canvas = $("<x3d-canvas></x3d-canvas>") .appendTo (div);
17
+ div = $("<div></div>") .addClass ("example") .appendTo ("body");
18
+ header = $("<p></p>") .addClass ("header") .appendTo (div);
19
+ toolbar = $("<p></p>") .addClass ("toolbar") .appendTo (div);
20
+ canvas = $("<x3d-canvas></x3d-canvas>") .appendTo (div);
19
21
 
20
22
  $("<i></i>") .addClass (["fas", "fa-solid", "fa-circle-xmark", "fa-fw"]) .appendTo (div) .on ("click", function ()
21
23
  {
@@ -26,11 +28,101 @@ $("table.examples a") .on ("click", function ()
26
28
  zip = $("<a></a>") .addClass ("zip") .text ("Download ZIP Archive") .appendTo ($("<p></p>") .appendTo (div));
27
29
  }
28
30
 
31
+ canvas .prop ("browser") .getBrowserOptions () .reset ();
32
+
29
33
  header .text ($(this) .attr ("title"));
30
34
  canvas .attr ("src", $(this) .attr ("href"));
31
35
  zip .attr ("href", $(this) .attr ("href") .replace (/\.x3d$/, ".zip"));
32
36
 
37
+ updateToolbar (toolbar, canvas)
38
+
33
39
  console .log (`Loading ${$(this) .attr ("title")} ...`);
34
40
 
35
41
  return false;
36
42
  });
43
+
44
+ function updateToolbar (toolbar, canvas)
45
+ {
46
+ const browser = canvas .prop ("browser");
47
+
48
+ toolbar .empty ();
49
+
50
+ const antialiased = $("<span></span>")
51
+ .text ("antialiased")
52
+ .attr ("title", "Toggle antialiasing.")
53
+ .addClass (browser .getBrowserOption ("Antialiased") ? "selected" : "")
54
+ .on ("click", () =>
55
+ {
56
+ const value = !browser .getBrowserOption ("Antialiased");
57
+
58
+ browser .setBrowserOption ("Antialiased", value);
59
+
60
+ antialiased .toggleClass ("selected");
61
+ })
62
+ .appendTo (toolbar);
63
+
64
+ $("<span></span>") .addClass ("dot") .appendTo (toolbar);
65
+
66
+ const contentScale = $("<span></span>")
67
+ .text ("contentScale 1.0")
68
+ .attr ("title", "Toggle contentScale between 0.1, 1.0 and 2.0.")
69
+ .on ("click", () =>
70
+ {
71
+ const
72
+ index = ((contentScale .attr ("index") ?? 1) + 1) % 3,
73
+ value = [0.1, 1, 2][index];
74
+
75
+ browser .setBrowserOption ("ContentScale", value);
76
+
77
+ contentScale
78
+ .attr ("index", index)
79
+ .text ("contentScale " + value .toFixed (1))
80
+ })
81
+ .appendTo (toolbar);
82
+
83
+ $("<span></span>") .addClass ("dot") .appendTo (toolbar);
84
+
85
+ const pixelated = $("<span></span>")
86
+ .text ("pixelated")
87
+ .attr ("title", "Set CSS property image-rendering to pixelated.")
88
+ .addClass (canvas .css ("image-rendering") === "pixelated" ? "selected" : "")
89
+ .on ("click", () =>
90
+ {
91
+ canvas .css ("image-rendering", pixelated .hasClass ("selected") ? "unset" : "pixelated");
92
+
93
+ pixelated .toggleClass ("selected");
94
+ })
95
+ .appendTo (toolbar);
96
+
97
+ $("<span></span>") .addClass ("separator") .appendTo (toolbar);
98
+
99
+ const oit = $("<span></span>")
100
+ .text ("oit")
101
+ .attr ("title", "Toggle order independent transparency.")
102
+ .addClass (browser .getBrowserOption ("OrderIndependentTransparency") ? "selected" : "")
103
+ .on ("click", () =>
104
+ {
105
+ const value = !browser .getBrowserOption ("OrderIndependentTransparency");
106
+
107
+ browser .setBrowserOption ("OrderIndependentTransparency", value);
108
+
109
+ oit .toggleClass ("selected");
110
+ })
111
+ .appendTo (toolbar);
112
+
113
+ $("<span></span>") .addClass ("dot") .appendTo (toolbar);
114
+
115
+ const log = $("<span></span>")
116
+ .text ("log")
117
+ .attr ("title", "Toggle logarithmic depth buffer.")
118
+ .addClass (browser .getBrowserOption ("LogarithmicDepthBuffer") ? "selected" : "")
119
+ .on ("click", () =>
120
+ {
121
+ const value = !browser .getBrowserOption ("LogarithmicDepthBuffer");
122
+
123
+ browser .setBrowserOption ("LogarithmicDepthBuffer", value);
124
+
125
+ log .toggleClass ("selected");
126
+ })
127
+ .appendTo (toolbar);
128
+ }