x_ite 4.2.17 → 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.
Files changed (903) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  2. package/.vscode/launch.json +15 -0
  3. package/.vscode/settings.json +12 -0
  4. package/.vscode/tasks.json +25 -0
  5. package/Makefile +27 -10
  6. package/README.md +13 -145
  7. package/build/bin/dist.pl +65 -8
  8. package/build/bin/version-number.pl +25 -0
  9. package/build/bin/version.pl +54 -14
  10. package/build/components/annotation.build.js +15 -0
  11. package/build/components/cad-geometry.build.js +15 -0
  12. package/build/components/cube-map-texturing.build.js +15 -0
  13. package/build/components/dis.build.js +15 -0
  14. package/build/components/event-utilities.build.js +15 -0
  15. package/build/components/geometry2d.build.js +15 -0
  16. package/build/components/geospatial.build.js +15 -0
  17. package/build/components/h-anim.build.js +15 -0
  18. package/build/components/key-device-sensor.build.js +15 -0
  19. package/build/components/layout.build.js +15 -0
  20. package/build/components/nurbs.build.js +15 -0
  21. package/build/components/particle-systems.build.js +15 -0
  22. package/build/components/picking.build.js +15 -0
  23. package/build/components/projective-texture-mapping.build.js +15 -0
  24. package/build/components/rigid-body-physics.build.js +15 -0
  25. package/build/components/scripting.build.js +15 -0
  26. package/build/components/texturing-3d.build.js +15 -0
  27. package/build/components/volume-rendering.build.js +15 -0
  28. package/build/components/x_ite.build.js +15 -0
  29. package/build/parts/default.end.frag.js +3 -0
  30. package/build/parts/default.start.frag.js +15 -0
  31. package/build/parts/x_ite.end.frag.js +25 -0
  32. package/build/parts/x_ite.start.frag.js +16 -0
  33. package/build/x_ite.build.js +5 -2
  34. package/dist/{components/texturing-3d.js → assets/components/annotation.js} +341 -263
  35. package/dist/assets/components/annotation.min.js +1 -0
  36. package/dist/{components → assets/components}/cad-geometry.js +180 -76
  37. package/dist/assets/components/cad-geometry.min.js +1 -0
  38. package/dist/assets/components/cube-map-texturing.js +1222 -0
  39. package/dist/assets/components/cube-map-texturing.min.js +1 -0
  40. package/dist/assets/components/dis.js +918 -0
  41. package/dist/assets/components/dis.min.js +1 -0
  42. package/dist/assets/components/event-utilities.js +1124 -0
  43. package/dist/assets/components/event-utilities.min.js +1 -0
  44. package/dist/assets/components/geometry2d.js +2200 -0
  45. package/dist/assets/components/geometry2d.min.js +1 -0
  46. package/dist/{components → assets/components}/geospatial.js +364 -269
  47. package/dist/assets/components/geospatial.min.js +2 -0
  48. package/dist/{components → assets/components}/h-anim.js +224 -62
  49. package/dist/assets/components/h-anim.min.js +1 -0
  50. package/dist/assets/components/key-device-sensor.js +860 -0
  51. package/dist/assets/components/key-device-sensor.min.js +1 -0
  52. package/dist/assets/components/layout.js +2018 -0
  53. package/dist/assets/components/layout.min.js +1 -0
  54. package/dist/{components → assets/components}/nurbs.js +632 -348
  55. package/dist/assets/components/nurbs.min.js +2 -0
  56. package/dist/{components → assets/components}/particle-systems.js +514 -476
  57. package/dist/assets/components/particle-systems.min.js +2 -0
  58. package/dist/assets/components/picking.js +2491 -0
  59. package/dist/assets/components/picking.min.js +1 -0
  60. package/dist/assets/components/projective-texture-mapping.js +823 -0
  61. package/dist/assets/components/projective-texture-mapping.min.js +1 -0
  62. package/dist/assets/components/rigid-body-physics.js +4579 -0
  63. package/dist/assets/components/rigid-body-physics.min.js +59 -0
  64. package/dist/assets/components/scripting.js +816 -0
  65. package/dist/assets/components/scripting.min.js +1 -0
  66. package/dist/assets/components/texturing-3d.js +10064 -0
  67. package/dist/assets/components/texturing-3d.min.js +48 -0
  68. package/dist/assets/components/volume-rendering.js +3976 -0
  69. package/dist/assets/components/volume-rendering.min.js +3 -0
  70. package/dist/assets/components/x_ite.js +295 -0
  71. package/dist/assets/components/x_ite.min.js +1 -0
  72. package/{fonts → dist/assets/fonts}/DroidSerif-Bold.ttf +0 -0
  73. package/{fonts → dist/assets/fonts}/DroidSerif-BoldItalic.ttf +0 -0
  74. package/{fonts → dist/assets/fonts}/DroidSerif-Italic.ttf +0 -0
  75. package/{fonts → dist/assets/fonts}/DroidSerif-Regular.ttf +0 -0
  76. package/{fonts → dist/assets/fonts}/Ubuntu-B.ttf +0 -0
  77. package/{fonts → dist/assets/fonts}/Ubuntu-BI.ttf +0 -0
  78. package/{fonts → dist/assets/fonts}/Ubuntu-R.ttf +0 -0
  79. package/{fonts → dist/assets/fonts}/Ubuntu-RI.ttf +0 -0
  80. package/{fonts → dist/assets/fonts}/UbuntuMono-B.ttf +0 -0
  81. package/{fonts → dist/assets/fonts}/UbuntuMono-BI.ttf +0 -0
  82. package/{fonts → dist/assets/fonts}/UbuntuMono-R.ttf +0 -0
  83. package/{fonts → dist/assets/fonts}/UbuntuMono-RI.ttf +0 -0
  84. package/dist/assets/hatching/0.png +0 -0
  85. package/dist/assets/hatching/1.png +0 -0
  86. package/dist/assets/hatching/10.png +0 -0
  87. package/dist/assets/hatching/11.png +0 -0
  88. package/dist/assets/hatching/12.png +0 -0
  89. package/dist/assets/hatching/13.png +0 -0
  90. package/dist/assets/hatching/14.png +0 -0
  91. package/dist/assets/hatching/15.png +0 -0
  92. package/dist/assets/hatching/16.png +0 -0
  93. package/dist/assets/hatching/17.png +0 -0
  94. package/dist/assets/hatching/18.png +0 -0
  95. package/dist/assets/hatching/19.png +0 -0
  96. package/dist/assets/hatching/2.png +0 -0
  97. package/dist/assets/hatching/3.png +0 -0
  98. package/dist/assets/hatching/4.png +0 -0
  99. package/dist/assets/hatching/5.png +0 -0
  100. package/dist/assets/hatching/6.png +0 -0
  101. package/dist/assets/hatching/7.png +0 -0
  102. package/dist/assets/hatching/8.png +0 -0
  103. package/dist/assets/hatching/9.png +0 -0
  104. package/dist/{images → assets/images}/ExamineViewer.png +0 -0
  105. package/dist/{images → assets/images}/FlyViewer.png +0 -0
  106. package/dist/{images → assets/images}/NoneViewer.png +0 -0
  107. package/dist/{images → assets/images}/PlaneViewer.png +0 -0
  108. package/dist/{images → assets/images}/PrimitiveQuality.png +0 -0
  109. package/dist/{images → assets/images}/TextureQuality.png +0 -0
  110. package/dist/{images → assets/images}/Time.png +0 -0
  111. package/dist/{images → assets/images}/Viewpoint.png +0 -0
  112. package/dist/{images → assets/images}/WalkViewer.png +0 -0
  113. package/dist/assets/images/go-next.png +0 -0
  114. package/dist/{images → assets/images}/gtk-fullscreen.png +0 -0
  115. package/dist/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  116. package/dist/{images → assets/images}/gtk-zoom-fit.png +0 -0
  117. package/dist/{images → assets/images}/gtk-zoom-in.png +0 -0
  118. package/dist/{images → assets/images}/help-about.png +0 -0
  119. package/dist/{images → assets/images}/icon.bw.png +0 -0
  120. package/dist/{images → assets/images}/icon.png +0 -0
  121. package/dist/assets/images/logo.128.png +0 -0
  122. package/dist/{images → assets/images}/logo.bw.png +0 -0
  123. package/dist/{images → assets/images}/logo.png +0 -0
  124. package/dist/assets/linetype/0.png +0 -0
  125. package/dist/assets/linetype/1.png +0 -0
  126. package/dist/assets/linetype/10.png +0 -0
  127. package/dist/assets/linetype/11.png +0 -0
  128. package/dist/assets/linetype/12.png +0 -0
  129. package/dist/assets/linetype/13.png +0 -0
  130. package/dist/assets/linetype/14.png +0 -0
  131. package/dist/assets/linetype/15.png +0 -0
  132. package/dist/assets/linetype/16.png +0 -0
  133. package/dist/assets/linetype/2.png +0 -0
  134. package/dist/assets/linetype/3.png +0 -0
  135. package/dist/assets/linetype/4.png +0 -0
  136. package/dist/assets/linetype/5.png +0 -0
  137. package/dist/assets/linetype/6.png +0 -0
  138. package/dist/assets/linetype/7.png +0 -0
  139. package/dist/assets/linetype/8.png +0 -0
  140. package/dist/assets/linetype/9.png +0 -0
  141. package/dist/assets/shaders/webgl1/Background.fs +23 -0
  142. package/dist/assets/shaders/webgl1/Background.vs +16 -0
  143. package/dist/assets/shaders/webgl1/Depth.fs +60 -0
  144. package/dist/assets/shaders/webgl1/Depth.vs +13 -0
  145. package/dist/assets/shaders/webgl1/Fallback.fs +28 -0
  146. package/dist/assets/shaders/webgl1/Fallback.vs +24 -0
  147. package/dist/assets/shaders/webgl1/FallbackUnlit.fs +15 -0
  148. package/dist/assets/shaders/webgl1/FallbackUnlit.vs +18 -0
  149. package/dist/assets/shaders/webgl1/Gouraud.fs +529 -0
  150. package/dist/assets/shaders/webgl1/Gouraud.vs +107 -0
  151. package/dist/assets/shaders/webgl1/Phong.fs +837 -0
  152. package/dist/assets/shaders/webgl1/Phong.vs +52 -0
  153. package/dist/assets/shaders/webgl1/PointSet.fs +541 -0
  154. package/dist/assets/shaders/webgl1/PointSet.vs +48 -0
  155. package/dist/assets/shaders/webgl1/Unlit.fs +538 -0
  156. package/dist/assets/shaders/webgl1/Unlit.vs +52 -0
  157. package/dist/assets/shaders/webgl1/Wireframe.fs +93 -0
  158. package/dist/assets/shaders/webgl1/Wireframe.vs +47 -0
  159. package/dist/assets/shaders/webgl2/Background.fs +25 -0
  160. package/dist/assets/shaders/webgl2/Background.vs +17 -0
  161. package/dist/assets/shaders/webgl2/Depth.fs +62 -0
  162. package/dist/assets/shaders/webgl2/Depth.vs +14 -0
  163. package/dist/assets/shaders/webgl2/Gouraud.fs +684 -0
  164. package/dist/assets/shaders/webgl2/Gouraud.vs +108 -0
  165. package/dist/assets/shaders/webgl2/Phong.fs +1013 -0
  166. package/dist/assets/shaders/webgl2/Phong.vs +53 -0
  167. package/dist/assets/shaders/webgl2/PointSet.fs +696 -0
  168. package/dist/assets/shaders/webgl2/PointSet.vs +49 -0
  169. package/dist/assets/shaders/webgl2/Unlit.fs +693 -0
  170. package/dist/assets/shaders/webgl2/Unlit.vs +53 -0
  171. package/dist/assets/shaders/webgl2/Wireframe.fs +102 -0
  172. package/dist/assets/shaders/webgl2/Wireframe.vs +48 -0
  173. package/dist/example.html +8 -7
  174. package/dist/x_ite.css +167 -49
  175. package/dist/x_ite.js +66263 -60020
  176. package/dist/x_ite.min.js +41 -41
  177. package/dist/x_ite.zip +0 -0
  178. package/docs/404.md +5 -0
  179. package/docs/Accessing-the-External-Browser.md +319 -0
  180. package/docs/Browser-Support.md +47 -0
  181. package/docs/Custom-Shaders.md +896 -0
  182. package/docs/Features.md +49 -0
  183. package/docs/Glossary.md +339 -0
  184. package/docs/How-To-Configure-Your-Web-Server.md +56 -0
  185. package/docs/Supported-Nodes.md +370 -0
  186. package/docs/What's-New.md +1295 -0
  187. package/docs/XHTML-DOM-Integration.md +82 -0
  188. package/docs/_config.yml +140 -0
  189. package/docs/_data/navigation.yml +137 -0
  190. package/docs/assets/css/main.scss +100 -0
  191. package/docs/assets/images/logo.png +0 -0
  192. package/docs/google3696ee938394d7b6.html +1 -0
  193. package/docs/index.md +1033 -0
  194. package/docs/reference/Browser-Services.md +361 -0
  195. package/docs/reference/Constants-Services.md +376 -0
  196. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +128 -0
  197. package/docs/reference/Field-Services-and-Objects.md +1006 -0
  198. package/docs/reference/Prototype-Services.md +121 -0
  199. package/docs/reference/Route-Services.md +49 -0
  200. package/docs/reference/Scene-Services.md +360 -0
  201. package/docs/reference/Script-Node-Authoring-Interface.md +342 -0
  202. package/docs/tutorials/Adding-backgrounds.md +268 -0
  203. package/docs/tutorials/Adding-fog.md +67 -0
  204. package/docs/tutorials/Adding-sound.md +326 -0
  205. package/docs/tutorials/Animating-transforms.md +385 -0
  206. package/docs/tutorials/Basic-Nodes.md +317 -0
  207. package/docs/tutorials/Building-a-X3D-world.md +152 -0
  208. package/docs/tutorials/Building-elevation-grids.md +170 -0
  209. package/docs/tutorials/Building-extruded-shapes.md +145 -0
  210. package/docs/tutorials/Building-primitive-shapes.md +204 -0
  211. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +311 -0
  212. package/docs/tutorials/Controlling-appearance-with-materials.md +186 -0
  213. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +208 -0
  214. package/docs/tutorials/Controlling-detail.md +130 -0
  215. package/docs/tutorials/Controlling-how-textures-are-mapped.md +277 -0
  216. package/docs/tutorials/Controlling-navigation.md +70 -0
  217. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +180 -0
  218. package/docs/tutorials/Controlling-the-viewpoint.md +49 -0
  219. package/docs/tutorials/Creating-new-node-types.md +313 -0
  220. package/docs/tutorials/Grouping-nodes.md +237 -0
  221. package/docs/tutorials/Hello,-World!.md +204 -0
  222. package/docs/tutorials/Improving-Performance.md +227 -0
  223. package/docs/tutorials/Increasing-Rendering-Speed.md +110 -0
  224. package/docs/tutorials/Introducing-X3D.md +94 -0
  225. package/docs/tutorials/Introducing-animation.md +211 -0
  226. package/docs/tutorials/Introducing-script-use.md +127 -0
  227. package/docs/tutorials/Lighting-your-world.md +139 -0
  228. package/docs/tutorials/Mapping-textures.md +212 -0
  229. package/docs/tutorials/Naming-nodes.md +161 -0
  230. package/docs/tutorials/Providing-information-about-your-world.md +30 -0
  231. package/docs/tutorials/Sensing-the-viewer.md +205 -0
  232. package/docs/tutorials/Sensing-viewer-actions.md +214 -0
  233. package/docs/tutorials/Transforming-Shapes.md +270 -0
  234. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +631 -0
  235. package/docs/tutorials/index.md +78 -0
  236. package/meta/logo/logo.png +0 -0
  237. package/meta/logo/logo.svg +216 -217
  238. package/meta/web3d.html +3 -3
  239. package/package.json +43 -28
  240. package/src/assets/components/annotation.js +87 -0
  241. package/src/{components → assets/components}/cad-geometry.js +0 -0
  242. package/src/{x_ite/Components/CubeMapTexturing.js → assets/components/cube-map-texturing.js} +15 -21
  243. package/src/assets/components/dis.js +84 -0
  244. package/src/{x_ite/Components/EventUtilities.js → assets/components/event-utilities.js} +20 -26
  245. package/src/{x_ite/Components/Geometry2D.js → assets/components/geometry2d.js} +22 -25
  246. package/src/{components → assets/components}/geospatial.js +0 -0
  247. package/src/{components → assets/components}/h-anim.js +9 -7
  248. package/src/{x_ite/Components/KeyDeviceSensor.js → assets/components/key-device-sensor.js} +17 -20
  249. package/src/{x_ite/Components/Layout.js → assets/components/layout.js} +20 -23
  250. package/src/{components → assets/components}/nurbs.js +0 -0
  251. package/src/{components → assets/components}/particle-systems.js +1 -1
  252. package/src/assets/components/picking.js +87 -0
  253. package/src/assets/components/projective-texture-mapping.js +75 -0
  254. package/src/{components → assets/components}/rigid-body-physics.js +7 -2
  255. package/src/{x_ite/Components/Scripting.js → assets/components/scripting.js} +13 -19
  256. package/src/{components → assets/components}/texturing-3d.js +12 -13
  257. package/src/assets/components/volume-rendering.js +118 -0
  258. package/src/{x_ite/Components/X_ITE.js → assets/components/x_ite.js} +12 -30
  259. package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
  260. package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
  261. package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
  262. package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
  263. package/src/assets/fonts/Ubuntu-B.ttf +0 -0
  264. package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
  265. package/src/assets/fonts/Ubuntu-R.ttf +0 -0
  266. package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
  267. package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
  268. package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
  269. package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
  270. package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
  271. package/src/assets/hatching/0.png +0 -0
  272. package/src/assets/hatching/1.png +0 -0
  273. package/src/assets/hatching/10.png +0 -0
  274. package/src/assets/hatching/11.png +0 -0
  275. package/src/assets/hatching/12.png +0 -0
  276. package/src/assets/hatching/13.png +0 -0
  277. package/src/assets/hatching/14.png +0 -0
  278. package/src/assets/hatching/15.png +0 -0
  279. package/src/assets/hatching/16.png +0 -0
  280. package/src/assets/hatching/17.png +0 -0
  281. package/src/assets/hatching/18.png +0 -0
  282. package/src/assets/hatching/19.png +0 -0
  283. package/src/assets/hatching/2.png +0 -0
  284. package/src/assets/hatching/3.png +0 -0
  285. package/src/assets/hatching/4.png +0 -0
  286. package/src/assets/hatching/5.png +0 -0
  287. package/src/assets/hatching/6.png +0 -0
  288. package/src/assets/hatching/7.png +0 -0
  289. package/src/assets/hatching/8.png +0 -0
  290. package/src/assets/hatching/9.png +0 -0
  291. package/src/{images → assets/images}/ExamineViewer.png +0 -0
  292. package/src/{images → assets/images}/FlyViewer.png +0 -0
  293. package/src/{images → assets/images}/NoneViewer.png +0 -0
  294. package/src/{images → assets/images}/PlaneViewer.png +0 -0
  295. package/src/{images → assets/images}/PrimitiveQuality.png +0 -0
  296. package/src/{images → assets/images}/TextureQuality.png +0 -0
  297. package/src/{images → assets/images}/Time.png +0 -0
  298. package/src/{images → assets/images}/Viewpoint.png +0 -0
  299. package/src/{images → assets/images}/WalkViewer.png +0 -0
  300. package/src/assets/images/go-next.png +0 -0
  301. package/src/{images → assets/images}/gtk-fullscreen.png +0 -0
  302. package/src/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  303. package/src/{images → assets/images}/gtk-zoom-fit.png +0 -0
  304. package/src/{images → assets/images}/gtk-zoom-in.png +0 -0
  305. package/src/{images → assets/images}/help-about.png +0 -0
  306. package/src/{images → assets/images}/icon.bw.png +0 -0
  307. package/src/{images → assets/images}/icon.png +0 -0
  308. package/src/assets/images/logo.128.png +0 -0
  309. package/src/{images → assets/images}/logo.bw.png +0 -0
  310. package/src/{images → assets/images}/logo.png +0 -0
  311. package/src/assets/linetype/0.png +0 -0
  312. package/src/assets/linetype/1.png +0 -0
  313. package/src/assets/linetype/10.png +0 -0
  314. package/src/assets/linetype/11.png +0 -0
  315. package/src/assets/linetype/12.png +0 -0
  316. package/src/assets/linetype/13.png +0 -0
  317. package/src/assets/linetype/14.png +0 -0
  318. package/src/assets/linetype/15.png +0 -0
  319. package/src/assets/linetype/16.png +0 -0
  320. package/src/assets/linetype/2.png +0 -0
  321. package/src/assets/linetype/3.png +0 -0
  322. package/src/assets/linetype/4.png +0 -0
  323. package/src/assets/linetype/5.png +0 -0
  324. package/src/assets/linetype/6.png +0 -0
  325. package/src/assets/linetype/7.png +0 -0
  326. package/src/assets/linetype/8.png +0 -0
  327. package/src/assets/linetype/9.png +0 -0
  328. package/src/assets/shaders/Types.glsl +102 -0
  329. package/src/assets/shaders/webgl1/Background.fs +16 -0
  330. package/src/assets/shaders/webgl1/Background.vs +22 -0
  331. package/src/assets/shaders/webgl1/Depth.fs +16 -0
  332. package/src/assets/shaders/webgl1/Depth.vs +20 -0
  333. package/src/assets/shaders/webgl1/Fallback.fs +38 -0
  334. package/src/assets/shaders/webgl1/Fallback.vs +30 -0
  335. package/src/assets/shaders/webgl1/FallbackUnlit.fs +21 -0
  336. package/src/assets/shaders/webgl1/FallbackUnlit.vs +24 -0
  337. package/src/assets/shaders/webgl1/Gouraud.fs +66 -0
  338. package/src/assets/shaders/webgl1/Gouraud.vs +147 -0
  339. package/src/assets/shaders/webgl1/Phong.fs +172 -0
  340. package/src/assets/shaders/webgl1/Phong.vs +67 -0
  341. package/src/assets/shaders/webgl1/PointSet.fs +100 -0
  342. package/src/assets/shaders/webgl1/PointSet.vs +70 -0
  343. package/src/assets/shaders/webgl1/Unlit.fs +86 -0
  344. package/src/assets/shaders/webgl1/Unlit.vs +67 -0
  345. package/src/assets/shaders/webgl1/Wireframe.fs +74 -0
  346. package/src/assets/shaders/webgl1/Wireframe.vs +63 -0
  347. package/src/assets/shaders/webgl1/include/ClipPlanes.glsl +16 -0
  348. package/src/assets/shaders/webgl1/include/Fog.glsl +38 -0
  349. package/src/assets/shaders/webgl1/include/Hatch.glsl +18 -0
  350. package/src/{x_ite/Browser/Shaders/Include/Pack.h → assets/shaders/webgl1/include/Pack.glsl} +0 -1
  351. package/src/assets/shaders/webgl1/include/Perlin.glsl +40 -0
  352. package/src/{x_ite/Browser/Shaders/Include/Shadow.h → assets/shaders/webgl1/include/Shadow.glsl} +33 -33
  353. package/src/assets/shaders/webgl1/include/Texture.glsl +488 -0
  354. package/src/assets/shaders/webgl2/Background.fs +19 -0
  355. package/src/assets/shaders/webgl2/Background.vs +23 -0
  356. package/src/assets/shaders/webgl2/Depth.fs +19 -0
  357. package/src/assets/shaders/webgl2/Depth.vs +21 -0
  358. package/src/assets/shaders/webgl2/Gouraud.fs +64 -0
  359. package/src/assets/shaders/webgl2/Gouraud.vs +148 -0
  360. package/src/assets/shaders/webgl2/Phong.fs +170 -0
  361. package/src/assets/shaders/webgl2/Phong.vs +68 -0
  362. package/src/assets/shaders/webgl2/PointSet.fs +99 -0
  363. package/src/assets/shaders/webgl2/PointSet.vs +71 -0
  364. package/src/assets/shaders/webgl2/Unlit.fs +85 -0
  365. package/src/assets/shaders/webgl2/Unlit.vs +68 -0
  366. package/src/assets/shaders/webgl2/Wireframe.fs +73 -0
  367. package/src/assets/shaders/webgl2/Wireframe.vs +64 -0
  368. package/src/assets/shaders/webgl2/include/ClipPlanes.glsl +16 -0
  369. package/src/assets/shaders/webgl2/include/Fog.glsl +46 -0
  370. package/src/assets/shaders/webgl2/include/Hatch.glsl +18 -0
  371. package/src/assets/shaders/webgl2/include/Pack.glsl +51 -0
  372. package/src/assets/shaders/webgl2/include/Perlin.glsl +40 -0
  373. package/src/assets/shaders/webgl2/include/Shadow.glsl +324 -0
  374. package/src/assets/shaders/webgl2/include/Texture.glsl +623 -0
  375. package/src/bookmarks.js +33 -12
  376. package/src/dummy.js +1 -0
  377. package/src/example.html +8 -7
  378. package/src/examples.js +21 -3
  379. package/src/lib/ammojs/AmmoJS.js +58 -0
  380. package/src/lib/ammojs/Makefile +4 -0
  381. package/src/lib/ammojs/ammo.idl +72 -1
  382. package/src/lib/ammojs/ammo.js +25 -21
  383. package/src/lib/jpeg/jpeg.js +1019 -0
  384. package/src/lib/nurbs/extras/sample.js +137 -80
  385. package/src/locale/de.po +18 -73
  386. package/src/locale/fr.po +18 -74
  387. package/src/spinner.css +18 -6
  388. package/src/standard/Geospatial/Geodetic.js +43 -43
  389. package/src/standard/Geospatial/ReferenceEllipsoids.js +1 -1
  390. package/src/standard/Geospatial/UniversalTransverseMercator.js +42 -42
  391. package/src/standard/Math/Algorithm.js +22 -39
  392. package/src/standard/Math/Algorithms/Bezier.js +147 -0
  393. package/src/standard/Math/Algorithms/MergeSort.js +2 -2
  394. package/src/standard/Math/Algorithms/PartialSort.js +6 -6
  395. package/src/standard/Math/Algorithms/QuickSort.js +8 -6
  396. package/src/standard/Math/Algorithms/SAT.js +4 -8
  397. package/src/standard/Math/Algorithms/eigendecomposition.js +37 -33
  398. package/src/standard/Math/Geometry/Box2.js +84 -56
  399. package/src/standard/Math/Geometry/Box3.js +400 -358
  400. package/src/standard/Math/Geometry/Camera.js +19 -16
  401. package/src/standard/Math/Geometry/Cylinder3.js +13 -13
  402. package/src/standard/Math/Geometry/Line3.js +34 -34
  403. package/src/standard/Math/Geometry/Plane3.js +15 -15
  404. package/src/standard/Math/Geometry/Sphere3.js +122 -105
  405. package/src/standard/Math/Geometry/Spheroid3.js +1 -1
  406. package/src/standard/Math/Geometry/Triangle2.js +5 -5
  407. package/src/standard/Math/Geometry/Triangle3.js +12 -14
  408. package/src/standard/Math/Geometry/ViewVolume.js +303 -106
  409. package/src/standard/Math/Numbers/Color3.js +26 -23
  410. package/src/standard/Math/Numbers/Color4.js +9 -9
  411. package/src/standard/Math/Numbers/Complex.js +13 -17
  412. package/src/standard/Math/Numbers/Matrix2.js +20 -13
  413. package/src/standard/Math/Numbers/Matrix3.js +129 -205
  414. package/src/standard/Math/Numbers/Matrix4.js +136 -257
  415. package/src/standard/Math/Numbers/Quaternion.js +49 -138
  416. package/src/standard/Math/Numbers/Rotation4.js +42 -55
  417. package/src/standard/Math/Numbers/Vector2.js +32 -115
  418. package/src/standard/Math/Numbers/Vector3.js +46 -151
  419. package/src/standard/Math/Numbers/Vector4.js +44 -163
  420. package/src/standard/Math/Utility/BVH.js +21 -20
  421. package/src/standard/Math/Utility/MatrixStack.js +4 -4
  422. package/src/standard/Networking/BinaryTransport.js +8 -8
  423. package/src/standard/Time/MicroTime.js +81 -0
  424. package/src/standard/Utility/DataStorage.js +11 -14
  425. package/src/standard/Utility/MapUtilities.js +69 -0
  426. package/src/standard/Utility/ObjectCache.js +2 -3
  427. package/src/standard/Utility/Shuffle.js +5 -6
  428. package/src/tests.js +84 -5
  429. package/src/x_ite/Base/Events.js +9 -10
  430. package/src/x_ite/Base/X3DChildObject.js +20 -16
  431. package/src/x_ite/Base/X3DEventObject.js +3 -7
  432. package/src/x_ite/Base/X3DObject.js +44 -27
  433. package/src/x_ite/Basic/FieldDefinitionArray.js +11 -4
  434. package/src/x_ite/Basic/X3DBaseNode.js +427 -246
  435. package/src/x_ite/Basic/X3DField.js +48 -69
  436. package/src/x_ite/Basic/X3DFieldDefinition.js +0 -4
  437. package/src/x_ite/Basic/X3DObjectArrayField.js +102 -108
  438. package/src/x_ite/Basic/X3DTypedArrayField.js +194 -163
  439. package/src/x_ite/Bits/TraverseType.js +2 -5
  440. package/src/x_ite/Bits/X3DConstants.js +11 -2
  441. package/src/x_ite/Browser/Core/BrowserOptions.js +89 -68
  442. package/src/x_ite/Browser/Core/BrowserTimings.js +21 -29
  443. package/src/x_ite/Browser/Core/ContextMenu.js +139 -60
  444. package/src/x_ite/Browser/Core/Notification.js +3 -3
  445. package/src/x_ite/Browser/Core/PrimitiveQuality.js +3 -7
  446. package/src/x_ite/Browser/Core/Shading.js +3 -7
  447. package/src/x_ite/Browser/Core/TextureQuality.js +3 -7
  448. package/src/x_ite/Browser/Core/X3DCoreContext.js +398 -58
  449. package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +714 -0
  450. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +17 -28
  451. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +5 -14
  452. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +81 -28
  453. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +53 -44
  454. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +51 -12
  455. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -9
  456. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +98 -0
  457. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +14 -206
  458. package/src/x_ite/Browser/Layout/ScreenText.js +226 -254
  459. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +13 -11
  460. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +15 -9
  461. package/src/x_ite/Browser/NURBS/NURBS.js +84 -72
  462. package/src/x_ite/Browser/Navigation/ExamineViewer.js +125 -83
  463. package/src/x_ite/Browser/Navigation/FlyViewer.js +14 -9
  464. package/src/x_ite/Browser/Navigation/LookAtViewer.js +60 -40
  465. package/src/x_ite/Browser/Navigation/NoneViewer.js +12 -1
  466. package/src/x_ite/Browser/Navigation/PlaneViewer.js +39 -20
  467. package/src/x_ite/Browser/Navigation/WalkViewer.js +21 -6
  468. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +110 -85
  469. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +11 -6
  470. package/src/x_ite/Browser/Navigation/X3DViewer.js +73 -48
  471. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +18 -24
  472. package/src/x_ite/Browser/Networking/urls.js +31 -16
  473. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +5 -6
  474. package/src/x_ite/Browser/Picking/IntersectionType.js +63 -0
  475. package/src/x_ite/Browser/Picking/MatchCriterion.js +64 -0
  476. package/src/x_ite/Browser/Picking/SortOrder.js +65 -0
  477. package/src/x_ite/Browser/Picking/VolumePicker.js +197 -0
  478. package/src/x_ite/Browser/Picking/X3DPickingContext.js +130 -0
  479. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +26 -20
  480. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +17 -10
  481. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +38 -27
  482. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +70 -0
  483. package/src/x_ite/Browser/Shaders/Shader.js +112 -92
  484. package/src/x_ite/Browser/Shaders/ShaderSource.js +140 -0
  485. package/src/x_ite/Browser/Shaders/ShaderTest.js +92 -77
  486. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +134 -74
  487. package/src/x_ite/Browser/Shape/AlphaMode.js +65 -0
  488. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
  489. package/src/x_ite/Browser/Shape/X3DShapeContext.js +108 -4
  490. package/src/x_ite/Browser/Text/PolygonText.js +153 -170
  491. package/src/x_ite/Browser/Text/TextAlignment.js +3 -7
  492. package/src/x_ite/Browser/Text/X3DTextContext.js +38 -30
  493. package/src/x_ite/Browser/Text/X3DTextGeometry.js +49 -74
  494. package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +64 -0
  495. package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +81 -0
  496. package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +65 -0
  497. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +73 -0
  498. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +147 -45
  499. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1126 -0
  500. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +686 -0
  501. package/src/x_ite/Browser/Time/X3DTimeContext.js +20 -17
  502. package/src/x_ite/Browser/VERSION.js +1 -1
  503. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +120 -0
  504. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +28 -0
  505. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +114 -0
  506. package/src/x_ite/Browser/X3DBrowser.js +282 -224
  507. package/src/x_ite/Browser/X3DBrowserContext.js +60 -27
  508. package/src/x_ite/Components/Annotation/AnnotationLayer.js +108 -0
  509. package/src/x_ite/Components/Annotation/AnnotationTarget.js +101 -0
  510. package/src/x_ite/Components/Annotation/GroupAnnotation.js +112 -0
  511. package/src/x_ite/Components/Annotation/IconAnnotation.js +110 -0
  512. package/src/x_ite/Components/Annotation/TextAnnotation.js +102 -0
  513. package/src/x_ite/Components/Annotation/URLAnnotation.js +101 -0
  514. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +76 -0
  515. package/src/x_ite/Components/CADGeometry/CADAssembly.js +4 -4
  516. package/src/x_ite/Components/CADGeometry/CADFace.js +135 -30
  517. package/src/x_ite/Components/CADGeometry/CADLayer.js +3 -18
  518. package/src/x_ite/Components/CADGeometry/CADPart.js +4 -8
  519. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +18 -10
  520. package/src/x_ite/Components/Core/WorldInfo.js +16 -6
  521. package/src/x_ite/Components/Core/X3DBindableNode.js +4 -33
  522. package/src/x_ite/Components/Core/X3DChildNode.js +14 -1
  523. package/src/x_ite/Components/Core/X3DNode.js +0 -63
  524. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +128 -168
  525. package/src/x_ite/Components/Core.js +6 -9
  526. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +38 -46
  527. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +31 -30
  528. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +42 -57
  529. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +36 -48
  530. package/src/x_ite/Components/DIS/EspduTransform.js +12 -6
  531. package/src/x_ite/Components/DIS/ReceiverPdu.js +12 -6
  532. package/src/x_ite/Components/DIS/SignalPdu.js +12 -6
  533. package/src/x_ite/Components/DIS/TransmitterPdu.js +12 -6
  534. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +5 -16
  535. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +55 -3
  536. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +3 -5
  537. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +116 -116
  538. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +5 -6
  539. package/src/x_ite/Components/EnvironmentalEffects.js +6 -9
  540. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +116 -117
  541. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +169 -49
  542. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +31 -27
  543. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +12 -5
  544. package/src/x_ite/Components/EnvironmentalSensor.js +6 -9
  545. package/src/x_ite/Components/Followers/ColorChaser.js +1 -3
  546. package/src/x_ite/Components/Followers/ColorDamper.js +1 -3
  547. package/src/x_ite/Components/Followers/CoordinateChaser.js +1 -7
  548. package/src/x_ite/Components/Followers/CoordinateDamper.js +0 -6
  549. package/src/x_ite/Components/Followers/OrientationChaser.js +7 -3
  550. package/src/x_ite/Components/Followers/OrientationDamper.js +7 -3
  551. package/src/x_ite/Components/Followers/PositionChaser.js +1 -3
  552. package/src/x_ite/Components/Followers/PositionChaser2D.js +1 -3
  553. package/src/x_ite/Components/Followers/PositionDamper.js +1 -3
  554. package/src/x_ite/Components/Followers/PositionDamper2D.js +1 -3
  555. package/src/x_ite/Components/Followers/ScalarChaser.js +1 -3
  556. package/src/x_ite/Components/Followers/ScalarDamper.js +1 -3
  557. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +1 -7
  558. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +1 -7
  559. package/src/x_ite/Components/Followers/X3DChaserNode.js +20 -18
  560. package/src/x_ite/Components/Followers/X3DDamperNode.js +5 -7
  561. package/src/x_ite/Components/Followers/X3DFollowerNode.js +5 -7
  562. package/src/x_ite/Components/Followers.js +6 -9
  563. package/src/x_ite/Components/Geometry2D/Arc2D.js +10 -14
  564. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +87 -86
  565. package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -3
  566. package/src/x_ite/Components/Geometry2D/Disk2D.js +43 -58
  567. package/src/x_ite/Components/Geometry2D/Polyline2D.js +4 -8
  568. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +3 -5
  569. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +20 -16
  570. package/src/x_ite/Components/Geometry3D/Cone.js +1 -3
  571. package/src/x_ite/Components/Geometry3D/Cylinder.js +3 -5
  572. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +35 -17
  573. package/src/x_ite/Components/Geometry3D/Extrusion.js +125 -107
  574. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +164 -142
  575. package/src/x_ite/Components/Geometry3D/Sphere.js +3 -5
  576. package/src/x_ite/Components/Geometry3D.js +6 -9
  577. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -7
  578. package/src/x_ite/Components/Geospatial/GeoLOD.js +207 -124
  579. package/src/x_ite/Components/Geospatial/GeoLocation.js +6 -6
  580. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +5 -3
  581. package/src/x_ite/Components/Geospatial/GeoTransform.js +9 -9
  582. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +27 -27
  583. package/src/x_ite/Components/Grouping/Group.js +3 -3
  584. package/src/x_ite/Components/Grouping/StaticGroup.js +49 -56
  585. package/src/x_ite/Components/Grouping/Switch.js +171 -21
  586. package/src/x_ite/Components/Grouping/Transform.js +3 -3
  587. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +68 -15
  588. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +339 -180
  589. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +51 -25
  590. package/src/x_ite/Components/Grouping/X3DTransformNode.js +2 -4
  591. package/src/x_ite/Components/Grouping.js +6 -9
  592. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimDisplacer.js +4 -4
  593. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimHumanoid.js +24 -14
  594. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimJoint.js +44 -20
  595. package/src/x_ite/Components/HAnim/HAnimMotion.js +113 -0
  596. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSegment.js +6 -4
  597. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSite.js +4 -4
  598. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +8 -7
  599. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +4 -3
  600. package/src/x_ite/Components/Interpolation.js +6 -9
  601. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +1 -3
  602. package/src/x_ite/Components/Layering/Layer.js +12 -2
  603. package/src/x_ite/Components/Layering/LayerSet.js +4 -6
  604. package/src/x_ite/Components/Layering/Viewport.js +8 -8
  605. package/src/x_ite/Components/Layering/X3DLayerNode.js +67 -62
  606. package/src/x_ite/Components/Layering.js +6 -9
  607. package/src/x_ite/Components/Layout/LayoutGroup.js +18 -15
  608. package/src/x_ite/Components/Layout/LayoutLayer.js +10 -5
  609. package/src/x_ite/Components/Layout/ScreenFontStyle.js +12 -14
  610. package/src/x_ite/Components/Layout/ScreenGroup.js +25 -31
  611. package/src/x_ite/Components/Lighting/DirectionalLight.js +27 -22
  612. package/src/x_ite/Components/Lighting/PointLight.js +26 -29
  613. package/src/x_ite/Components/Lighting/SpotLight.js +29 -24
  614. package/src/x_ite/Components/Lighting/X3DLightNode.js +85 -66
  615. package/src/x_ite/Components/Lighting.js +6 -9
  616. package/src/x_ite/Components/NURBS/Contour2D.js +45 -1
  617. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +53 -25
  618. package/src/x_ite/Components/NURBS/NurbsCurve.js +21 -24
  619. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +44 -25
  620. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +19 -21
  621. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +18 -20
  622. package/src/x_ite/Components/NURBS/NurbsSet.js +17 -6
  623. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +2 -2
  624. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +2 -2
  625. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +15 -16
  626. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +38 -1
  627. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +116 -43
  628. package/src/x_ite/Components/Navigation/Billboard.js +12 -11
  629. package/src/x_ite/Components/Navigation/Collision.js +10 -8
  630. package/src/x_ite/Components/Navigation/LOD.js +207 -59
  631. package/src/x_ite/Components/Navigation/NavigationInfo.js +29 -43
  632. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +99 -18
  633. package/src/x_ite/Components/Navigation/Viewpoint.js +15 -15
  634. package/src/x_ite/Components/Navigation/ViewpointGroup.js +12 -5
  635. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +137 -148
  636. package/src/x_ite/Components/Navigation.js +6 -9
  637. package/src/x_ite/Components/Networking/Anchor.js +22 -24
  638. package/src/x_ite/Components/Networking/Inline.js +63 -44
  639. package/src/x_ite/Components/Networking/X3DUrlObject.js +88 -8
  640. package/src/x_ite/Components/Networking.js +6 -9
  641. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +2 -2
  642. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +215 -199
  643. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +44 -39
  644. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +48 -46
  645. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +121 -117
  646. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +21 -18
  647. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +20 -22
  648. package/src/x_ite/Components/Picking/LinePickSensor.js +251 -6
  649. package/src/x_ite/Components/Picking/PickableGroup.js +120 -7
  650. package/src/x_ite/Components/Picking/PointPickSensor.js +260 -8
  651. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +174 -4
  652. package/src/x_ite/Components/Picking/VolumePickSensor.js +150 -4
  653. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +377 -4
  654. package/src/x_ite/Components/Picking/X3DPickableObject.js +21 -1
  655. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +26 -11
  656. package/src/x_ite/Components/PointingDeviceSensor.js +6 -9
  657. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +282 -0
  658. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +227 -0
  659. package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +217 -0
  660. package/src/x_ite/Components/Rendering/ClipPlane.js +8 -10
  661. package/src/x_ite/Components/Rendering/Color.js +22 -13
  662. package/src/x_ite/Components/Rendering/ColorRGBA.js +28 -16
  663. package/src/x_ite/Components/Rendering/IndexedLineSet.js +52 -33
  664. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +17 -14
  665. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +9 -4
  666. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +17 -17
  667. package/src/x_ite/Components/Rendering/LineSet.js +44 -27
  668. package/src/x_ite/Components/Rendering/Normal.js +20 -4
  669. package/src/x_ite/Components/Rendering/PointSet.js +38 -16
  670. package/src/x_ite/Components/Rendering/TriangleFanSet.js +7 -9
  671. package/src/x_ite/Components/Rendering/TriangleStripSet.js +6 -8
  672. package/src/x_ite/Components/Rendering/X3DColorNode.js +16 -1
  673. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +80 -55
  674. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +11 -13
  675. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +622 -477
  676. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +159 -90
  677. package/src/x_ite/Components/Rendering.js +6 -9
  678. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +8 -10
  679. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +142 -26
  680. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +312 -128
  681. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +91 -7
  682. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +189 -4
  683. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +82 -4
  684. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
  685. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +49 -37
  686. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +45 -39
  687. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +41 -34
  688. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +25 -20
  689. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +8 -10
  690. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +15 -16
  691. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +2 -4
  692. package/src/x_ite/Components/Scripting/Script.js +147 -101
  693. package/src/x_ite/Components/Scripting/X3DScriptNode.js +2 -4
  694. package/src/x_ite/Components/Shaders/ComposedShader.js +17 -19
  695. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +9 -3
  696. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +10 -3
  697. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +10 -3
  698. package/src/x_ite/Components/Shaders/PackagedShader.js +18 -14
  699. package/src/x_ite/Components/Shaders/ShaderPart.js +30 -18
  700. package/src/x_ite/Components/Shaders/ShaderProgram.js +15 -11
  701. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +681 -558
  702. package/src/x_ite/Components/Shaders/X3DShaderNode.js +48 -12
  703. package/src/x_ite/Components/Shaders.js +15 -18
  704. package/src/x_ite/Components/Shape/Appearance.js +153 -77
  705. package/src/x_ite/Components/Shape/FillProperties.js +63 -4
  706. package/src/x_ite/Components/Shape/LineProperties.js +27 -5
  707. package/src/x_ite/Components/Shape/Material.js +48 -62
  708. package/src/x_ite/Components/Shape/PointProperties.js +162 -0
  709. package/src/x_ite/Components/Shape/Shape.js +86 -39
  710. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +53 -59
  711. package/src/x_ite/Components/Shape/UnlitMaterial.js +109 -0
  712. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +9 -6
  713. package/src/x_ite/Components/Shape/X3DMaterialNode.js +16 -3
  714. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +111 -0
  715. package/src/x_ite/Components/Shape/X3DShapeNode.js +41 -17
  716. package/src/x_ite/Components/Shape.js +22 -16
  717. package/src/x_ite/Components/Sound/AudioClip.js +36 -50
  718. package/src/x_ite/Components/Sound/Sound.js +36 -36
  719. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +18 -6
  720. package/src/x_ite/Components/Sound.js +6 -9
  721. package/src/x_ite/Components/Text/FontStyle.js +10 -12
  722. package/src/x_ite/Components/Text/Text.js +6 -6
  723. package/src/x_ite/Components/Text/X3DFontStyleNode.js +56 -87
  724. package/src/x_ite/Components/Text.js +6 -9
  725. package/src/x_ite/Components/Texturing/ImageTexture.js +48 -63
  726. package/src/x_ite/Components/Texturing/MovieTexture.js +42 -56
  727. package/src/x_ite/Components/Texturing/MultiTexture.js +236 -11
  728. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +73 -6
  729. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +45 -4
  730. package/src/x_ite/Components/Texturing/PixelTexture.js +45 -11
  731. package/src/x_ite/Components/Texturing/TextureCoordinate.js +32 -17
  732. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +68 -8
  733. package/src/x_ite/Components/Texturing/TextureProperties.js +96 -65
  734. package/src/x_ite/Components/Texturing/TextureTransform.js +55 -47
  735. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +91 -0
  736. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +183 -0
  737. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +77 -0
  738. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +42 -95
  739. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +209 -0
  740. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +3 -17
  741. package/src/x_ite/Components/Texturing/X3DTextureNode.js +6 -67
  742. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +4 -11
  743. package/src/x_ite/Components/Texturing.js +31 -25
  744. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +88 -4
  745. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +105 -13
  746. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +124 -4
  747. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +35 -18
  748. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +35 -18
  749. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +41 -31
  750. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +18 -11
  751. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +110 -6
  752. package/src/x_ite/Components/Time/TimeSensor.js +23 -19
  753. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +11 -7
  754. package/src/x_ite/Components/Time.js +6 -9
  755. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +309 -8
  756. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +58 -4
  757. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +217 -6
  758. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +132 -3
  759. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +86 -5
  760. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +309 -11
  761. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +85 -3
  762. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +134 -2
  763. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +222 -9
  764. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +191 -8
  765. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +85 -6
  766. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +95 -5
  767. package/src/x_ite/Components/VolumeRendering/VolumeData.js +153 -8
  768. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +155 -3
  769. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +62 -0
  770. package/src/x_ite/Components/X_ITE/BlendMode.js +51 -51
  771. package/src/x_ite/Components.js +11 -16
  772. package/src/x_ite/Configuration/ComponentInfo.js +12 -6
  773. package/src/x_ite/Configuration/ComponentInfoArray.js +4 -7
  774. package/src/x_ite/Configuration/ProfileInfo.js +10 -6
  775. package/src/x_ite/Configuration/SupportedComponents.js +66 -40
  776. package/src/x_ite/Configuration/SupportedNodes.js +22 -6
  777. package/src/x_ite/Configuration/SupportedProfiles.js +91 -89
  778. package/src/x_ite/Configuration/UnitInfo.js +12 -2
  779. package/src/x_ite/Configuration/X3DInfoArray.js +37 -18
  780. package/src/x_ite/Execution/BindableList.js +63 -38
  781. package/src/x_ite/Execution/BindableStack.js +63 -71
  782. package/src/x_ite/Execution/ExportedNode.js +25 -2
  783. package/src/x_ite/Execution/ImportedNode.js +122 -39
  784. package/src/x_ite/Execution/Scene.js +22 -14
  785. package/src/x_ite/Execution/World.js +22 -19
  786. package/src/x_ite/Execution/X3DExecutionContext.js +381 -221
  787. package/src/x_ite/Execution/X3DScene.js +213 -53
  788. package/src/x_ite/{Error.js → Fallback.js} +26 -29
  789. package/src/x_ite/Fields/ArrayFields.js +176 -57
  790. package/src/x_ite/Fields/SFBool.js +6 -5
  791. package/src/x_ite/Fields/SFColor.js +24 -21
  792. package/src/x_ite/Fields/SFColorRGBA.js +23 -23
  793. package/src/x_ite/Fields/SFDouble.js +6 -5
  794. package/src/x_ite/Fields/SFFloat.js +7 -6
  795. package/src/x_ite/Fields/SFImage.js +37 -36
  796. package/src/x_ite/Fields/SFInt32.js +5 -4
  797. package/src/x_ite/Fields/SFMatrix3.js +19 -15
  798. package/src/x_ite/Fields/SFMatrix4.js +19 -15
  799. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +10 -2
  800. package/src/x_ite/Fields/SFNode.js +105 -53
  801. package/src/x_ite/Fields/SFNodeCache.js +93 -0
  802. package/src/x_ite/Fields/SFRotation.js +31 -27
  803. package/src/x_ite/Fields/SFString.js +9 -8
  804. package/src/x_ite/Fields/SFTime.js +6 -5
  805. package/src/x_ite/Fields/SFVec2.js +17 -13
  806. package/src/x_ite/Fields/SFVec3.js +21 -17
  807. package/src/x_ite/Fields/SFVec4.js +24 -20
  808. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +8 -4
  809. package/src/x_ite/Fields.js +2 -6
  810. package/src/x_ite/InputOutput/FileLoader.js +174 -190
  811. package/src/x_ite/InputOutput/Generator.js +133 -104
  812. package/src/x_ite/Parser/HTMLSupport.js +3 -596
  813. package/src/x_ite/Parser/JSONParser.js +348 -245
  814. package/src/x_ite/Parser/Parser.js +314 -303
  815. package/src/x_ite/Parser/X3DParser.js +41 -20
  816. package/src/x_ite/Parser/XMLParser.js +178 -60
  817. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +17 -0
  818. package/src/x_ite/Prototype/ProtoDeclarationArray.js +17 -0
  819. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +104 -44
  820. package/src/x_ite/Prototype/X3DProtoDeclaration.js +111 -42
  821. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +16 -14
  822. package/src/x_ite/Rendering/DependentRenderer.js +7 -9
  823. package/src/x_ite/Rendering/TextureBuffer.js +24 -19
  824. package/src/x_ite/Rendering/X3DRenderObject.js +455 -428
  825. package/src/x_ite/Routing/RouteArray.js +34 -11
  826. package/src/x_ite/Routing/X3DRoute.js +60 -60
  827. package/src/x_ite/Routing/X3DRoutingContext.js +6 -6
  828. package/src/x_ite/X3D.js +30 -37
  829. package/src/x_ite.config.js +40 -5
  830. package/src/x_ite.css +165 -45
  831. package/src/x_ite.html +49 -29
  832. package/src/x_ite.js +86 -25
  833. package/x_ite.min.html +49 -22
  834. package/.bzrignore +0 -3
  835. package/AUTHORS.md +0 -6
  836. package/STYLE_GUIDE.md +0 -51
  837. package/X_ITE.sln +0 -54
  838. package/X_ITE.userprefs +0 -14
  839. package/build/build.mdproj +0 -47
  840. package/build/cad-geometry.build.js +0 -15
  841. package/build/geospatial.build.js +0 -15
  842. package/build/h-anim.build.js +0 -15
  843. package/build/nurbs.build.js +0 -15
  844. package/build/particle-systems.build.js +0 -15
  845. package/build/parts/cad-geometry.end.frag +0 -2
  846. package/build/parts/cad-geometry.start.frag +0 -6
  847. package/build/parts/geospatial.end.frag +0 -2
  848. package/build/parts/geospatial.start.frag +0 -6
  849. package/build/parts/h-anim.end.frag +0 -2
  850. package/build/parts/h-anim.start.frag +0 -6
  851. package/build/parts/nurbs.end.frag +0 -2
  852. package/build/parts/nurbs.start.frag +0 -6
  853. package/build/parts/particle-systems.end.frag +0 -2
  854. package/build/parts/particle-systems.start.frag +0 -6
  855. package/build/parts/rigid-body-physics.end.frag +0 -2
  856. package/build/parts/rigid-body-physics.start.frag +0 -6
  857. package/build/parts/texturing-3d.end.frag +0 -2
  858. package/build/parts/texturing-3d.start.frag +0 -6
  859. package/build/parts/x_ite.end.frag +0 -9
  860. package/build/parts/x_ite.start.frag +0 -6
  861. package/build/rigid-body-physics.build.js +0 -15
  862. package/build/texturing-3d.build.js +0 -15
  863. package/dist/components/README +0 -3
  864. package/dist/components/cad-geometry.min.js +0 -1
  865. package/dist/components/geospatial.min.js +0 -2
  866. package/dist/components/h-anim.min.js +0 -1
  867. package/dist/components/nurbs.min.js +0 -2
  868. package/dist/components/particle-systems.min.js +0 -2
  869. package/dist/components/rigid-body-physics.js +0 -3761
  870. package/dist/components/rigid-body-physics.min.js +0 -56
  871. package/dist/components/texturing-3d.min.js +0 -1
  872. package/dist/dist.mdproj +0 -61
  873. package/dist/images/logo.128.png +0 -0
  874. package/fonts/fonts.mdproj +0 -29
  875. package/meta/meta.mdproj +0 -35
  876. package/src/components/cad-geometry.config.js +0 -56
  877. package/src/components/geospatial.config.js +0 -56
  878. package/src/components/h-anim.config.js +0 -56
  879. package/src/components/nurbs.config.js +0 -61
  880. package/src/components/particle-systems.config.js +0 -56
  881. package/src/components/rigid-body-physics.config.js +0 -61
  882. package/src/components/texturing-3d.config.js +0 -56
  883. package/src/images/logo.128.png +0 -0
  884. package/src/locale/de.mo +0 -0
  885. package/src/locale/fr.mo +0 -0
  886. package/src/src.mdproj +0 -698
  887. package/src/standard/Networking/URI.js +0 -785
  888. package/src/test.x3d +0 -225
  889. package/src/x_ite/Browser/Shaders/Background.fs +0 -31
  890. package/src/x_ite/Browser/Shaders/Background.vs +0 -23
  891. package/src/x_ite/Browser/Shaders/Depth.fs +0 -32
  892. package/src/x_ite/Browser/Shaders/Depth.vs +0 -21
  893. package/src/x_ite/Browser/Shaders/Gouraud.fs +0 -135
  894. package/src/x_ite/Browser/Shaders/Gouraud.vs +0 -145
  895. package/src/x_ite/Browser/Shaders/Phong.fs +0 -269
  896. package/src/x_ite/Browser/Shaders/Phong.vs +0 -47
  897. package/src/x_ite/Browser/Shaders/PointSet.fs +0 -86
  898. package/src/x_ite/Browser/Shaders/Types.h +0 -55
  899. package/src/x_ite/Browser/Shaders/Wireframe.fs +0 -82
  900. package/src/x_ite/Browser/Shaders/Wireframe.vs +0 -61
  901. package/src/x_ite/Components/DIS.js +0 -91
  902. package/src/x_ite/Components/Picking.js +0 -94
  903. package/src/x_ite/Components/VolumeRendering.js +0 -121
@@ -66,11 +66,6 @@ function (X3DEventObject,
66
66
  {
67
67
  "use strict";
68
68
 
69
- function isLive ()
70
- {
71
- return this .isLive_;
72
- }
73
-
74
69
  function X3DBaseNode (executionContext)
75
70
  {
76
71
  if (this .hasOwnProperty ("_executionContext"))
@@ -82,6 +77,7 @@ function (X3DEventObject,
82
77
  this ._type = [ X3DConstants .X3DBaseNode ];
83
78
  this ._fields = new Map ();
84
79
  this ._predefinedFields = new Map ();
80
+ this ._aliases = new Map ();
85
81
  this ._userDefinedFields = new Map ();
86
82
  this ._cloneCount = 0;
87
83
 
@@ -90,10 +86,8 @@ function (X3DEventObject,
90
86
  if (this .hasUserDefinedFields ())
91
87
  this .fieldDefinitions = new FieldDefinitionArray (this .fieldDefinitions .getValue () .slice ());
92
88
 
93
- var fieldDefinitions = this .fieldDefinitions .getValue ();
94
-
95
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
96
- this .addField (fieldDefinitions [i]);
89
+ for (const fieldDefinition of this .fieldDefinitions)
90
+ this .addField (fieldDefinition);
97
91
  }
98
92
 
99
93
  X3DBaseNode .prototype = Object .assign (Object .create (X3DEventObject .prototype),
@@ -105,7 +99,7 @@ function (X3DEventObject,
105
99
  _initialized: false,
106
100
  setExecutionContext: function (value)
107
101
  {
108
- // Currently only usefull for Sene.
102
+ // Currently only useful for Sene.
109
103
 
110
104
  this ._executionContext = value;
111
105
  },
@@ -115,18 +109,18 @@ function (X3DEventObject,
115
109
  },
116
110
  getScene: function ()
117
111
  {
118
- var executionContext = this ._executionContext;
112
+ let executionContext = this ._executionContext;
119
113
 
120
114
  while (! executionContext .isRootContext ())
121
115
  executionContext = executionContext .getExecutionContext ();
122
116
 
123
117
  return executionContext;
124
118
  },
125
- getMasterScene: function ()
119
+ getMainScene: function ()
126
120
  {
127
- var scene = this ._executionContext .getScene ();
121
+ let scene = this ._executionContext .getScene ();
128
122
 
129
- while (! scene .isMasterContext ())
123
+ while (! scene .isMainContext ())
130
124
  scene = scene .getScene ();
131
125
 
132
126
  return scene;
@@ -141,11 +135,9 @@ function (X3DEventObject,
141
135
  },
142
136
  isType: function (types)
143
137
  {
144
- var type = this ._type;
145
-
146
- for (var i = type .length - 1; i >= 0; -- i)
138
+ for (const type of this ._type)
147
139
  {
148
- if (types .has (type [i]))
140
+ if (types .has (type))
149
141
  return true;
150
142
  }
151
143
 
@@ -155,30 +147,38 @@ function (X3DEventObject,
155
147
  {
156
148
  return this;
157
149
  },
158
- isLive: function ()
150
+ isLive: (function ()
159
151
  {
160
- /// Returns the live event of this node.
152
+ function isLive ()
153
+ {
154
+ return this .isLive_;
155
+ }
156
+
157
+ return function ()
158
+ {
159
+ /// Returns the live event of this node.
161
160
 
162
- // Change function.
161
+ // Change function.
163
162
 
164
- this .isLive = isLive;
163
+ this .isLive = isLive;
165
164
 
166
- // Add isLive event.
165
+ // Add isLive event.
167
166
 
168
- this .addChildObjects ("isLive", new Fields .SFBool (this .getLiveState ()));
167
+ this .addChildObjects ("isLive", new Fields .SFBool (this .getLiveState ()));
169
168
 
170
- // Event processing is done manually and immediately, so:
171
- this .isLive_ .removeParent (this);
169
+ // Event processing is done manually and immediately, so:
170
+ this .isLive_ .removeParent (this);
172
171
 
173
- // Connect to execution context.
172
+ // Connect to execution context.
174
173
 
175
- if (this ._executionContext !== this)
176
- this ._executionContext .isLive () .addInterest ("_set_live__", this);
174
+ if (this ._executionContext !== this)
175
+ this ._executionContext .isLive () .addInterest ("_set_live__", this);
177
176
 
178
- // Return field
177
+ // Return field
179
178
 
180
- return this .isLive ();
181
- },
179
+ return this .isLive ();
180
+ };
181
+ })(),
182
182
  setLive: function (value)
183
183
  {
184
184
  /// Sets the own live state of this node. Setting the live state to false
@@ -205,7 +205,7 @@ function (X3DEventObject,
205
205
  },
206
206
  _set_live__: function ()
207
207
  {
208
- var
208
+ const
209
209
  live = this .getLiveState (),
210
210
  isLive = this .isLive ();
211
211
 
@@ -241,14 +241,7 @@ function (X3DEventObject,
241
241
 
242
242
  this ._initialized = true;
243
243
 
244
- var fieldDefinitions = this .fieldDefinitions .getValue ();
245
-
246
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
247
- {
248
- var field = this ._fields .get (fieldDefinitions [i] .name);
249
- field .updateReferences ();
250
- field .setTainted (false);
251
- }
244
+ this ._fields .forEach (field => field .setTainted (false));
252
245
 
253
246
  this .initialize ();
254
247
  },
@@ -257,76 +250,52 @@ function (X3DEventObject,
257
250
  {
258
251
  return new (this .constructor) (executionContext);
259
252
  },
260
- copy: function (executionContext)
253
+ copy: function (instance)
261
254
  {
262
- // First try to get a named node with the node's name.
255
+ const executionContext = instance .getBody ();
263
256
 
264
- function needsName (baseNode)
265
- {
266
- if (baseNode .getCloneCount () > 1)
267
- return true;
268
-
269
- if (baseNode .hasRoutes ())
270
- return true;
257
+ // First try to get a named node with the node's name.
271
258
 
272
- return false;
273
- }
259
+ const name = this .getName ();
274
260
 
275
- var name = this .getName ();
276
-
277
261
  if (name .length)
278
262
  {
279
- try
280
- {
281
- return executionContext .getNamedNode (name) .getValue ();
282
- }
283
- catch (error)
284
- { }
285
- }
286
- else
287
- {
288
- if (needsName (this))
289
- this .getExecutionContext () .updateNamedNode (this .getExecutionContext () .getUniqueName (name), this);
263
+ const namedNode = executionContext .getNamedNodes () .get (name);
264
+
265
+ if (namedNode)
266
+ return namedNode;
290
267
  }
291
268
 
292
269
  // Create copy.
293
270
 
294
- var copy = this .create (executionContext);
271
+ const copy = this .create (executionContext);
295
272
 
296
273
  if (name .length)
297
274
  executionContext .updateNamedNode (name, copy);
298
275
 
299
276
  // Default fields
300
277
 
301
- var predefinedFields = this .getPredefinedFields ();
302
-
303
- for (var sourceField of predefinedFields .values ())
278
+ this .getPredefinedFields () .forEach (function (sourceField)
304
279
  {
305
280
  try
306
281
  {
307
- var destfield = copy .getField (sourceField .getName ());
308
-
309
- destfield .setSet (sourceField .getSet ());
310
-
311
- //if (sourceField .getAccessType () === destfield .getAccessType () and sourceField .getType () === destfield .getType ())
312
- //{
282
+ const destinationField = copy .getField (sourceField .getName ());
313
283
 
314
284
  if (sourceField .hasReferences ())
315
285
  {
316
- var references = sourceField .getReferences ();
317
-
318
286
  // IS relationship
319
- for (var originalReference of references .values ())
287
+
288
+ sourceField .getReferences () .forEach (function (originalReference)
320
289
  {
321
290
  try
322
291
  {
323
- destfield .addReference (executionContext .getField (originalReference .getName ()));
292
+ destinationField .addReference (instance .getField (originalReference .getName ()));
324
293
  }
325
294
  catch (error)
326
295
  {
327
296
  console .error (error .message);
328
297
  }
329
- }
298
+ });
330
299
  }
331
300
  else
332
301
  {
@@ -336,70 +305,66 @@ function (X3DEventObject,
336
305
  {
337
306
  case X3DConstants .SFNode:
338
307
  case X3DConstants .MFNode:
339
- destfield .setValue (sourceField .copy (executionContext));
308
+ destinationField .set (sourceField .copy (instance) .getValue ());
340
309
  break;
341
310
  default:
342
- destfield .setValue (sourceField);
311
+ destinationField .set (sourceField .getValue (), sourceField .length);
343
312
  break;
344
313
  }
345
314
  }
346
315
  }
316
+
317
+ destinationField .setModificationTime (sourceField .getModificationTime ());
347
318
  }
348
319
  catch (error)
349
320
  {
350
321
  console .log (error .message);
351
322
  }
352
- }
323
+ },
324
+ this);
353
325
 
354
326
  // User-defined fields
355
327
 
356
- var userDefinedFields = this .getUserDefinedFields ();
357
-
358
- for (var sourceField of userDefinedFields .values ())
328
+ this .getUserDefinedFields () .forEach (function (sourceField)
359
329
  {
360
- var destfield = sourceField .copy (executionContext);
330
+ const destinationField = sourceField .copy (instance);
361
331
 
362
332
  copy .addUserDefinedField (sourceField .getAccessType (),
363
- sourceField .getName (),
364
- destfield);
365
-
366
- destfield .setSet (sourceField .getSet ());
333
+ sourceField .getName (),
334
+ destinationField);
367
335
 
368
336
  if (sourceField .hasReferences ())
369
337
  {
370
338
  // IS relationship
371
339
 
372
- var references = sourceField .getReferences ();
373
-
374
- for (var originalReference of references .values ())
340
+ sourceField .getReferences () .forEach (function (originalReference)
375
341
  {
376
342
  try
377
343
  {
378
- destfield .addReference (executionContext .getField (originalReference .getName ()));
344
+ destinationField .addReference (instance .getField (originalReference .getName ()));
379
345
  }
380
346
  catch (error)
381
347
  {
382
- console .error ("No reference '" + originalReference .getName () + "' inside execution context " + executionContext .getTypeName () + " '" + executionContext .getName () + "'.");
348
+ console .error ("No reference '" + originalReference .getName () + "' inside execution context " + instance .getTypeName () + " '" + instance .getName () + "'.");
383
349
  }
384
- }
350
+ });
385
351
  }
386
- }
387
352
 
388
- executionContext .addUninitializedNode (copy);
353
+ destinationField .setModificationTime (sourceField .getModificationTime ());
354
+ });
355
+
356
+ copy .setup ();
357
+
389
358
  return copy;
390
359
  },
391
360
  flatCopy: function (executionContext)
392
361
  {
393
- var
394
- copy = this .create (executionContext || this .getExecutionContext ()),
395
- fieldDefinitions = this .fieldDefinitions .getValue ();
362
+ const copy = this .create (executionContext || this .getExecutionContext ());
396
363
 
397
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
364
+ this ._fields .forEach (function (field)
398
365
  {
399
- var field = this ._fields .get (fieldDefinitions [i] .name);
400
-
401
- copy ._fields .get (fieldDefinitions [i] .name) .assign (field);
402
- }
366
+ copy ._fields .get (field .getName ()) .assign (field);
367
+ });
403
368
 
404
369
  copy .setup ();
405
370
 
@@ -407,7 +372,7 @@ function (X3DEventObject,
407
372
  },
408
373
  addChildObjects: function (name, field)
409
374
  {
410
- for (var i = 0, length = arguments .length; i < length; i += 2)
375
+ for (let i = 0, length = arguments .length; i < length; i += 2)
411
376
  this .addChildObject (arguments [i], arguments [i + 1]);
412
377
  },
413
378
  addChildObject: function (name, field)
@@ -425,7 +390,7 @@ function (X3DEventObject,
425
390
  },
426
391
  addField: function (fieldDefinition)
427
392
  {
428
- var
393
+ const
429
394
  accessType = fieldDefinition .accessType,
430
395
  name = fieldDefinition .name,
431
396
  field = fieldDefinition .value .clone ();
@@ -442,36 +407,37 @@ function (X3DEventObject,
442
407
  this ._fields .set (name, field);
443
408
 
444
409
  if (! this .getPrivate ())
445
- field .addClones (1);
410
+ field .addCloneCount (1);
446
411
 
447
412
  if (userDefined)
448
413
  {
449
414
  this ._userDefinedFields .set (name, field);
450
- return;
451
415
  }
452
-
453
- this ._predefinedFields .set (name, field);
454
-
455
- Object .defineProperty (this, name + "_",
416
+ else
456
417
  {
457
- get: function () { return field; },
458
- set: function (value) { field .setValue (value); },
459
- enumerable: true,
460
- configurable: true, // false : non deleteable
461
- });
418
+ this ._predefinedFields .set (name, field);
419
+
420
+ Object .defineProperty (this, name + "_",
421
+ {
422
+ get: function () { return field; },
423
+ set: function (value) { field .setValue (value); },
424
+ enumerable: true,
425
+ configurable: true, // false : non deletable
426
+ });
427
+ }
462
428
  },
463
429
  removeField: function (name)
464
430
  {
465
- var field = this ._fields .get (name);
431
+ const field = this ._fields .get (name);
466
432
 
467
433
  if (field)
468
434
  {
469
435
  this ._fields .delete (name);
470
436
  this ._userDefinedFields .delete (name);
471
-
472
- var fieldDefinitions = this .fieldDefinitions .getValue ();
473
-
474
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
437
+
438
+ const fieldDefinitions = this .fieldDefinitions .getValue ();
439
+
440
+ for (let i = 0, length = fieldDefinitions .length; i < length; ++ i)
475
441
  {
476
442
  if (fieldDefinitions [i] .name === name)
477
443
  {
@@ -481,45 +447,51 @@ function (X3DEventObject,
481
447
  }
482
448
 
483
449
  if (! this .getPrivate ())
484
- field .removeClones (1);
450
+ field .removeCloneCount (1);
485
451
  }
486
452
  },
487
453
  getField: (function ()
488
454
  {
489
- var
490
- set_re = /^set_(.*?)$/,
491
- changed_re = /^(.*?)_changed$/;
455
+ const
456
+ set_field = /^set_(.*?)$/,
457
+ field_changed = /^(.*?)_changed$/;
492
458
 
493
459
  return function (name)
494
460
  {
495
- var field = this ._fields .get (name);
461
+ const field = this ._fields .get (name) || this ._aliases .get (name);
496
462
 
497
463
  if (field)
498
464
  return field;
499
465
 
500
- var match = name .match (set_re);
466
+ const match = name .match (set_field);
501
467
 
502
468
  if (match)
503
469
  {
504
- field = this ._fields .get (match [1]);
505
-
470
+ const field = this ._fields .get (match [1]) || this ._aliases .get (match [1]);
471
+
506
472
  if (field && field .getAccessType () === X3DConstants .inputOutput)
507
473
  return field;
508
474
  }
509
-
510
- var match = name .match (changed_re);
511
-
512
- if (match)
475
+ else
513
476
  {
514
- field = this ._fields .get (match [1]);
477
+ const match = name .match (field_changed);
515
478
 
516
- if (field && field .getAccessType () === X3DConstants .inputOutput)
517
- return field;
479
+ if (match)
480
+ {
481
+ const field = this ._fields .get (match [1]) || this ._aliases .get (match [1]);
482
+
483
+ if (field && field .getAccessType () === X3DConstants .inputOutput)
484
+ return field;
485
+ }
518
486
  }
519
487
 
520
- throw new Error ("Unkown field '" + name + "' in node class " + this .getTypeName () + ".");
488
+ throw new Error ("Unknown field '" + name + "' in node class " + this .getTypeName () + ".");
521
489
  };
522
490
  })(),
491
+ addAlias: function (alias, field)
492
+ {
493
+ this ._aliases .set (alias, field);
494
+ },
523
495
  getFieldDefinitions: function ()
524
496
  {
525
497
  return this .fieldDefinitions;
@@ -550,68 +522,62 @@ function (X3DEventObject,
550
522
  {
551
523
  return this ._predefinedFields;
552
524
  },
553
- getChangedFields: function (extented)
525
+ getChangedFields: function (extended)
554
526
  {
555
- /* param routes: also returen fields with routes */
527
+ /* param routes: also return fields with routes */
556
528
 
557
- var
529
+ const
558
530
  changedFields = [ ],
559
531
  predefinedFields = this .getPredefinedFields ();
560
532
 
561
- if (extented)
533
+ if (extended)
562
534
  {
563
- var userDefinedFields = this .getUserDefinedFields ();
535
+ const userDefinedFields = this .getUserDefinedFields ();
564
536
 
565
- for (var field of userDefinedFields .values ())
537
+ userDefinedFields .forEach (function (field)
538
+ {
566
539
  changedFields .push (field);
540
+ });
567
541
  }
568
542
 
569
- for (var field of predefinedFields .values ())
543
+ predefinedFields .forEach (function (field)
570
544
  {
571
- if (extented)
545
+ if (extended)
572
546
  {
573
547
  if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
574
548
  {
575
549
  changedFields .push (field);
576
- continue;
550
+ return;
577
551
  }
578
552
  }
579
553
 
580
554
  if (field .getReferences () .size === 0)
581
555
  {
582
556
  if (! field .isInitializable ())
583
- continue;
557
+ return;
584
558
 
585
559
  if (this .isDefaultValue (field))
586
- continue;
560
+ return;
587
561
  }
588
562
 
589
563
  changedFields .push (field);
590
- }
564
+ },
565
+ this);
591
566
 
592
567
  return changedFields;
593
568
  },
594
569
  isDefaultValue: function (field)
595
570
  {
596
- var fieldDefinition = this .getFieldDefinitions () .get (field .getName ());
571
+ const fieldDefinition = this .getFieldDefinitions () .get (field .getName ());
597
572
 
598
573
  if (fieldDefinition)
599
574
  return fieldDefinition .value .equals (field);
600
575
 
601
- return ! field .getSet ();
576
+ return ! field .getModificationTime ();
602
577
  },
603
578
  getFields: function ()
604
579
  {
605
- var
606
- fields = [ ],
607
- fieldDefinitions = this .getFieldDefinitions ();
608
-
609
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
610
- {
611
- fields .push (this .getField (fieldDefinitions [i] .name));
612
- }
613
-
614
- return fields;
580
+ return this ._fields;
615
581
  },
616
582
  getSourceText: function ()
617
583
  {
@@ -621,18 +587,15 @@ function (X3DEventObject,
621
587
  {
622
588
  /// Returns true if there are any routes from or to fields of this node otherwise false.
623
589
 
624
- var fieldDefinitions = this .getFieldDefinitions ();
625
-
626
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
590
+ for (const field of this ._fields .values ())
627
591
  {
628
- var field = this .getField (fieldDefinitions [i] .name);
629
-
630
- if (field .getInputRoutes () .size === 0 && field .getOutputRoutes () .size === 0)
631
- continue;
592
+ if (field .getInputRoutes () .size)
593
+ return true;
632
594
 
633
- return true;
595
+ if (field .getOutputRoutes () .size)
596
+ return true;
634
597
  }
635
-
598
+
636
599
  return false;
637
600
  },
638
601
  getPrivate: function ()
@@ -645,35 +608,35 @@ function (X3DEventObject,
645
608
 
646
609
  if (value)
647
610
  {
648
- var fieldDefinitions = this .getFieldDefinitions ();
649
-
650
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
651
- this .getField (fieldDefinitions [i] .name) .removeClones (1);
611
+ this ._fields .forEach (function (field)
612
+ {
613
+ field .removeCloneCount (1);
614
+ });
652
615
  }
653
616
  else
654
617
  {
655
- var fieldDefinitions = this .getFieldDefinitions ();
656
-
657
- for (var i = 0, length = fieldDefinitions .length; i < length; ++ i)
658
- this .getField (fieldDefinitions [i] .name) .addClones (1);
618
+ this ._fields .forEach (function (field)
619
+ {
620
+ field .addCloneCount (1);
621
+ });
659
622
  }
660
623
  },
661
624
  getCloneCount: function ()
662
625
  {
663
626
  return this ._cloneCount;
664
627
  },
665
- addClones: function (count)
628
+ addCloneCount: function (count)
666
629
  {
667
630
  if (count === 0)
668
631
  return;
669
-
632
+
670
633
  this ._cloneCount += count;
671
634
  },
672
- removeClones: function (count)
635
+ removeCloneCount: function (count)
673
636
  {
674
637
  if (count === 0)
675
638
  return;
676
-
639
+
677
640
  this ._cloneCount -= count;
678
641
  },
679
642
  traverse: function () { },
@@ -681,20 +644,248 @@ function (X3DEventObject,
681
644
  {
682
645
  stream .string += this .getTypeName () + " { }";
683
646
  },
647
+ toVRMLStream: function (stream)
648
+ {
649
+ const generator = Generator .Get (stream);
650
+
651
+ if (generator .IsSharedNode (this))
652
+ {
653
+ stream .string += "NULL";
654
+ return;
655
+ }
656
+
657
+ generator .EnterScope ();
658
+
659
+ const name = generator .Name (this);
660
+
661
+ if (name .length)
662
+ {
663
+ if (generator .ExistsNode (this))
664
+ {
665
+ stream .string += "USE";
666
+ stream .string += " ";
667
+ stream .string += name;
668
+
669
+ generator .LeaveScope ();
670
+ return;
671
+ }
672
+ }
673
+
674
+ if (name .length)
675
+ {
676
+ generator .AddNode (this);
677
+
678
+ stream .string += "DEF";
679
+ stream .string += " ";
680
+ stream .string += name;
681
+ stream .string += " ";
682
+ }
683
+
684
+ stream .string += this .getTypeName ();
685
+ stream .string += " ";
686
+ stream .string += "{";
687
+
688
+ const
689
+ fields = this .getChangedFields (),
690
+ userDefinedFields = this .getUserDefinedFields ();
691
+
692
+ let
693
+ fieldTypeLength = 0,
694
+ accessTypeLength = 0;
695
+
696
+ if (this .hasUserDefinedFields ())
697
+ {
698
+ userDefinedFields .forEach (function (field)
699
+ {
700
+ fieldTypeLength = Math .max (fieldTypeLength, field .getTypeName () .length);
701
+ accessTypeLength = Math .max (accessTypeLength, generator .AccessType (field .getAccessType ()) .length);
702
+ });
703
+
704
+ if (userDefinedFields .size)
705
+ {
706
+ stream .string += "\n";
707
+ generator .IncIndent ();
708
+
709
+ userDefinedFields .forEach (function (field)
710
+ {
711
+ this .toVRMLStreamUserDefinedField (stream, field, fieldTypeLength, accessTypeLength);
712
+
713
+ stream .string += "\n";
714
+ },
715
+ this);
716
+
717
+ generator .DecIndent ();
718
+
719
+ if (fields .length !== 0)
720
+ stream .string += "\n";
721
+ }
722
+ }
723
+
724
+ if (fields .length === 0)
725
+ {
726
+ if (userDefinedFields .size)
727
+ stream .string += generator .Indent ();
728
+ else
729
+ stream .string += " ";
730
+ }
731
+ else
732
+ {
733
+ if (userDefinedFields .size === 0)
734
+ stream .string += "\n";
735
+
736
+ generator .IncIndent ();
737
+
738
+ fields .forEach (function (field)
739
+ {
740
+ this .toVRMLStreamField (stream, field, fieldTypeLength, accessTypeLength);
741
+
742
+ stream .string += "\n";
743
+ },
744
+ this);
745
+
746
+ generator .DecIndent ();
747
+ stream .string += generator .Indent ();
748
+ }
749
+
750
+ stream .string += "}";
751
+
752
+ generator .LeaveScope ();
753
+ },
754
+ toVRMLStreamField: function (stream, field, fieldTypeLength, accessTypeLength)
755
+ {
756
+ const generator = Generator .Get (stream);
757
+
758
+ if (field .getReferences () .size === 0 || ! generator .ExecutionContext ())
759
+ {
760
+ if (field .isInitializable ())
761
+ {
762
+ stream .string += generator .Indent ();
763
+ stream .string += field .getName ();
764
+ stream .string += " ";
765
+
766
+ field .toVRMLStream (stream);
767
+ }
768
+ }
769
+ else
770
+ {
771
+ let
772
+ index = 0,
773
+ initializableReference = false;
774
+
775
+ field .getReferences () .forEach (function (reference)
776
+ {
777
+ initializableReference = initializableReference || reference .isInitializable ();
778
+
779
+ // Output build in reference field
780
+
781
+ stream .string += generator .Indent ();
782
+ stream .string += field .getName ();
783
+ stream .string += " ";
784
+ stream .string += "IS";
785
+ stream .string += " ";
786
+ stream .string += reference .getName ();
787
+
788
+ ++ index;
789
+
790
+ if (index !== field .getReferences () .size)
791
+ stream .string += "\n";
792
+ });
793
+
794
+ if (field .getAccessType () === X3DConstants .inputOutput && ! initializableReference && ! this .isDefaultValue (field))
795
+ {
796
+ // Output build in field
797
+
798
+ stream .string += "\n";
799
+ stream .string += generator .Indent ();
800
+ stream .string += field .getName ();
801
+ stream .string += " ";
802
+
803
+ field .toVRMLStream (stream);
804
+ }
805
+ }
806
+ },
807
+ toVRMLStreamUserDefinedField: function (stream, field, fieldTypeLength, accessTypeLength)
808
+ {
809
+ const generator = Generator .Get (stream);
810
+
811
+ if (field .getReferences () .size === 0 || ! generator .ExecutionContext ())
812
+ {
813
+ stream .string += generator .Indent ();
814
+ stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
815
+ stream .string += " ";
816
+ stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
817
+ stream .string += " ";
818
+ stream .string += field .getName ();
819
+
820
+ if (field .isInitializable ())
821
+ {
822
+ stream .string += " ";
823
+
824
+ field .toVRMLStream (stream);
825
+ }
826
+ }
827
+ else
828
+ {
829
+ let
830
+ index = 0,
831
+ initializableReference = false;
832
+
833
+ field .getReferences () .forEach (function (reference)
834
+ {
835
+ initializableReference = initializableReference || reference .isInitializable ();
836
+
837
+ // Output user defined reference field
838
+
839
+ stream .string += generator .Indent ();
840
+ stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
841
+ stream .string += " ";
842
+ stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
843
+ stream .string += " ";
844
+ stream .string += field .getName ();
845
+ stream .string += " ";
846
+ stream .string += "IS";
847
+ stream .string += " ";
848
+ stream .string += reference .getName ();
849
+
850
+ ++ index;
851
+
852
+ if (index !== field .getReferences () .size)
853
+ stream .string += "\n";
854
+ });
855
+
856
+ if (field .getAccessType () === X3DConstants .inputOutput && ! initializableReference && ! field .isDefaultValue ())
857
+ {
858
+ stream .string += "\n";
859
+ stream .string += generator .Indent ();
860
+ stream .string += generator .PadRight (generator .AccessType (field .getAccessType ()), accessTypeLength);
861
+ stream .string += " ";
862
+ stream .string += generator .PadRight (field .getTypeName (), fieldTypeLength);
863
+ stream .string += " ";
864
+ stream .string += field .getName ();
865
+
866
+ if (field .isInitializable ())
867
+ {
868
+ stream .string += " ";
869
+
870
+ field .toVRMLStream (stream);
871
+ }
872
+ }
873
+ }
874
+ },
684
875
  toXMLStream: function (stream)
685
876
  {
686
- var generator = Generator .Get (stream);
877
+ const generator = Generator .Get (stream);
687
878
 
688
879
  if (generator .IsSharedNode (this))
689
880
  {
690
881
  stream .string += generator .Indent ();
691
- stream .string += "<!-- NULL -->";
882
+ stream .string += "<!-- NULL -->";
692
883
  return;
693
884
  }
694
885
 
695
886
  generator .EnterScope ();
696
887
 
697
- var name = generator .Name (this);
888
+ const name = generator .Name (this);
698
889
 
699
890
  if (name .length)
700
891
  {
@@ -708,7 +899,7 @@ function (X3DEventObject,
708
899
  stream .string += generator .XMLEncode (name);
709
900
  stream .string += "'";
710
901
 
711
- var containerField = generator .ContainerField ();
902
+ const containerField = generator .ContainerField ();
712
903
 
713
904
  if (containerField)
714
905
  {
@@ -727,7 +918,7 @@ function (X3DEventObject,
727
918
  return;
728
919
  }
729
920
  }
730
-
921
+
731
922
  stream .string += generator .Indent ();
732
923
  stream .string += "<";
733
924
  stream .string += this .getTypeName ();
@@ -742,7 +933,7 @@ function (X3DEventObject,
742
933
  stream .string += "'";
743
934
  }
744
935
 
745
- var containerField = generator .ContainerField ();
936
+ const containerField = generator .ContainerField ();
746
937
 
747
938
  if (containerField)
748
939
  {
@@ -755,15 +946,15 @@ function (X3DEventObject,
755
946
  }
756
947
  }
757
948
 
758
- var
949
+ const
759
950
  fields = this .getChangedFields (),
760
951
  userDefinedFields = this .getUserDefinedFields ();
761
952
 
762
- var
953
+ const
763
954
  references = [ ],
764
955
  childNodes = [ ];
765
956
 
766
- var cdata = this .getSourceText ();
957
+ const cdata = this .getSourceText ();
767
958
 
768
959
  if (cdata && cdata .length === 0)
769
960
  cdata = null;
@@ -771,30 +962,26 @@ function (X3DEventObject,
771
962
  generator .IncIndent ();
772
963
  generator .IncIndent ();
773
964
 
774
- for (var i = 0, length = fields .length; i < length; ++ i)
965
+ for (const field of fields)
775
966
  {
776
- var field = fields [i];
777
-
778
967
  // If the field is a inputOutput and we have as reference only inputOnly or outputOnly we must output the value
779
968
  // for this field.
780
969
 
781
- var mustOutputValue = false;
970
+ let mustOutputValue = false;
782
971
 
783
972
  if (generator .ExecutionContext ())
784
973
  {
785
974
  if (field .getAccessType () === X3DConstants .inputOutput && field .getReferences () .size !== 0)
786
975
  {
787
- var
788
- initializableReference = false,
789
- fieldReferences = field .getReferences ();
790
-
791
- for (var fieldReference of fieldReferences .values ())
976
+ let initializableReference = false;
977
+
978
+ field .getReferences () .forEach (function (fieldReference)
792
979
  {
793
- initializableReference |= fieldReference .isInitializable ();
794
- }
980
+ initializableReference = initializableReference || fieldReference .isInitializable ();
981
+ });
795
982
 
796
983
  if (! initializableReference)
797
- mustOutputValue = true;
984
+ mustOutputValue = ! this .isDefaultValue (field);
798
985
  }
799
986
  }
800
987
 
@@ -828,7 +1015,7 @@ function (X3DEventObject,
828
1015
 
829
1016
  field .toXMLStream (stream);
830
1017
 
831
- stream .string += "'";
1018
+ stream .string += "'";
832
1019
  break;
833
1020
  }
834
1021
  }
@@ -842,7 +1029,7 @@ function (X3DEventObject,
842
1029
 
843
1030
  generator .DecIndent ();
844
1031
  generator .DecIndent ();
845
-
1032
+
846
1033
  if ((! this .hasUserDefinedFields () || userDefinedFields .size === 0) && references .length === 0 && childNodes .length === 0 && ! cdata)
847
1034
  {
848
1035
  stream .string += "/>";
@@ -855,7 +1042,7 @@ function (X3DEventObject,
855
1042
 
856
1043
  if (this .hasUserDefinedFields ())
857
1044
  {
858
- for (var field of userDefinedFields .values ())
1045
+ userDefinedFields .forEach (function (field)
859
1046
  {
860
1047
  stream .string += generator .Indent ();
861
1048
  stream .string += "<field";
@@ -875,18 +1062,16 @@ function (X3DEventObject,
875
1062
  // If the field is a inputOutput and we have as reference only inputOnly or outputOnly we must output the value
876
1063
  // for this field.
877
1064
 
878
- var mustOutputValue = false;
1065
+ let mustOutputValue = false;
879
1066
 
880
1067
  if (field .getAccessType () === X3DConstants .inputOutput && field .getReferences () .size !== 0)
881
1068
  {
882
- var
883
- initializableReference = false,
884
- fieldReferences = field .getReferences ();
1069
+ let initializableReference = false;
885
1070
 
886
- for (var fieldReference of fieldReferences .values ())
1071
+ field .getReferences () .forEach (function (fieldReference)
887
1072
  {
888
- initializableReference |= fieldReference .isInitializable ();
889
- }
1073
+ initializableReference = initializableReference || fieldReference .isInitializable ();
1074
+ });
890
1075
 
891
1076
  if (! initializableReference)
892
1077
  mustOutputValue = true;
@@ -896,7 +1081,7 @@ function (X3DEventObject,
896
1081
  {
897
1082
  if (mustOutputValue && generator .ExecutionContext ())
898
1083
  references .push (field);
899
-
1084
+
900
1085
  if (! field .isInitializable () || field .isDefaultValue ())
901
1086
  {
902
1087
  stream .string += "/>\n";
@@ -949,9 +1134,9 @@ function (X3DEventObject,
949
1134
 
950
1135
  stream .string += "/>\n";
951
1136
  }
952
- }
1137
+ });
953
1138
  }
954
-
1139
+
955
1140
  if (references .length)
956
1141
  {
957
1142
  stream .string += generator .Indent ();
@@ -959,14 +1144,12 @@ function (X3DEventObject,
959
1144
  stream .string += "\n";
960
1145
 
961
1146
  generator .IncIndent ();
962
-
963
- for (var i = 0, length = references .length; i < length; ++ i)
1147
+
1148
+ for (const field of references)
964
1149
  {
965
- var
966
- field = references [i],
967
- protoFields = field .getReferences ();
1150
+ const protoFields = field .getReferences ();
968
1151
 
969
- for (var protoField of protoFields .values ())
1152
+ protoFields .forEach (function (protoField)
970
1153
  {
971
1154
  stream .string += generator .Indent ();
972
1155
  stream .string += "<connect";
@@ -979,7 +1162,7 @@ function (X3DEventObject,
979
1162
  stream .string += generator .XMLEncode (protoField .getName ());
980
1163
  stream .string += "'";
981
1164
  stream .string += "/>\n";
982
- }
1165
+ });
983
1166
  }
984
1167
 
985
1168
  generator .DecIndent ();
@@ -988,10 +1171,8 @@ function (X3DEventObject,
988
1171
  stream .string += "</IS>\n";
989
1172
  }
990
1173
 
991
- for (var i = 0, length = childNodes .length; i < length; ++ i)
1174
+ for (const field of childNodes)
992
1175
  {
993
- var field = childNodes [i];
994
-
995
1176
  generator .PushContainerField (field);
996
1177
 
997
1178
  field .toXMLStream (stream);
@@ -1003,10 +1184,8 @@ function (X3DEventObject,
1003
1184
 
1004
1185
  if (cdata)
1005
1186
  {
1006
- for (var i = 0, length = cdata .length; i < length; ++ i)
1187
+ for (const value of cdata)
1007
1188
  {
1008
- var value = cdata [i];
1009
-
1010
1189
  stream .string += "<![CDATA[";
1011
1190
  stream .string += generator .escapeCDATA (value);
1012
1191
  stream .string += "]]>\n";
@@ -1026,47 +1205,49 @@ function (X3DEventObject,
1026
1205
  dispose: function ()
1027
1206
  {
1028
1207
  // TODO: remove named node if any. (do this in NamedNode)
1029
- // TODO: remove improted node if any. (do this in ImportedNode)
1208
+ // TODO: remove imported node if any. (do this in ImportedNode)
1030
1209
  // TODO: remove exported node if any. (do this in ExportedNode)
1031
1210
  // TODO: remove routes from and to node if any. (do this in Route)
1032
1211
 
1033
- var
1212
+ const
1034
1213
  predefinedFields = this .getPredefinedFields (),
1035
1214
  userDefinedFields = this .getUserDefinedFields ();
1036
1215
 
1037
- for (var predefinedField of predefinedFields .values ())
1216
+ predefinedFields .forEach (function (predefinedField)
1217
+ {
1038
1218
  predefinedField .dispose ();
1219
+ });
1039
1220
 
1040
- for (var userDefinedField of userDefinedFields .values ())
1221
+ userDefinedFields .forEach (function (userDefinedField)
1222
+ {
1041
1223
  userDefinedField .dispose ();
1224
+ });
1042
1225
 
1043
1226
  // Remove node from entire scene graph.
1044
1227
 
1045
- var firstParents = this .getParents ();
1228
+ const firstParents = new Set (this .getParents ());
1046
1229
 
1047
- for (var firstParent of firstParents .values ())
1230
+ firstParents .forEach (function (firstParent)
1048
1231
  {
1049
1232
  if (firstParent instanceof Fields .SFNode)
1050
1233
  {
1051
- var secondParents = firstParent .getParents ();
1234
+ const secondParents = new Set (firstParent .getParents ());
1052
1235
 
1053
- for (var secondParent of secondParents .values ())
1236
+ secondParents .forEach (function (secondParent)
1054
1237
  {
1055
1238
  if (secondParent instanceof Fields .MFNode)
1056
1239
  {
1057
- var length = secondParent .length;
1240
+ const length = secondParent .length;
1058
1241
 
1059
1242
  secondParent .erase (secondParent .remove (0, length, firstParent), length);
1060
1243
  }
1061
- }
1244
+ });
1062
1245
 
1063
1246
  firstParent .setValue (null);
1064
1247
  }
1065
- }
1248
+ });
1066
1249
  },
1067
1250
  });
1068
1251
 
1069
- X3DBaseNode .prototype .addAlias = X3DBaseNode .prototype .setField;
1070
-
1071
1252
  return X3DBaseNode;
1072
1253
  });