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
@@ -176,7 +176,7 @@ function (Fields,
176
176
  Comment: new RegExp ('#(.*?)(?=[\\n\\r])', 'gy'),
177
177
 
178
178
  // Header
179
- Header: new RegExp ("^#(VRML|X3D) V(.*?) (utf8)(?: (.*?))?[\\n\\r]", 'gy'),
179
+ Header: new RegExp ("^#(VRML|X3D) V(.*?) (utf8)(?:[ \\t]+(.*?))?[ \\t]*[\\n\\r]", 'gy'),
180
180
 
181
181
  // Keywords
182
182
  AS: new RegExp ('AS', 'gy'),
@@ -251,10 +251,6 @@ function (Fields,
251
251
  for (var key in Grammar)
252
252
  Grammar [key] .parse = parse;
253
253
 
254
- Object .preventExtensions (Grammar);
255
- Object .freeze (Grammar);
256
- Object .seal (Grammar);
257
-
258
254
  /*
259
255
  * Parser
260
256
  */
@@ -334,7 +330,7 @@ function (Fields,
334
330
  if (this .getBrowser () .isStrict ())
335
331
  throw new Error (string);
336
332
 
337
- this .getBrowser () .println (string);
333
+ console .warn (string);
338
334
  },
339
335
  parseIntoScene: function (input, success, error)
340
336
  {
@@ -367,20 +363,20 @@ function (Fields,
367
363
  line = this .getLastLine (),
368
364
  lastLine = this .getLastLine (),
369
365
  linePos = line .length - rest .length + 1;
370
-
366
+
371
367
  if (line .length > 80)
372
368
  {
373
369
  line = line .substr (linePos - 40, 80);
374
370
  lastLine = "";
375
371
  linePos = 40;
376
372
  }
377
-
373
+
378
374
  // Format error
379
375
 
380
376
  var message = "\n"
381
377
  + "********************************************************************************" + "\n"
382
378
  + "Parser error at line " + this .lineNumber + ":" + linePos + "\n"
383
- + "in '" + this .getScene () .getURL () + "'" + "\n"
379
+ + "in '" + this .getScene () .getWorldURL () + "'" + "\n"
384
380
  + "\n"
385
381
  + lastLine + "\n"
386
382
  + line + "\n"
@@ -441,11 +437,11 @@ function (Fields,
441
437
  {
442
438
  if (!this .xml)
443
439
  this .lines (this .result [1]);
444
-
440
+
445
441
  return true;
446
442
  }
447
443
 
448
- return false;
444
+ return false;
449
445
  },
450
446
  lines: function (string)
451
447
  {
@@ -479,12 +475,12 @@ function (Fields,
479
475
  try
480
476
  {
481
477
  this .statements ();
482
- this .popExecutionContext (this .getScene ());
478
+ this .popExecutionContext ();
483
479
 
484
480
  if (this .lastIndex < this .input .length)
485
481
  throw new Error ("Unknown statement.");
486
482
 
487
- this .success ();
483
+ this .success (this .getScene ());
488
484
  }
489
485
  catch (error)
490
486
  {
@@ -501,8 +497,8 @@ function (Fields,
501
497
  else
502
498
  {
503
499
  this .statements ();
504
- this .popExecutionContext (this .getScene ());
505
-
500
+ this .popExecutionContext ();
501
+
506
502
  if (this .lastIndex < this .input .length)
507
503
  throw new Error ("Unknown statement.");
508
504
  }
@@ -515,8 +511,8 @@ function (Fields,
515
511
 
516
512
  if (result)
517
513
  {
518
- this .getScene () .specificationVersion = result [2];
519
- this .getScene () .encoding = "VRML";
514
+ this .getScene () .setSpecificationVersion (result [2]);
515
+ this .getScene () .setEncoding ("VRML");
520
516
  return true;
521
517
  }
522
518
 
@@ -561,7 +557,7 @@ function (Fields,
561
557
  var componentNameIdCharacters = this .result [1];
562
558
 
563
559
  this .comments ();
564
-
560
+
565
561
  if (Grammar .Colon .parse (this))
566
562
  {
567
563
  if (this .componentSupportLevel ())
@@ -570,16 +566,16 @@ function (Fields,
570
566
 
571
567
  return this .getBrowser () .getComponent (componentNameIdCharacters, componentSupportLevel);
572
568
  }
573
-
569
+
574
570
  throw new Error ("Expected a component support level.");
575
571
  }
576
-
572
+
577
573
  throw new Error ("Expected a ':' after component name.");
578
574
  }
579
-
575
+
580
576
  throw new Error ("Expected a component name.");
581
577
  }
582
-
578
+
583
579
  return null;
584
580
  },
585
581
  componentSupportLevel: function ()
@@ -594,17 +590,17 @@ function (Fields,
594
590
  unitStatement: function ()
595
591
  {
596
592
  this .comments ();
597
-
593
+
598
594
  if (Grammar .UNIT .parse (this))
599
595
  {
600
596
  if (this .categoryNameId ())
601
597
  {
602
598
  var categoryNameId = this .result [1];
603
-
599
+
604
600
  if (this .unitNameId ())
605
601
  {
606
602
  var unitNameId = this .result [1];
607
-
603
+
608
604
  if (this .unitConversionFactor ())
609
605
  {
610
606
  var unitConversionFactor = this .value;
@@ -620,16 +616,16 @@ function (Fields,
620
616
  return true;
621
617
  }
622
618
  }
623
-
619
+
624
620
  throw new Error ("Expected unit conversion factor.");
625
621
  }
626
-
622
+
627
623
  throw new Error ("Expected unit name identificator.");
628
624
  }
629
-
625
+
630
626
  throw new Error ("Expected category name identificator after UNIT statement.");
631
627
  }
632
-
628
+
633
629
  return false;
634
630
  },
635
631
  unitConversionFactor: function ()
@@ -650,7 +646,7 @@ function (Fields,
650
646
  if (this .metakey ())
651
647
  {
652
648
  var metakey = this .value;
653
-
649
+
654
650
  if (this .metavalue ())
655
651
  {
656
652
  var metavalue = this .value;
@@ -658,13 +654,13 @@ function (Fields,
658
654
  this .getScene () .setMetaData (metakey, metavalue);
659
655
  return true;
660
656
  }
661
-
657
+
662
658
  throw new Error ("Expected metadata value.");
663
659
  }
664
-
660
+
665
661
  throw new Error ("Expected metadata key.");
666
662
  }
667
-
663
+
668
664
  return false;
669
665
  },
670
666
  metakey: function ()
@@ -686,11 +682,11 @@ function (Fields,
686
682
  var
687
683
  localNodeNameId = this .result [1],
688
684
  exportedNodeNameId = "";
689
-
685
+
690
686
  this .comments ();
691
-
687
+
692
688
  var node = this .getScene () .getLocalNode (localNodeNameId);
693
-
689
+
694
690
  if (Grammar .AS .parse (this))
695
691
  {
696
692
  if (this .exportedNodeNameId ())
@@ -700,14 +696,14 @@ function (Fields,
700
696
  }
701
697
  else
702
698
  exportedNodeNameId = localNodeNameId;
703
-
699
+
704
700
  this .getScene () .updateExportedNode (exportedNodeNameId, node);
705
701
  return true;
706
702
  }
707
-
703
+
708
704
  throw new Error ("No name given after EXPORT.");
709
705
  }
710
-
706
+
711
707
  return false;
712
708
  },
713
709
  importStatement: function ()
@@ -721,9 +717,9 @@ function (Fields,
721
717
  var
722
718
  inlineNodeNameId = this .result [1],
723
719
  namedNode = this .getExecutionContext () .getNamedNode (inlineNodeNameId);
724
-
720
+
725
721
  this .comments ();
726
-
722
+
727
723
  if (Grammar .Period .parse (this))
728
724
  {
729
725
  if (this .exportedNodeNameId ())
@@ -731,9 +727,9 @@ function (Fields,
731
727
  var
732
728
  exportedNodeNameId = this .result [1],
733
729
  nodeNameId = exportedNodeNameId;
734
-
730
+
735
731
  this .comments ();
736
-
732
+
737
733
  if (Grammar .AS .parse (this))
738
734
  {
739
735
  if (this .nodeNameId ())
@@ -742,17 +738,17 @@ function (Fields,
742
738
  else
743
739
  throw new Error ("No name given after AS.");
744
740
  }
745
-
741
+
746
742
  this .getExecutionContext () .updateImportedNode (namedNode, exportedNodeNameId, nodeNameId);
747
743
  return true;
748
744
  }
749
-
745
+
750
746
  throw new Error ("Expected exported node name.");
751
747
  }
752
-
748
+
753
749
  throw new Error ("Expected a '.' after exported node name.");
754
750
  }
755
-
751
+
756
752
  throw new Error ("No name given after IMPORT statement.");
757
753
  }
758
754
  return false;
@@ -766,13 +762,13 @@ function (Fields,
766
762
  {
767
763
  if (this .protoStatement ())
768
764
  return true;
769
-
765
+
770
766
  if (this .routeStatement ())
771
767
  return true;
772
-
768
+
773
769
  if (this .importStatement ())
774
770
  return true;
775
-
771
+
776
772
  if (this .exportStatement ())
777
773
  return true;
778
774
 
@@ -815,10 +811,10 @@ function (Fields,
815
811
  {
816
812
  if (this .proto ())
817
813
  return true;
818
-
814
+
819
815
  if (this .externproto ())
820
816
  return true;
821
-
817
+
822
818
  return false;
823
819
  },
824
820
  protoStatements: function ()
@@ -829,25 +825,25 @@ function (Fields,
829
825
  proto: function ()
830
826
  {
831
827
  this .comments ();
832
-
828
+
833
829
  if (Grammar .PROTO .parse (this))
834
830
  {
835
831
  if (this .nodeTypeId ())
836
832
  {
837
833
  var nodeTypeId = this .result [1];
838
-
834
+
839
835
  this .comments ();
840
-
836
+
841
837
  if (Grammar .OpenBracket .parse (this))
842
838
  {
843
839
  var interfaceDeclarations = this .interfaceDeclarations ();
844
-
840
+
845
841
  this .comments ();
846
-
842
+
847
843
  if (Grammar .CloseBracket .parse (this))
848
844
  {
849
845
  this .comments ();
850
-
846
+
851
847
  if (Grammar .OpenBrace .parse (this))
852
848
  {
853
849
  var proto = new X3DProtoDeclaration (this .getExecutionContext ());
@@ -859,14 +855,16 @@ function (Fields,
859
855
  proto .addUserDefinedField (field .getAccessType (), field .getName (), field);
860
856
  }
861
857
 
862
- this .pushExecutionContext (proto);
863
-
858
+ this .pushPrototype (proto);
859
+ this .pushExecutionContext (proto .getBody ());
860
+
864
861
  this .protoBody ();
865
-
862
+
866
863
  this .popExecutionContext ();
867
-
864
+ this .popPrototype ();
865
+
868
866
  this .comments ();
869
-
867
+
870
868
  if (Grammar .CloseBrace .parse (this))
871
869
  {
872
870
  proto .setName (nodeTypeId);
@@ -875,7 +873,7 @@ function (Fields,
875
873
  this .getExecutionContext () .protos .add (nodeTypeId, proto);
876
874
  return true;
877
875
  }
878
-
876
+
879
877
  throw new Error ("Expected a '}' at the end of PROTO body.");
880
878
  }
881
879
 
@@ -907,7 +905,7 @@ function (Fields,
907
905
  rootNodeStatement: function ()
908
906
  {
909
907
  this .comments ();
910
-
908
+
911
909
  if (Grammar .DEF .parse (this))
912
910
  {
913
911
  if (this .nodeNameId ())
@@ -921,7 +919,7 @@ function (Fields,
921
919
 
922
920
  throw new Error ("Expected node type name after DEF.");
923
921
  }
924
-
922
+
925
923
  throw new Error ("No name given after DEF.");
926
924
  }
927
925
 
@@ -950,38 +948,38 @@ function (Fields,
950
948
  restrictedInterfaceDeclaration: function ()
951
949
  {
952
950
  this .comments ();
953
-
951
+
954
952
  if (Grammar .inputOnly .parse (this) || Grammar .eventIn .parse (this))
955
953
  {
956
954
  if (this .fieldType ())
957
955
  {
958
956
  var fieldType = this .result [1];
959
-
957
+
960
958
  if (this .inputOnlyId ())
961
959
  {
962
960
  var
963
961
  fieldId = this .result [1],
964
962
  field = new (this [fieldType] .constructor) ();
965
-
963
+
966
964
  field .setAccessType (X3DConstants .inputOnly);
967
965
  field .setName (fieldId);
968
966
  return field;
969
967
  }
970
-
968
+
971
969
  throw new Error ("Expected a name for field.");
972
970
  }
973
971
 
974
972
  this .Id ()
975
-
973
+
976
974
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
977
975
  }
978
-
976
+
979
977
  if (Grammar .outputOnly .parse (this) || Grammar .eventOut .parse (this))
980
978
  {
981
979
  if (this .fieldType ())
982
980
  {
983
981
  var fieldType = this .result [1];
984
-
982
+
985
983
  if (this .outputOnlyId ())
986
984
  {
987
985
  var
@@ -992,83 +990,83 @@ function (Fields,
992
990
  field .setName (fieldId);
993
991
  return field;
994
992
  }
995
-
993
+
996
994
  throw new Error ("Expected a name for field.");
997
995
  }
998
-
996
+
999
997
  this .Id ()
1000
-
998
+
1001
999
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1002
1000
  }
1003
-
1001
+
1004
1002
  if (Grammar .initializeOnly .parse (this) || Grammar .field .parse (this))
1005
1003
  {
1006
1004
  if (this .fieldType ())
1007
1005
  {
1008
1006
  var fieldType = this .result [1];
1009
-
1007
+
1010
1008
  if (this .initializeOnlyId ())
1011
1009
  {
1012
1010
  var
1013
1011
  fieldId = this .result [1],
1014
1012
  field = new (this [fieldType] .constructor) ();
1015
-
1013
+
1016
1014
  if (this .fieldValue (field))
1017
1015
  {
1018
1016
  field .setAccessType (X3DConstants .initializeOnly);
1019
1017
  field .setName (fieldId);
1020
1018
  return field;
1021
1019
  }
1022
-
1020
+
1023
1021
  throw new Error ("Couldn't read value for field '" + fieldId + "'.");
1024
1022
  }
1025
-
1023
+
1026
1024
  throw new Error ("Expected a name for field.");
1027
1025
  }
1028
-
1026
+
1029
1027
  this .Id ()
1030
-
1028
+
1031
1029
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1032
1030
  }
1033
-
1031
+
1034
1032
  return null;
1035
1033
  },
1036
1034
  interfaceDeclaration: function ()
1037
1035
  {
1038
1036
  var field = this .restrictedInterfaceDeclaration ();
1039
-
1037
+
1040
1038
  if (field)
1041
1039
  return field;
1042
1040
 
1043
1041
  this .comments ();
1044
-
1042
+
1045
1043
  if (Grammar .inputOutput .parse (this) || Grammar .exposedField .parse (this))
1046
1044
  {
1047
1045
  if (this .fieldType ())
1048
1046
  {
1049
1047
  var fieldType = this .result [1];
1050
-
1048
+
1051
1049
  if (this .inputOutputId ())
1052
1050
  {
1053
1051
  var
1054
1052
  fieldId = this .result [1],
1055
1053
  field = new (this [fieldType] .constructor) ();
1056
-
1054
+
1057
1055
  if (this .fieldValue (field))
1058
1056
  {
1059
1057
  field .setAccessType (X3DConstants .inputOutput);
1060
1058
  field .setName (fieldId);
1061
1059
  return field;
1062
1060
  }
1063
-
1061
+
1064
1062
  throw new Error ("Couldn't read value for field '" + fieldId + "'.");
1065
1063
  }
1066
-
1064
+
1067
1065
  throw new Error ("Expected a name for field.");
1068
1066
  }
1069
-
1067
+
1070
1068
  this .Id ();
1071
-
1069
+
1072
1070
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1073
1071
  }
1074
1072
 
@@ -1077,21 +1075,21 @@ function (Fields,
1077
1075
  externproto: function ()
1078
1076
  {
1079
1077
  this .comments ();
1080
-
1078
+
1081
1079
  if (Grammar .EXTERNPROTO .parse (this))
1082
1080
  {
1083
1081
  if (this .nodeTypeId ())
1084
1082
  {
1085
1083
  var nodeTypeId = this .result [1];
1086
-
1084
+
1087
1085
  this .comments ();
1088
-
1086
+
1089
1087
  if (Grammar .OpenBracket .parse (this))
1090
1088
  {
1091
1089
  var externInterfaceDeclarations = this .externInterfaceDeclarations ();
1092
-
1090
+
1093
1091
  this .comments ();
1094
-
1092
+
1095
1093
  if (Grammar .CloseBracket .parse (this))
1096
1094
  {
1097
1095
  if (this .URLList (this .MFString))
@@ -1104,27 +1102,27 @@ function (Fields,
1104
1102
 
1105
1103
  externproto .addUserDefinedField (field .getAccessType (), field .getName (), field);
1106
1104
  }
1107
-
1105
+
1108
1106
  externproto .setName (nodeTypeId);
1109
1107
  externproto .url_ = this .MFString;
1110
1108
  externproto .setup ();
1111
1109
 
1112
- this .getExecutionContext () .externprotos .add (nodeTypeId, externproto);
1110
+ this .getExecutionContext () .externprotos .add (nodeTypeId, externproto);
1113
1111
  return true;
1114
1112
  }
1115
-
1113
+
1116
1114
  throw new Error ("Expected a URL list after EXTERNPROTO interface declaration '" + nodeTypeId + "'.");
1117
1115
  }
1118
-
1116
+
1119
1117
  throw new Error ("Expected a ']' at the end of EXTERNPROTO interface declaration.");
1120
1118
  }
1121
-
1119
+
1122
1120
  throw new Error ("Expected a '[' at the beginning of EXTERNPROTO interface declaration.");
1123
1121
  }
1124
-
1122
+
1125
1123
  throw new Error ("Invalid EXTERNPROTO definition name.");
1126
1124
  }
1127
-
1125
+
1128
1126
  return false;
1129
1127
  },
1130
1128
  externInterfaceDeclarations: function ()
@@ -1136,7 +1134,7 @@ function (Fields,
1136
1134
  while (field)
1137
1135
  {
1138
1136
  externInterfaceDeclarations .push (field);
1139
-
1137
+
1140
1138
  field = this .externInterfaceDeclaration ();
1141
1139
  }
1142
1140
 
@@ -1145,38 +1143,38 @@ function (Fields,
1145
1143
  externInterfaceDeclaration: function ()
1146
1144
  {
1147
1145
  this .comments ();
1148
-
1146
+
1149
1147
  if (Grammar .inputOnly .parse (this) || Grammar .eventIn .parse (this))
1150
1148
  {
1151
1149
  if (this .fieldType ())
1152
1150
  {
1153
1151
  var fieldType = this .result [1];
1154
-
1152
+
1155
1153
  if (this .inputOnlyId ())
1156
1154
  {
1157
1155
  var
1158
1156
  fieldId = this .result [1],
1159
1157
  field = new (this [fieldType] .constructor) ();
1160
-
1158
+
1161
1159
  field .setAccessType (X3DConstants .inputOnly);
1162
1160
  field .setName (fieldId);
1163
1161
  return field;
1164
1162
  }
1165
-
1163
+
1166
1164
  throw new Error ("Expected a name for field.");
1167
1165
  }
1168
1166
 
1169
1167
  this .Id ()
1170
-
1168
+
1171
1169
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1172
1170
  }
1173
-
1171
+
1174
1172
  if (Grammar .outputOnly .parse (this) || Grammar .eventOut .parse (this))
1175
1173
  {
1176
1174
  if (this .fieldType ())
1177
1175
  {
1178
1176
  var fieldType = this .result [1];
1179
-
1177
+
1180
1178
  if (this .outputOnlyId ())
1181
1179
  {
1182
1180
  var
@@ -1187,62 +1185,62 @@ function (Fields,
1187
1185
  field .setName (fieldId);
1188
1186
  return field;
1189
1187
  }
1190
-
1188
+
1191
1189
  throw new Error ("Expected a name for field.");
1192
1190
  }
1193
-
1191
+
1194
1192
  this .Id ()
1195
-
1193
+
1196
1194
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1197
1195
  }
1198
-
1196
+
1199
1197
  if (Grammar .initializeOnly .parse (this) || Grammar .field .parse (this))
1200
1198
  {
1201
1199
  if (this .fieldType ())
1202
1200
  {
1203
1201
  var fieldType = this .result [1];
1204
-
1202
+
1205
1203
  if (this .initializeOnlyId ())
1206
1204
  {
1207
1205
  var
1208
1206
  fieldId = this .result [1],
1209
1207
  field = new (this [fieldType] .constructor) ();
1210
-
1208
+
1211
1209
  field .setAccessType (X3DConstants .initializeOnly);
1212
1210
  field .setName (fieldId);
1213
1211
  return field;
1214
1212
  }
1215
-
1213
+
1216
1214
  throw new Error ("Expected a name for field.");
1217
1215
  }
1218
-
1216
+
1219
1217
  this .Id ()
1220
-
1218
+
1221
1219
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1222
1220
  }
1223
-
1221
+
1224
1222
  if (Grammar .inputOutput .parse (this) || Grammar .exposedField .parse (this))
1225
1223
  {
1226
1224
  if (this .fieldType ())
1227
1225
  {
1228
1226
  var fieldType = this .result [1];
1229
-
1227
+
1230
1228
  if (this .inputOutputId ())
1231
1229
  {
1232
1230
  var
1233
1231
  fieldId = this .result [1],
1234
1232
  field = new (this [fieldType] .constructor) ();
1235
-
1233
+
1236
1234
  field .setAccessType (X3DConstants .inputOutput);
1237
1235
  field .setName (fieldId);
1238
1236
  return field;
1239
1237
  }
1240
-
1238
+
1241
1239
  throw new Error ("Expected a name for field.");
1242
1240
  }
1243
-
1241
+
1244
1242
  this .Id ()
1245
-
1243
+
1246
1244
  throw new Error ("Unknown event or field type: '" + this .result [1] + "'.");
1247
1245
  }
1248
1246
 
@@ -1255,7 +1253,7 @@ function (Fields,
1255
1253
  routeStatement: function ()
1256
1254
  {
1257
1255
  this .comments ();
1258
-
1256
+
1259
1257
  if (Grammar .ROUTE .parse (this))
1260
1258
  {
1261
1259
  if (this .nodeNameId ())
@@ -1265,15 +1263,15 @@ function (Fields,
1265
1263
  fromNode = this .getExecutionContext () .getLocalNode (fromNodeId);
1266
1264
 
1267
1265
  this .comments ();
1268
-
1266
+
1269
1267
  if (Grammar .Period .parse (this))
1270
1268
  {
1271
1269
  if (this .outputOnlyId ())
1272
1270
  {
1273
1271
  var eventOutId = this .result [1];
1274
-
1272
+
1275
1273
  this .comments ();
1276
-
1274
+
1277
1275
  if (Grammar .TO .parse (this))
1278
1276
  {
1279
1277
  if (this .nodeNameId ())
@@ -1302,52 +1300,46 @@ function (Fields,
1302
1300
  return true;
1303
1301
  }
1304
1302
  }
1305
-
1303
+
1306
1304
  throw new Error ("Bad ROUTE specification: Expected a field name.");
1307
1305
  }
1308
-
1306
+
1309
1307
  throw new Error ("Bad ROUTE specification: Expected a '.' after node name.");
1310
1308
  }
1311
-
1309
+
1312
1310
  throw new Error ("Bad ROUTE specification: Expected a node name.");
1313
1311
  }
1314
-
1312
+
1315
1313
  throw new Error ("Bad ROUTE specification: Expected a 'TO'.");
1316
1314
  }
1317
-
1315
+
1318
1316
  throw new Error ("Bad ROUTE specification: Expected a field name.");
1319
1317
  }
1320
-
1318
+
1321
1319
  throw new Error ("Bad ROUTE specification: Expected a '.' after node name.");
1322
1320
  }
1323
-
1321
+
1324
1322
  throw new Error ("Bad ROUTE specification: Expected a node name.");
1325
1323
  }
1326
-
1324
+
1327
1325
  return false;
1328
1326
  },
1329
1327
  node: function (nodeNameId)
1330
1328
  {
1331
1329
  if (this .nodeTypeId ())
1332
1330
  {
1333
- var nodeTypeId = this .result [1];
1334
-
1335
- try
1336
- {
1337
- var baseNode = this .getExecutionContext () .createNode (nodeTypeId, false);
1338
- }
1339
- catch (error1)
1331
+ var
1332
+ nodeTypeId = this .result [1],
1333
+ baseNode = this .getExecutionContext () .createNode (nodeTypeId, false);
1334
+
1335
+ if (! baseNode)
1340
1336
  {
1341
- try
1342
- {
1343
- var baseNode = this .getExecutionContext () .createProto (nodeTypeId, false);
1344
- }
1345
- catch (error2)
1346
- {
1347
- throw new Error (error1 .message + "\n" + error2 .message);
1348
- }
1337
+ baseNode = this .getExecutionContext () .createProto (nodeTypeId, false);
1338
+
1339
+ if (! baseNode)
1340
+ throw new Error ("Unknown node type or proto '" + nodeTypeId + "', you probably have insufficient component/profile statements.");
1349
1341
  }
1350
-
1342
+
1351
1343
  if (nodeNameId .length)
1352
1344
  {
1353
1345
  try
@@ -1361,31 +1353,33 @@ function (Fields,
1361
1353
 
1362
1354
  this .getExecutionContext () .updateNamedNode (nodeNameId, baseNode);
1363
1355
  }
1364
-
1356
+
1365
1357
  this .comments ();
1366
-
1358
+
1367
1359
  if (Grammar .OpenBrace .parse (this))
1368
1360
  {
1369
1361
  if (baseNode .hasUserDefinedFields ())
1370
1362
  this .scriptBody (baseNode);
1371
-
1363
+
1372
1364
  else
1373
1365
  this .nodeBody (baseNode);
1374
-
1366
+
1375
1367
  this .comments ();
1376
-
1368
+
1377
1369
  if (Grammar .CloseBrace .parse (this))
1378
1370
  {
1379
- this .getExecutionContext () .addUninitializedNode (baseNode);
1371
+ if (! this .isInsideProtoDefinition ())
1372
+ baseNode .setup ();
1373
+
1380
1374
  return baseNode;
1381
1375
  }
1382
-
1376
+
1383
1377
  throw new Error ("Expected '}' at the end of node body.");
1384
1378
  }
1385
-
1379
+
1386
1380
  throw new Error ("Expected '{' at the beginning of node body.");
1387
1381
  }
1388
-
1382
+
1389
1383
  return false;
1390
1384
  },
1391
1385
  scriptBody: function (baseNode)
@@ -1406,19 +1400,19 @@ function (Fields,
1406
1400
  if (this .Id ())
1407
1401
  {
1408
1402
  var accessType = this .accessTypes [this .result [1]];
1409
-
1403
+
1410
1404
  if (accessType)
1411
1405
  {
1412
1406
  if (this .fieldType ())
1413
1407
  {
1414
1408
  var fieldType = this .result [1];
1415
-
1409
+
1416
1410
  if (this .Id ())
1417
1411
  {
1418
1412
  var fieldId = this .result [1];
1419
1413
 
1420
1414
  this .comments ();
1421
-
1415
+
1422
1416
  if (Grammar .IS .parse (this))
1423
1417
  {
1424
1418
  if (this .isInsideProtoDefinition ())
@@ -1426,20 +1420,20 @@ function (Fields,
1426
1420
  if (this .Id ())
1427
1421
  {
1428
1422
  var isId = this .result [1];
1429
-
1423
+
1430
1424
  try
1431
1425
  {
1432
- var reference = this .getExecutionContext () .getField (isId);
1426
+ var reference = this .getPrototype () .getField (isId);
1433
1427
  }
1434
1428
  catch (error)
1435
1429
  {
1436
- this .exception ("No such event or field '" + isId + "' inside PROTO " + this .getExecutionContext () .getName () + " interface declaration.");
1437
-
1430
+ this .exception ("No such event or field '" + isId + "' inside PROTO " + this .getPrototype () .getName () + " interface declaration.");
1431
+
1438
1432
  return true;
1439
1433
  }
1440
-
1434
+
1441
1435
  var supportedField = this [fieldType];
1442
-
1436
+
1443
1437
  if (supportedField .getType () === reference .getType ())
1444
1438
  {
1445
1439
  if (reference .isReference (accessType))
@@ -1447,44 +1441,30 @@ function (Fields,
1447
1441
  try
1448
1442
  {
1449
1443
  var field = baseNode .getField (fieldId);
1450
-
1451
- if (reference .getType () === field .getType ())
1444
+
1445
+ if (! (accessType === field .getAccessType () && reference .getType () === field .getType ()))
1452
1446
  {
1453
- if (accessType === field .getAccessType ())
1454
- ;
1455
- else if (field .getAccessType () === X3DConstants .inputOutput)
1456
- {
1457
- if (accessType !== field .getAccessType ())
1458
- field = this .createUserDefinedField (baseNode, accessType, fieldId, supportedField);
1459
- }
1460
- else
1461
- {
1462
- this .exception ("Field '" + fieldId + "' must have access type " + accessTypeToString (field .getAccessType ()) + ".");
1463
-
1464
- return true;
1465
- }
1466
- }
1467
- else
1468
1447
  field = this .createUserDefinedField (baseNode, accessType, fieldId, supportedField);
1448
+ }
1469
1449
  }
1470
1450
  catch (error)
1471
1451
  {
1472
1452
  var field = this .createUserDefinedField (baseNode, accessType, fieldId, supportedField);
1473
1453
  }
1474
-
1454
+
1475
1455
  field .addReference (reference);
1476
1456
  return true;
1477
1457
  }
1478
-
1479
- throw new Error ("Field '" + fieldId + "' and '" + reference .getName () + "' in PROTO '" + this .getExecutionContext () .getName () + "' are incompatible as an IS mapping.");
1458
+
1459
+ throw new Error ("Field '" + fieldId + "' and '" + reference .getName () + "' in PROTO '" + this .getPrototype () .getName () + "' are incompatible as an IS mapping.");
1480
1460
  }
1481
-
1482
- throw new Error ("Field '" + fieldId + "' and '" + reference .getName () + "' in PROTO '" + this .getExecutionContext () .getName () + "' have different types.");
1461
+
1462
+ throw new Error ("Field '" + fieldId + "' and '" + reference .getName () + "' in PROTO '" + this .getPrototype () .getName () + "' have different types.");
1483
1463
  }
1484
-
1464
+
1485
1465
  throw new Error ("No name give after IS statement.");
1486
1466
  }
1487
-
1467
+
1488
1468
  throw new Error ("IS statement outside PROTO definition.");
1489
1469
  }
1490
1470
  }
@@ -1499,7 +1479,7 @@ function (Fields,
1499
1479
  // this .lineNumber = lineNumber;
1500
1480
 
1501
1481
  var field = this .interfaceDeclaration ();
1502
-
1482
+
1503
1483
  if (field)
1504
1484
  {
1505
1485
  try
@@ -1507,13 +1487,12 @@ function (Fields,
1507
1487
  if (field .getAccessType () === X3DConstants .inputOutput)
1508
1488
  {
1509
1489
  var existingField = baseNode .getField (field .getName ());
1510
-
1490
+
1511
1491
  if (existingField .getAccessType () === X3DConstants .inputOutput)
1512
1492
  {
1513
1493
  if (field .getType () === existingField .getType ())
1514
1494
  {
1515
- existingField .set (field .getValue ());
1516
- existingField .setSet (true);
1495
+ existingField .setValue (field);
1517
1496
  return true;
1518
1497
  }
1519
1498
  }
@@ -1525,7 +1504,7 @@ function (Fields,
1525
1504
  baseNode .addUserDefinedField (field .getAccessType (), field .getName (), field);
1526
1505
  return true;
1527
1506
  }
1528
-
1507
+
1529
1508
  return this .nodeBodyElement (baseNode);
1530
1509
  },
1531
1510
  createUserDefinedField: function (baseNode, accessType, fieldId, supportedField)
@@ -1545,10 +1524,10 @@ function (Fields,
1545
1524
  {
1546
1525
  if (this .protoStatement ())
1547
1526
  return true;
1548
-
1527
+
1549
1528
  if (this .routeStatement ())
1550
1529
  return true;
1551
-
1530
+
1552
1531
  if (this .Id ())
1553
1532
  {
1554
1533
  var fieldId = this .result [1];
@@ -1561,9 +1540,9 @@ function (Fields,
1561
1540
  {
1562
1541
  throw new Error ("Unknown field '" + fieldId + "' in class '" + baseNode .getTypeName () + "'.");
1563
1542
  }
1564
-
1543
+
1565
1544
  this .comments ();
1566
-
1545
+
1567
1546
  if (Grammar .IS .parse (this))
1568
1547
  {
1569
1548
  if (this .isInsideProtoDefinition ())
@@ -1571,18 +1550,18 @@ function (Fields,
1571
1550
  if (this .Id ())
1572
1551
  {
1573
1552
  var isId = this .result [1];
1574
-
1553
+
1575
1554
  try
1576
1555
  {
1577
- var reference = this .getExecutionContext () .getField (isId);
1556
+ var reference = this .getPrototype () .getField (isId);
1578
1557
  }
1579
1558
  catch (error)
1580
1559
  {
1581
- this .exception ("No such event or field '" + isId + "' inside PROTO " + this .getExecutionContext () .getName ());
1582
-
1560
+ this .exception ("No such event or field '" + isId + "' inside PROTO " + this .getPrototype () .getName ());
1561
+
1583
1562
  return true;
1584
1563
  }
1585
-
1564
+
1586
1565
  if (field .getType () === reference .getType ())
1587
1566
  {
1588
1567
  if (reference .isReference (field .getAccessType ()))
@@ -1590,19 +1569,19 @@ function (Fields,
1590
1569
  field .addReference (reference);
1591
1570
  return true;
1592
1571
  }
1593
-
1594
- throw new Error ("Field '" + field .getName () + "' and '" + reference .getName () + "' in PROTO " + this .getExecutionContext () . getName () + " are incompatible as an IS mapping.");
1572
+
1573
+ throw new Error ("Field '" + field .getName () + "' and '" + reference .getName () + "' in PROTO " + this .getPrototype () . getName () + " are incompatible as an IS mapping.");
1595
1574
  }
1596
-
1597
- throw new Error ("Field '" + field .getName () + "' and '" + reference .getName () + "' in PROTO " + this .getExecutionContext () .getName () + " have different types.");
1575
+
1576
+ throw new Error ("Field '" + field .getName () + "' and '" + reference .getName () + "' in PROTO " + this .getPrototype () .getName () + " have different types.");
1598
1577
  }
1599
-
1578
+
1600
1579
  throw new Error("No name give after IS statement.");
1601
1580
  }
1602
-
1581
+
1603
1582
  throw new Error ("IS statement outside PROTO definition.");
1604
1583
  }
1605
-
1584
+
1606
1585
  if (field .isInitializable ())
1607
1586
  {
1608
1587
  if (this .fieldValue (field))
@@ -1610,10 +1589,10 @@ function (Fields,
1610
1589
 
1611
1590
  throw new Error ("Couldn't read value for field '" + fieldId + "'.");
1612
1591
  }
1613
-
1592
+
1614
1593
  throw new Error ("Couldn't assign value to " + accessTypeToString (field .getAccessType ()) + " field '" + fieldId + "'.");
1615
1594
  }
1616
-
1595
+
1617
1596
  return false;
1618
1597
  },
1619
1598
  profileNameId: function () { return this .Id (); },
@@ -1646,14 +1625,12 @@ function (Fields,
1646
1625
  },
1647
1626
  fieldValue: function (field)
1648
1627
  {
1649
- field .setSet (true);
1650
-
1651
1628
  return this .fieldTypes [field .getType ()] .call (this, field);
1652
1629
  },
1653
1630
  double: function ()
1654
1631
  {
1655
1632
  this .comments ();
1656
-
1633
+
1657
1634
  if (Grammar .double .parse (this))
1658
1635
  {
1659
1636
  this .value = parseFloat (this .result [1]);
@@ -1713,13 +1690,13 @@ function (Fields,
1713
1690
 
1714
1691
  if (Grammar .TRUE .parse (this))
1715
1692
  {
1716
- field .set (true);
1693
+ field .setValue (true);
1717
1694
  return true;
1718
1695
  }
1719
1696
 
1720
1697
  if (Grammar .FALSE .parse (this))
1721
1698
  {
1722
- field .set (false);
1699
+ field .setValue (false);
1723
1700
  return true;
1724
1701
  }
1725
1702
 
@@ -1733,7 +1710,7 @@ function (Fields,
1733
1710
  {
1734
1711
  field .push (this .SFBool);
1735
1712
  return true;
1736
- }
1713
+ }
1737
1714
 
1738
1715
  if (Grammar .OpenBracket .parse (this))
1739
1716
  {
@@ -1764,16 +1741,19 @@ function (Fields,
1764
1741
  if (this .double ())
1765
1742
  {
1766
1743
  var r = this .value;
1767
-
1744
+
1768
1745
  if (this .double ())
1769
1746
  {
1770
1747
  var g = this .value;
1771
-
1748
+
1772
1749
  if (this .double ())
1773
1750
  {
1774
1751
  var b = this .value;
1775
1752
 
1776
- field .getValue () .set (r, g, b);
1753
+ field .r = r;
1754
+ field .g = g;
1755
+ field .b = b;
1756
+
1777
1757
  return true;
1778
1758
  }
1779
1759
  }
@@ -1789,7 +1769,7 @@ function (Fields,
1789
1769
  {
1790
1770
  field .push (this .SFColor);
1791
1771
  return true;
1792
- }
1772
+ }
1793
1773
 
1794
1774
  if (Grammar .OpenBracket .parse (this))
1795
1775
  {
@@ -1820,11 +1800,11 @@ function (Fields,
1820
1800
  if (this .double ())
1821
1801
  {
1822
1802
  var r = this .value;
1823
-
1803
+
1824
1804
  if (this .double ())
1825
1805
  {
1826
1806
  var g = this .value;
1827
-
1807
+
1828
1808
  if (this .double ())
1829
1809
  {
1830
1810
  var b = this .value;
@@ -1833,7 +1813,11 @@ function (Fields,
1833
1813
  {
1834
1814
  var a = this .value;
1835
1815
 
1836
- field .getValue () .set (r, g, b, a);
1816
+ field .r = r;
1817
+ field .g = g;
1818
+ field .b = b;
1819
+ field .a = a;
1820
+
1837
1821
  return true;
1838
1822
  }
1839
1823
  }
@@ -1850,7 +1834,7 @@ function (Fields,
1850
1834
  {
1851
1835
  field .push (this .SFColorRGBA);
1852
1836
  return true;
1853
- }
1837
+ }
1854
1838
 
1855
1839
  if (Grammar .OpenBracket .parse (this))
1856
1840
  {
@@ -1880,7 +1864,7 @@ function (Fields,
1880
1864
  {
1881
1865
  if (this .double ())
1882
1866
  {
1883
- field .set (this .fromUnit (field .getUnit (), this .value));
1867
+ field .setValue (this .fromUnit (field .getUnit (), this .value));
1884
1868
  return true;
1885
1869
  }
1886
1870
 
@@ -1896,7 +1880,7 @@ function (Fields,
1896
1880
  {
1897
1881
  field .push (this .SFDouble);
1898
1882
  return true;
1899
- }
1883
+ }
1900
1884
 
1901
1885
  if (Grammar .OpenBracket .parse (this))
1902
1886
  {
@@ -1938,7 +1922,7 @@ function (Fields,
1938
1922
  {
1939
1923
  field .push (this .SFFloat);
1940
1924
  return true;
1941
- }
1925
+ }
1942
1926
 
1943
1927
  if (Grammar .OpenBracket .parse (this))
1944
1928
  {
@@ -1975,7 +1959,7 @@ function (Fields,
1975
1959
  if (this .int32 ())
1976
1960
  {
1977
1961
  var height = this .value;
1978
-
1962
+
1979
1963
  if (this .int32 ())
1980
1964
  {
1981
1965
  var
@@ -2014,7 +1998,7 @@ function (Fields,
2014
1998
  {
2015
1999
  field .push (this .SFImage);
2016
2000
  return true;
2017
- }
2001
+ }
2018
2002
 
2019
2003
  if (Grammar .OpenBracket .parse (this))
2020
2004
  {
@@ -2044,7 +2028,7 @@ function (Fields,
2044
2028
  {
2045
2029
  if (this .int32 ())
2046
2030
  {
2047
- field .set (this .value);
2031
+ field .setValue (this .value);
2048
2032
  return true;
2049
2033
  }
2050
2034
 
@@ -2058,7 +2042,7 @@ function (Fields,
2058
2042
  {
2059
2043
  field .push (this .SFInt32);
2060
2044
  return true;
2061
- }
2045
+ }
2062
2046
 
2063
2047
  if (Grammar .OpenBracket .parse (this))
2064
2048
  {
@@ -2083,17 +2067,17 @@ function (Fields,
2083
2067
  {
2084
2068
  field .push (this .SFInt32);
2085
2069
  }
2086
- },
2070
+ },
2087
2071
  sfmatrix3dValue: function (field)
2088
2072
  {
2089
2073
  if (this .double ())
2090
2074
  {
2091
2075
  var m00 = this .value;
2092
-
2076
+
2093
2077
  if (this .double ())
2094
2078
  {
2095
2079
  var m01 = this .value;
2096
-
2080
+
2097
2081
  if (this .double ())
2098
2082
  {
2099
2083
  var m02 = this .value;
@@ -2101,11 +2085,11 @@ function (Fields,
2101
2085
  if (this .double ())
2102
2086
  {
2103
2087
  var m10 = this .value;
2104
-
2088
+
2105
2089
  if (this .double ())
2106
2090
  {
2107
2091
  var m11 = this .value;
2108
-
2092
+
2109
2093
  if (this .double ())
2110
2094
  {
2111
2095
  var m12 = this .value;
@@ -2113,18 +2097,25 @@ function (Fields,
2113
2097
  if (this .double ())
2114
2098
  {
2115
2099
  var m20 = this .value;
2116
-
2100
+
2117
2101
  if (this .double ())
2118
2102
  {
2119
2103
  var m21 = this .value;
2120
-
2104
+
2121
2105
  if (this .double ())
2122
2106
  {
2123
2107
  var m22 = this .value;
2124
2108
 
2125
- field .getValue () .set (m00, m01, m02,
2126
- m10, m11, m12,
2127
- m20, m21, m22);
2109
+ field [0] = m00;
2110
+ field [1] = m01;
2111
+ field [2] = m02;
2112
+ field [3] = m10;
2113
+ field [4] = m11;
2114
+ field [5] = m12;
2115
+ field [6] = m20;
2116
+ field [7] = m21;
2117
+ field [8] = m22;
2118
+
2128
2119
  return true;
2129
2120
  }
2130
2121
  }
@@ -2134,8 +2125,8 @@ function (Fields,
2134
2125
  }
2135
2126
  }
2136
2127
  }
2137
- }
2138
-
2128
+ }
2129
+
2139
2130
  return false;
2140
2131
  },
2141
2132
  mfmatrix3dValue: function (field)
@@ -2146,7 +2137,7 @@ function (Fields,
2146
2137
  {
2147
2138
  field .push (this .SFMatrix3d);
2148
2139
  return true;
2149
- }
2140
+ }
2150
2141
 
2151
2142
  if (Grammar .OpenBracket .parse (this))
2152
2143
  {
@@ -2184,7 +2175,7 @@ function (Fields,
2184
2175
  {
2185
2176
  field .push (this .SFMatrix3f);
2186
2177
  return true;
2187
- }
2178
+ }
2188
2179
 
2189
2180
  if (Grammar .OpenBracket .parse (this))
2190
2181
  {
@@ -2215,11 +2206,11 @@ function (Fields,
2215
2206
  if (this .double ())
2216
2207
  {
2217
2208
  var m00 = this .value;
2218
-
2209
+
2219
2210
  if (this .double ())
2220
2211
  {
2221
2212
  var m01 = this .value;
2222
-
2213
+
2223
2214
  if (this .double ())
2224
2215
  {
2225
2216
  var m02 = this .value;
@@ -2231,11 +2222,11 @@ function (Fields,
2231
2222
  if (this .double ())
2232
2223
  {
2233
2224
  var m10 = this .value;
2234
-
2225
+
2235
2226
  if (this .double ())
2236
2227
  {
2237
2228
  var m11 = this .value;
2238
-
2229
+
2239
2230
  if (this .double ())
2240
2231
  {
2241
2232
  var m12 = this .value;
@@ -2247,11 +2238,11 @@ function (Fields,
2247
2238
  if (this .double ())
2248
2239
  {
2249
2240
  var m20 = this .value;
2250
-
2241
+
2251
2242
  if (this .double ())
2252
2243
  {
2253
2244
  var m21 = this .value;
2254
-
2245
+
2255
2246
  if (this .double ())
2256
2247
  {
2257
2248
  var m22 = this .value;
@@ -2263,11 +2254,11 @@ function (Fields,
2263
2254
  if (this .double ())
2264
2255
  {
2265
2256
  var m30 = this .value;
2266
-
2257
+
2267
2258
  if (this .double ())
2268
2259
  {
2269
2260
  var m31 = this .value;
2270
-
2261
+
2271
2262
  if (this .double ())
2272
2263
  {
2273
2264
  var m32 = this .value;
@@ -2276,10 +2267,23 @@ function (Fields,
2276
2267
  {
2277
2268
  var m33 = this .value;
2278
2269
 
2279
- field .getValue () .set (m00, m01, m02, m03,
2280
- m10, m11, m12, m13,
2281
- m20, m21, m22, m23,
2282
- m30, m31, m32, m33);
2270
+ field [ 0] = m00;
2271
+ field [ 1] = m01;
2272
+ field [ 2] = m02;
2273
+ field [ 3] = m03;
2274
+ field [ 4] = m10;
2275
+ field [ 5] = m11;
2276
+ field [ 6] = m12;
2277
+ field [ 7] = m13;
2278
+ field [ 8] = m20;
2279
+ field [ 9] = m21;
2280
+ field [10] = m22;
2281
+ field [11] = m23;
2282
+ field [12] = m30;
2283
+ field [13] = m31;
2284
+ field [14] = m32;
2285
+ field [15] = m33;
2286
+
2283
2287
  return true;
2284
2288
  }
2285
2289
  }
@@ -2296,8 +2300,8 @@ function (Fields,
2296
2300
  }
2297
2301
  }
2298
2302
  }
2299
- }
2300
-
2303
+ }
2304
+
2301
2305
  return false;
2302
2306
  },
2303
2307
  mfmatrix4dValue: function (field)
@@ -2308,7 +2312,7 @@ function (Fields,
2308
2312
  {
2309
2313
  field .push (this .SFMatrix4d);
2310
2314
  return true;
2311
- }
2315
+ }
2312
2316
 
2313
2317
  if (Grammar .OpenBracket .parse (this))
2314
2318
  {
@@ -2346,7 +2350,7 @@ function (Fields,
2346
2350
  {
2347
2351
  field .push (this .SFMatrix4f);
2348
2352
  return true;
2349
- }
2353
+ }
2350
2354
 
2351
2355
  if (Grammar .OpenBracket .parse (this))
2352
2356
  {
@@ -2394,7 +2398,7 @@ function (Fields,
2394
2398
  {
2395
2399
  field .push (node);
2396
2400
  return true;
2397
- }
2401
+ }
2398
2402
 
2399
2403
  if (Grammar .OpenBracket .parse (this))
2400
2404
  {
@@ -2413,11 +2417,11 @@ function (Fields,
2413
2417
  nodeStatements: function (field)
2414
2418
  {
2415
2419
  var node = this .nodeStatement ();
2416
-
2420
+
2417
2421
  while (node !== false)
2418
2422
  {
2419
2423
  field .push (node);
2420
-
2424
+
2421
2425
  node = this .nodeStatement ();
2422
2426
  }
2423
2427
  },
@@ -2426,11 +2430,11 @@ function (Fields,
2426
2430
  if (this .double ())
2427
2431
  {
2428
2432
  var x = this .value;
2429
-
2433
+
2430
2434
  if (this .double ())
2431
2435
  {
2432
2436
  var y = this .value;
2433
-
2437
+
2434
2438
  if (this .double ())
2435
2439
  {
2436
2440
  var z = this .value;
@@ -2439,7 +2443,11 @@ function (Fields,
2439
2443
  {
2440
2444
  var angle = this .value;
2441
2445
 
2442
- field .getValue () .set (x, y, z, this .fromUnit ("angle", angle));
2446
+ field .x = x;
2447
+ field .y = y;
2448
+ field .z = z;
2449
+ field .angle = this .fromUnit ("angle", angle);
2450
+
2443
2451
  return true;
2444
2452
  }
2445
2453
  }
@@ -2456,7 +2464,7 @@ function (Fields,
2456
2464
  {
2457
2465
  field .push (this .SFRotation);
2458
2466
  return true;
2459
- }
2467
+ }
2460
2468
 
2461
2469
  if (Grammar .OpenBracket .parse (this))
2462
2470
  {
@@ -2486,7 +2494,7 @@ function (Fields,
2486
2494
  {
2487
2495
  if (this .string ())
2488
2496
  {
2489
- field .set (this .value);
2497
+ field .setValue (this .value);
2490
2498
  return true;
2491
2499
  }
2492
2500
 
@@ -2500,7 +2508,7 @@ function (Fields,
2500
2508
  {
2501
2509
  field .push (this .SFString);
2502
2510
  return true;
2503
- }
2511
+ }
2504
2512
 
2505
2513
  if (Grammar .OpenBracket .parse (this))
2506
2514
  {
@@ -2538,7 +2546,7 @@ function (Fields,
2538
2546
  {
2539
2547
  field .push (this .SFTime);
2540
2548
  return true;
2541
- }
2549
+ }
2542
2550
 
2543
2551
  if (Grammar .OpenBracket .parse (this))
2544
2552
  {
@@ -2569,15 +2577,16 @@ function (Fields,
2569
2577
  if (this .double ())
2570
2578
  {
2571
2579
  var x = this .value;
2572
-
2580
+
2573
2581
  if (this .double ())
2574
2582
  {
2575
2583
  var
2576
2584
  y = this .value,
2577
2585
  category = field .getUnit ();
2578
2586
 
2579
- field .getValue () .set (this .fromUnit (category, x),
2580
- this .fromUnit (category, y));
2587
+ field .x = this .fromUnit (category, x);
2588
+ field .y = this .fromUnit (category, y);
2589
+
2581
2590
  return true;
2582
2591
  }
2583
2592
  }
@@ -2594,7 +2603,7 @@ function (Fields,
2594
2603
  {
2595
2604
  field .push (this .SFVec2d);
2596
2605
  return true;
2597
- }
2606
+ }
2598
2607
 
2599
2608
  if (Grammar .OpenBracket .parse (this))
2600
2609
  {
@@ -2636,7 +2645,7 @@ function (Fields,
2636
2645
  {
2637
2646
  field .push (this .SFVec2f);
2638
2647
  return true;
2639
- }
2648
+ }
2640
2649
 
2641
2650
  if (Grammar .OpenBracket .parse (this))
2642
2651
  {
@@ -2669,20 +2678,21 @@ function (Fields,
2669
2678
  if (this .double ())
2670
2679
  {
2671
2680
  var x = this .value;
2672
-
2681
+
2673
2682
  if (this .double ())
2674
2683
  {
2675
2684
  var y = this .value;
2676
-
2685
+
2677
2686
  if (this .double ())
2678
2687
  {
2679
2688
  var
2680
2689
  z = this .value,
2681
2690
  category = field .getUnit ();
2682
2691
 
2683
- field .getValue () .set (this .fromUnit (category, x),
2684
- this .fromUnit (category, y),
2685
- this .fromUnit (category, z));
2692
+ field .x = this .fromUnit (category, x);
2693
+ field .y = this .fromUnit (category, y);
2694
+ field .z = this .fromUnit (category, z);
2695
+
2686
2696
  return true;
2687
2697
  }
2688
2698
  }
@@ -2700,7 +2710,7 @@ function (Fields,
2700
2710
  {
2701
2711
  field .push (this .SFVec3d);
2702
2712
  return true;
2703
- }
2713
+ }
2704
2714
 
2705
2715
  if (Grammar .OpenBracket .parse (this))
2706
2716
  {
@@ -2742,7 +2752,7 @@ function (Fields,
2742
2752
  {
2743
2753
  field .push (this .SFVec3f);
2744
2754
  return true;
2745
- }
2755
+ }
2746
2756
 
2747
2757
  if (Grammar .OpenBracket .parse (this))
2748
2758
  {
@@ -2775,11 +2785,11 @@ function (Fields,
2775
2785
  if (this .double ())
2776
2786
  {
2777
2787
  var x = this .value;
2778
-
2788
+
2779
2789
  if (this .double ())
2780
2790
  {
2781
2791
  var y = this .value;
2782
-
2792
+
2783
2793
  if (this .double ())
2784
2794
  {
2785
2795
  var z = this .value;
@@ -2790,10 +2800,11 @@ function (Fields,
2790
2800
  w = this .value,
2791
2801
  category = field .getUnit ();
2792
2802
 
2793
- field .getValue () .set (this .fromUnit (category, x),
2794
- this .fromUnit (category, y),
2795
- this .fromUnit (category, z),
2796
- this .fromUnit (category, w));
2803
+ field .x = this .fromUnit (category, x);
2804
+ field .y = this .fromUnit (category, y);
2805
+ field .z = this .fromUnit (category, z);
2806
+ field .w = this .fromUnit (category, w);
2807
+
2797
2808
  return true;
2798
2809
  }
2799
2810
  }
@@ -2812,7 +2823,7 @@ function (Fields,
2812
2823
  {
2813
2824
  field .push (this .SFVec4d);
2814
2825
  return true;
2815
- }
2826
+ }
2816
2827
 
2817
2828
  if (Grammar .OpenBracket .parse (this))
2818
2829
  {
@@ -2854,7 +2865,7 @@ function (Fields,
2854
2865
  {
2855
2866
  field .push (this .SFVec4f);
2856
2867
  return true;
2857
- }
2868
+ }
2858
2869
 
2859
2870
  if (Grammar .OpenBracket .parse (this))
2860
2871
  {
@@ -2892,8 +2903,8 @@ function (Fields,
2892
2903
  Parser .prototype .fieldTypes [X3DConstants .SFFloat] = Parser .prototype .sffloatValue;
2893
2904
  Parser .prototype .fieldTypes [X3DConstants .SFImage] = Parser .prototype .sfimageValue;
2894
2905
  Parser .prototype .fieldTypes [X3DConstants .SFInt32] = Parser .prototype .sfint32Value;
2895
- Parser .prototype .fieldTypes [X3DConstants .SFMatrix3f] = Parser .prototype .sfmatrix4dValue;
2896
- Parser .prototype .fieldTypes [X3DConstants .SFMatrix3d] = Parser .prototype .sfmatrix4fValue;
2906
+ Parser .prototype .fieldTypes [X3DConstants .SFMatrix3f] = Parser .prototype .sfmatrix3dValue;
2907
+ Parser .prototype .fieldTypes [X3DConstants .SFMatrix3d] = Parser .prototype .sfmatrix3fValue;
2897
2908
  Parser .prototype .fieldTypes [X3DConstants .SFMatrix4f] = Parser .prototype .sfmatrix4dValue;
2898
2909
  Parser .prototype .fieldTypes [X3DConstants .SFMatrix4d] = Parser .prototype .sfmatrix4fValue;
2899
2910
  Parser .prototype .fieldTypes [X3DConstants .SFNode] = Parser .prototype .sfnodeValue;