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
@@ -0,0 +1,1222 @@
1
+ (function (globalModule, globalRequire)
2
+ {
3
+
4
+ if (typeof __filename === "undefined")
5
+ {
6
+ globalModule = undefined;
7
+ globalRequire = undefined;
8
+ }
9
+
10
+ // Undefine global variables.
11
+ var module = { }, exports, process;
12
+
13
+ const
14
+ define = X3D .define,
15
+ require = X3D .require;
16
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
17
+ *******************************************************************************
18
+ *
19
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
20
+ *
21
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
22
+ *
23
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
24
+ *
25
+ * The copyright notice above does not evidence any actual of intended
26
+ * publication of such source code, and is an unpublished work by create3000.
27
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
28
+ * create3000.
29
+ *
30
+ * No permission is granted to copy, distribute, or create derivative works from
31
+ * the contents of this software, in whole or in part, without the prior written
32
+ * permission of create3000.
33
+ *
34
+ * NON-MILITARY USE ONLY
35
+ *
36
+ * All create3000 software are effectively free software with a non-military use
37
+ * restriction. It is free. Well commented source is provided. You may reuse the
38
+ * source in any way you please with the exception anything that uses it must be
39
+ * marked to indicate is contains 'non-military use only' components.
40
+ *
41
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
42
+ *
43
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
44
+ *
45
+ * This file is part of the X_ITE Project.
46
+ *
47
+ * X_ITE is free software: you can redistribute it and/or modify it under the
48
+ * terms of the GNU General Public License version 3 only, as published by the
49
+ * Free Software Foundation.
50
+ *
51
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
52
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
53
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
54
+ * details (a copy is included in the LICENSE file that accompanied this code).
55
+ *
56
+ * You should have received a copy of the GNU General Public License version 3
57
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
58
+ * copy of the GPLv3 License.
59
+ *
60
+ * For Silvio, Joy and Adi.
61
+ *
62
+ ******************************************************************************/
63
+
64
+
65
+ define ('x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode',[
66
+ "x_ite/Components/Texturing/X3DSingleTextureNode",
67
+ "x_ite/Bits/X3DConstants",
68
+ ],
69
+ function (X3DSingleTextureNode,
70
+ X3DConstants)
71
+ {
72
+ "use strict";
73
+
74
+ function X3DEnvironmentTextureNode (executionContext)
75
+ {
76
+ X3DSingleTextureNode .call (this, executionContext);
77
+
78
+ this .addType (X3DConstants .X3DEnvironmentTextureNode);
79
+
80
+ const gl = this .getBrowser () .getContext ();
81
+
82
+ this .target = gl .TEXTURE_CUBE_MAP;
83
+
84
+ this .targets = [
85
+ gl .TEXTURE_CUBE_MAP_POSITIVE_Z, // Front
86
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_Z, // Back
87
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_X, // Left
88
+ gl .TEXTURE_CUBE_MAP_POSITIVE_X, // Right
89
+ gl .TEXTURE_CUBE_MAP_POSITIVE_Y, // Top
90
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_Y, // Bottom
91
+ ];
92
+ }
93
+
94
+ X3DEnvironmentTextureNode .prototype = Object .assign (Object .create (X3DSingleTextureNode .prototype),
95
+ {
96
+ constructor: X3DEnvironmentTextureNode,
97
+ getTarget: function ()
98
+ {
99
+ return this .target;
100
+ },
101
+ getTargets: function ()
102
+ {
103
+ return this .targets;
104
+ },
105
+ clearTexture: (function ()
106
+ {
107
+ var defaultData = new Uint8Array ([ 255, 255, 255, 255 ]);
108
+
109
+ return function ()
110
+ {
111
+ var
112
+ gl = this .getBrowser () .getContext (),
113
+ targets = this .getTargets ();
114
+
115
+ gl .bindTexture (this .getTarget (), this .getTexture ());
116
+
117
+ for (var i = 0, length = targets .length; i < length; ++ i)
118
+ gl .texImage2D (targets [i], 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
119
+ };
120
+ })(),
121
+ updateTextureProperties: function ()
122
+ {
123
+ X3DSingleTextureNode .prototype .updateTextureProperties .call (this,
124
+ this .target,
125
+ this .textureProperties_ .getValue (),
126
+ this .texturePropertiesNode,
127
+ 128,
128
+ 128,
129
+ false,
130
+ false,
131
+ false);
132
+ },
133
+ setShaderUniformsToChannel: function (gl, shaderObject, renderObject, i)
134
+ {
135
+ gl .activeTexture (gl .TEXTURE0 + shaderObject .getBrowser () .getCubeMapTextureUnits () [i]);
136
+ gl .bindTexture (gl .TEXTURE_CUBE_MAP, this .getTexture ());
137
+ gl .uniform1i (shaderObject .x3d_TextureType [i], 4);
138
+ },
139
+ });
140
+
141
+ return X3DEnvironmentTextureNode;
142
+ });
143
+
144
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
145
+ *******************************************************************************
146
+ *
147
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
148
+ *
149
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
150
+ *
151
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
152
+ *
153
+ * The copyright notice above does not evidence any actual of intended
154
+ * publication of such source code, and is an unpublished work by create3000.
155
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
156
+ * create3000.
157
+ *
158
+ * No permission is granted to copy, distribute, or create derivative works from
159
+ * the contents of this software, in whole or in part, without the prior written
160
+ * permission of create3000.
161
+ *
162
+ * NON-MILITARY USE ONLY
163
+ *
164
+ * All create3000 software are effectively free software with a non-military use
165
+ * restriction. It is free. Well commented source is provided. You may reuse the
166
+ * source in any way you please with the exception anything that uses it must be
167
+ * marked to indicate is contains 'non-military use only' components.
168
+ *
169
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
170
+ *
171
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
172
+ *
173
+ * This file is part of the X_ITE Project.
174
+ *
175
+ * X_ITE is free software: you can redistribute it and/or modify it under the
176
+ * terms of the GNU General Public License version 3 only, as published by the
177
+ * Free Software Foundation.
178
+ *
179
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
180
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
181
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
182
+ * details (a copy is included in the LICENSE file that accompanied this code).
183
+ *
184
+ * You should have received a copy of the GNU General Public License version 3
185
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
186
+ * copy of the GPLv3 License.
187
+ *
188
+ * For Silvio, Joy and Adi.
189
+ *
190
+ ******************************************************************************/
191
+
192
+
193
+ define ('x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture',[
194
+ "x_ite/Fields",
195
+ "x_ite/Basic/X3DFieldDefinition",
196
+ "x_ite/Basic/FieldDefinitionArray",
197
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
198
+ "x_ite/Bits/X3DCast",
199
+ "x_ite/Bits/X3DConstants",
200
+ ],
201
+ function (Fields,
202
+ X3DFieldDefinition,
203
+ FieldDefinitionArray,
204
+ X3DEnvironmentTextureNode,
205
+ X3DCast,
206
+ X3DConstants)
207
+ {
208
+ "use strict";
209
+
210
+ function ComposedCubeMapTexture (executionContext)
211
+ {
212
+ X3DEnvironmentTextureNode .call (this, executionContext);
213
+
214
+ this .addType (X3DConstants .ComposedCubeMapTexture);
215
+
216
+ this .addAlias ("front", this .frontTexture_);
217
+ this .addAlias ("back", this .backTexture_);
218
+ this .addAlias ("left", this .leftTexture_);
219
+ this .addAlias ("right", this .rightTexture_);
220
+ this .addAlias ("bottom", this .bottomTexture_);
221
+ this .addAlias ("top", this .topTexture_);
222
+
223
+ this .textures = [null, null, null, null, null, null];
224
+ this .loadStates = 0;
225
+ }
226
+
227
+ ComposedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
228
+ {
229
+ constructor: ComposedCubeMapTexture,
230
+ fieldDefinitions: new FieldDefinitionArray ([
231
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
232
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
233
+ new X3DFieldDefinition (X3DConstants .inputOutput, "frontTexture", new Fields .SFNode ()),
234
+ new X3DFieldDefinition (X3DConstants .inputOutput, "backTexture", new Fields .SFNode ()),
235
+ new X3DFieldDefinition (X3DConstants .inputOutput, "leftTexture", new Fields .SFNode ()),
236
+ new X3DFieldDefinition (X3DConstants .inputOutput, "rightTexture", new Fields .SFNode ()),
237
+ new X3DFieldDefinition (X3DConstants .inputOutput, "bottomTexture", new Fields .SFNode ()),
238
+ new X3DFieldDefinition (X3DConstants .inputOutput, "topTexture", new Fields .SFNode ()),
239
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
240
+ ]),
241
+ getTypeName: function ()
242
+ {
243
+ return "ComposedCubeMapTexture";
244
+ },
245
+ getComponentName: function ()
246
+ {
247
+ return "CubeMapTexturing";
248
+ },
249
+ getContainerField: function ()
250
+ {
251
+ return "texture";
252
+ },
253
+ initialize: function ()
254
+ {
255
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
256
+
257
+ // Upload default data.
258
+
259
+ this .clearTexture ();
260
+
261
+ // Initialize.
262
+
263
+ this .frontTexture_ .addInterest ("set_texture__", this, 0);
264
+ this .backTexture_ .addInterest ("set_texture__", this, 1);
265
+ this .leftTexture_ .addInterest ("set_texture__", this, 2);
266
+ this .rightTexture_ .addInterest ("set_texture__", this, 3);
267
+ this .topTexture_ .addInterest ("set_texture__", this, 5);
268
+ this .bottomTexture_ .addInterest ("set_texture__", this, 4);
269
+
270
+ this .set_texture__ (this .frontTexture_, 0);
271
+ this .set_texture__ (this .backTexture_, 1);
272
+ this .set_texture__ (this .leftTexture_, 2);
273
+ this .set_texture__ (this .rightTexture_, 3);
274
+ this .set_texture__ (this .topTexture_, 4);
275
+ this .set_texture__ (this .bottomTexture_, 5);
276
+ },
277
+ set_texture__: function (node, index)
278
+ {
279
+ var texture = this .textures [index];
280
+
281
+ if (texture)
282
+ {
283
+ var callbackName = "set_loadState__" + texture .getId () + "_" + index;
284
+
285
+ texture .removeInterest ("set_loadState__", this);
286
+ texture .loadState_ .removeFieldCallback (callbackName);
287
+ }
288
+
289
+ var texture = this .textures [index] = X3DCast (X3DConstants .X3DTexture2DNode, node);
290
+
291
+ if (texture)
292
+ {
293
+ var callbackName = "set_loadState__" + texture .getId () + "_" + index;
294
+
295
+ texture .addInterest ("set_loadState__", this, texture, index);
296
+ texture .loadState_ .addFieldCallback (callbackName, this .set_loadState__ .bind (this, null, texture, index));
297
+ }
298
+
299
+ this .set_loadState__ (null, texture, index);
300
+ },
301
+ set_loadState__: function (output, texture, index)
302
+ {
303
+ if (texture)
304
+ this .setLoadStateBit (texture .checkLoadState (), texture .getData (), index);
305
+ else
306
+ this .setLoadStateBit (X3DConstants .NOT_STARTED, null, index);
307
+
308
+ this .setTextures ();
309
+ },
310
+ setLoadStateBit: function (loadState, data, bit)
311
+ {
312
+ if (loadState === X3DConstants .COMPLETE_STATE || data)
313
+ this .loadStates |= 1 << bit;
314
+ else
315
+ this .loadStates &= ~(1 << bit);
316
+ },
317
+ isComplete: function ()
318
+ {
319
+ if (this .loadStates !== 0x3f) // 0b111111
320
+ return false;
321
+
322
+ var
323
+ textures = this .textures,
324
+ size = textures [0] .getWidth ();
325
+
326
+ for (var i = 0; i < 6; ++ i)
327
+ {
328
+ var texture = textures [i];
329
+
330
+ if (texture .getWidth () !== size)
331
+ return false;
332
+
333
+ if (texture .getHeight () !== size)
334
+ return false;
335
+ }
336
+
337
+ return true;
338
+ },
339
+ setTextures: function ()
340
+ {
341
+ var gl = this .getBrowser () .getContext ();
342
+
343
+ gl .bindTexture (this .getTarget (), this .getTexture ());
344
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
345
+
346
+ if (this .isComplete ())
347
+ {
348
+ var textures = this .textures;
349
+
350
+ for (var i = 0; i < 6; ++ i)
351
+ {
352
+ var
353
+ gl = this .getBrowser () .getContext (),
354
+ texture = textures [i],
355
+ width = texture .getWidth (),
356
+ height = texture .getHeight (),
357
+ data = texture .getData ();
358
+
359
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, !texture .getFlipY ());
360
+ gl .pixelStorei (gl .UNPACK_ALIGNMENT, 1);
361
+
362
+ if (data instanceof Uint8Array)
363
+ {
364
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width, height, false, gl .RGBA, gl .UNSIGNED_BYTE, data);
365
+ }
366
+ else
367
+ {
368
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, gl .RGBA, gl .UNSIGNED_BYTE, data);
369
+ }
370
+ }
371
+
372
+ this .updateTextureProperties ();
373
+ }
374
+ else
375
+ {
376
+ this .clearTexture ();
377
+ }
378
+
379
+ this .set_transparent__ ();
380
+ },
381
+ set_transparent__: function ()
382
+ {
383
+ var
384
+ textures = this .textures,
385
+ transparent = false;
386
+
387
+ if (this .isComplete ())
388
+ {
389
+ for (var i = 0; i < 6; ++ i)
390
+ {
391
+ if (textures [i] .transparent_ .getValue ())
392
+ {
393
+ transparent = true;
394
+ break;
395
+ }
396
+ }
397
+ }
398
+
399
+ this .setTransparent (transparent);
400
+ },
401
+ });
402
+
403
+ return ComposedCubeMapTexture;
404
+ });
405
+
406
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
407
+ *******************************************************************************
408
+ *
409
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
410
+ *
411
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
412
+ *
413
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
414
+ *
415
+ * The copyright notice above does not evidence any actual of intended
416
+ * publication of such source code, and is an unpublished work by create3000.
417
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
418
+ * create3000.
419
+ *
420
+ * No permission is granted to copy, distribute, or create derivative works from
421
+ * the contents of this software, in whole or in part, without the prior written
422
+ * permission of create3000.
423
+ *
424
+ * NON-MILITARY USE ONLY
425
+ *
426
+ * All create3000 software are effectively free software with a non-military use
427
+ * restriction. It is free. Well commented source is provided. You may reuse the
428
+ * source in any way you please with the exception anything that uses it must be
429
+ * marked to indicate is contains 'non-military use only' components.
430
+ *
431
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
432
+ *
433
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
434
+ *
435
+ * This file is part of the X_ITE Project.
436
+ *
437
+ * X_ITE is free software: you can redistribute it and/or modify it under the
438
+ * terms of the GNU General Public License version 3 only, as published by the
439
+ * Free Software Foundation.
440
+ *
441
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
442
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
443
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
444
+ * details (a copy is included in the LICENSE file that accompanied this code).
445
+ *
446
+ * You should have received a copy of the GNU General Public License version 3
447
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
448
+ * copy of the GPLv3 License.
449
+ *
450
+ * For Silvio, Joy and Adi.
451
+ *
452
+ ******************************************************************************/
453
+
454
+
455
+ define ('x_ite/Rendering/DependentRenderer',[
456
+ "x_ite/Basic/X3DBaseNode",
457
+ "x_ite/Rendering/X3DRenderObject",
458
+ "x_ite/Bits/TraverseType",
459
+ ],
460
+ function (X3DBaseNode,
461
+ X3DRenderObject,
462
+ TraverseType)
463
+ {
464
+ "use strict";
465
+
466
+ function DependentRenderer (executionContext)
467
+ {
468
+ X3DBaseNode .call (this, executionContext);
469
+ X3DRenderObject .call (this, executionContext);
470
+
471
+ this .renderObject = null;
472
+ }
473
+
474
+ DependentRenderer .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
475
+ X3DRenderObject .prototype,
476
+ {
477
+ constructor: DependentRenderer,
478
+ initialize: function ()
479
+ {
480
+ X3DBaseNode .prototype .initialize .call (this);
481
+ X3DRenderObject .prototype .initialize .call (this);
482
+ },
483
+ isIndependent: function ()
484
+ {
485
+ return false;
486
+ },
487
+ setRenderer: function (value)
488
+ {
489
+ this .renderObject = value;
490
+ },
491
+ getBrowser: function ()
492
+ {
493
+ return this .renderObject .getBrowser ();
494
+ },
495
+ getLayer: function ()
496
+ {
497
+ return this .renderObject .getLayer ();
498
+ },
499
+ getBackground: function ()
500
+ {
501
+ return this .renderObject .getBackground ();
502
+ },
503
+ getFog: function ()
504
+ {
505
+ return this .renderObject .getFog ();
506
+ },
507
+ getNavigationInfo: function ()
508
+ {
509
+ return this .renderObject .getNavigationInfo ();
510
+ },
511
+ getViewpoint: function ()
512
+ {
513
+ return this .renderObject .getViewpoint ();
514
+ },
515
+ getLightContainer: function ()
516
+ {
517
+ return this .renderObject .getLights () [this .lightIndex ++];
518
+ },
519
+ render: function (type, callback, group)
520
+ {
521
+ switch (type)
522
+ {
523
+ case TraverseType .COLLISION:
524
+ {
525
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
526
+ break;
527
+ }
528
+ case TraverseType .SHADOW:
529
+ {
530
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
531
+ break;
532
+ }
533
+ case TraverseType .DISPLAY:
534
+ {
535
+ this .lightIndex = 0;
536
+
537
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
538
+
539
+ for (const light of this .renderObject .getLights ())
540
+ light .getModelViewMatrix () .pop ();
541
+
542
+ break;
543
+ }
544
+ }
545
+ },
546
+ });
547
+
548
+ return DependentRenderer;
549
+ });
550
+
551
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
552
+ *******************************************************************************
553
+ *
554
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
555
+ *
556
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
557
+ *
558
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
559
+ *
560
+ * The copyright notice above does not evidence any actual of intended
561
+ * publication of such source code, and is an unpublished work by create3000.
562
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
563
+ * create3000.
564
+ *
565
+ * No permission is granted to copy, distribute, or create derivative works from
566
+ * the contents of this software, in whole or in part, without the prior written
567
+ * permission of create3000.
568
+ *
569
+ * NON-MILITARY USE ONLY
570
+ *
571
+ * All create3000 software are effectively free software with a non-military use
572
+ * restriction. It is free. Well commented source is provided. You may reuse the
573
+ * source in any way you please with the exception anything that uses it must be
574
+ * marked to indicate is contains 'non-military use only' components.
575
+ *
576
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
577
+ *
578
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
579
+ *
580
+ * This file is part of the X_ITE Project.
581
+ *
582
+ * X_ITE is free software: you can redistribute it and/or modify it under the
583
+ * terms of the GNU General Public License version 3 only, as published by the
584
+ * Free Software Foundation.
585
+ *
586
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
587
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
588
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
589
+ * details (a copy is included in the LICENSE file that accompanied this code).
590
+ *
591
+ * You should have received a copy of the GNU General Public License version 3
592
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
593
+ * copy of the GPLv3 License.
594
+ *
595
+ * For Silvio, Joy and Adi.
596
+ *
597
+ ******************************************************************************/
598
+
599
+
600
+ define ('x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture',[
601
+ "x_ite/Fields",
602
+ "x_ite/Basic/X3DFieldDefinition",
603
+ "x_ite/Basic/FieldDefinitionArray",
604
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
605
+ "x_ite/Rendering/DependentRenderer",
606
+ "x_ite/Rendering/TextureBuffer",
607
+ "x_ite/Bits/X3DConstants",
608
+ "x_ite/Bits/TraverseType",
609
+ "standard/Math/Geometry/Camera",
610
+ "standard/Math/Geometry/ViewVolume",
611
+ "standard/Math/Numbers/Rotation4",
612
+ "standard/Math/Numbers/Vector3",
613
+ "standard/Math/Numbers/Vector4",
614
+ "standard/Math/Numbers/Matrix4",
615
+ "standard/Math/Algorithm",
616
+ ],
617
+ function (Fields,
618
+ X3DFieldDefinition,
619
+ FieldDefinitionArray,
620
+ X3DEnvironmentTextureNode,
621
+ DependentRenderer,
622
+ TextureBuffer,
623
+ X3DConstants,
624
+ TraverseType,
625
+ Camera,
626
+ ViewVolume,
627
+ Rotation4,
628
+ Vector3,
629
+ Vector4,
630
+ Matrix4,
631
+ Algorithm)
632
+ {
633
+ "use strict";
634
+
635
+ // Rotations to negated normals of the texture cube.
636
+
637
+ var rotations = [
638
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 0, -1)), // front
639
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 0, 1)), // back
640
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 1, 0, 0)), // left
641
+ new Rotation4 (Vector3 .zAxis, new Vector3 (-1, 0, 0)), // right
642
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, -1, 0)), // top
643
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 1, 0)), // bottom
644
+ ];
645
+
646
+ // Negated scales of the texture cube.
647
+
648
+ var scales = [
649
+ new Vector3 (-1, -1, 1), // front
650
+ new Vector3 (-1, -1, 1), // back
651
+ new Vector3 (-1, -1, 1), // left
652
+ new Vector3 (-1, -1, 1), // right
653
+ new Vector3 ( 1, 1, 1), // top
654
+ new Vector3 ( 1, 1, 1), // bottom
655
+ ];
656
+
657
+ var invCameraSpaceMatrix = new Matrix4 ();
658
+
659
+ function GeneratedCubeMapTexture (executionContext)
660
+ {
661
+ X3DEnvironmentTextureNode .call (this, executionContext);
662
+
663
+ this .addType (X3DConstants .GeneratedCubeMapTexture);
664
+
665
+ this .renderer = new DependentRenderer (executionContext);
666
+ this .projectionMatrix = new Matrix4 ();
667
+ this .modelMatrix = new Matrix4 ();
668
+ this .viewVolume = new ViewVolume ();
669
+ }
670
+
671
+ GeneratedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
672
+ {
673
+ constructor: GeneratedCubeMapTexture,
674
+ fieldDefinitions: new FieldDefinitionArray ([
675
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
676
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
677
+ new X3DFieldDefinition (X3DConstants .inputOutput, "update", new Fields .SFString ("NONE")),
678
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "size", new Fields .SFInt32 (128)),
679
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
680
+ ]),
681
+ getTypeName: function ()
682
+ {
683
+ return "GeneratedCubeMapTexture";
684
+ },
685
+ getComponentName: function ()
686
+ {
687
+ return "CubeMapTexturing";
688
+ },
689
+ getContainerField: function ()
690
+ {
691
+ return "texture";
692
+ },
693
+ initialize: function ()
694
+ {
695
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
696
+
697
+ this .renderer .setup ();
698
+
699
+ // Transfer 6 textures of size x size pixels.
700
+
701
+ var size = Algorithm .nextPowerOfTwo (this .size_ .getValue ());
702
+
703
+ if (size > 0)
704
+ {
705
+ size = Algorithm .nextPowerOfTwo (size);
706
+
707
+ // Upload default data.
708
+
709
+ var
710
+ gl = this .getBrowser () .getContext (),
711
+ defaultData = new Uint8Array (size * size * 4);
712
+
713
+ gl .bindTexture (this .getTarget (), this .getTexture ());
714
+
715
+ for (var i = 0; i < 6; ++ i)
716
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, size, size, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
717
+
718
+ // Properties
719
+
720
+ this .viewport = new Vector4 (0, 0, size, size);
721
+ this .frameBuffer = new TextureBuffer (this .getBrowser (), size, size);
722
+ }
723
+ },
724
+ traverse: function (type, renderObject)
725
+ {
726
+ if (type !== TraverseType .DISPLAY)
727
+ return;
728
+
729
+ if (this .update_ .getValue () === "NONE")
730
+ return;
731
+
732
+ if (! this .frameBuffer)
733
+ return;
734
+
735
+ //if (renderObject .getBrowser () !== this .getBrowser ())
736
+ // return; // Could be interesting for four-side-view
737
+
738
+ if (! renderObject .isIndependent ())
739
+ return;
740
+
741
+ renderObject .getGeneratedCubeMapTextures () .push (this);
742
+
743
+ this .modelMatrix .assign (renderObject .getModelViewMatrix () .get ()) .multRight (renderObject .getCameraSpaceMatrix () .get ());
744
+ },
745
+ renderTexture: function (renderObject)
746
+ {
747
+ this .renderer .setRenderer (renderObject);
748
+
749
+ var
750
+ renderer = this .renderer,
751
+ browser = renderObject .getBrowser (),
752
+ layer = renderObject .getLayer (),
753
+ gl = browser .getContext (),
754
+ background = renderer .getBackground (),
755
+ navigationInfo = renderer .getNavigationInfo (),
756
+ viewpoint = renderer .getViewpoint (),
757
+ headlightContainer = browser .getHeadlight (),
758
+ headlight = navigationInfo .headlight_ .getValue (),
759
+ nearValue = navigationInfo .getNearValue (),
760
+ farValue = navigationInfo .getFarValue (viewpoint),
761
+ projectionMatrix = Camera .perspective (Algorithm .radians (90.0), nearValue, farValue, 1, 1, this .projectionMatrix);
762
+
763
+ this .setTransparent (background .getTransparent ());
764
+
765
+ this .frameBuffer .bind ();
766
+
767
+ renderer .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, this .viewport, this .viewport));
768
+ renderer .getProjectionMatrix () .pushMatrix (projectionMatrix);
769
+
770
+ gl .bindTexture (this .getTarget (), this .getTexture ());
771
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
772
+
773
+ for (var i = 0; i < 6; ++ i)
774
+ {
775
+ gl .clear (gl .COLOR_BUFFER_BIT); // Always clear, X3DBackground could be transparent!
776
+
777
+ // Setup inverse texture space matrix.
778
+
779
+ renderer .getCameraSpaceMatrix () .pushMatrix (this .modelMatrix);
780
+ renderer .getCameraSpaceMatrix () .rotate (rotations [i]);
781
+ renderer .getCameraSpaceMatrix () .scale (scales [i]);
782
+
783
+ try
784
+ {
785
+ renderer .getViewMatrix () .pushMatrix (invCameraSpaceMatrix .assign (renderer .getCameraSpaceMatrix () .get ()) .inverse ());
786
+ }
787
+ catch (error)
788
+ {
789
+ console .log (error);
790
+
791
+ renderer .getViewMatrix () .pushMatrix (Matrix4 .Identity);
792
+ }
793
+
794
+ renderer .getModelViewMatrix () .pushMatrix (invCameraSpaceMatrix);
795
+
796
+ // Setup headlight if enabled.
797
+
798
+ if (headlight)
799
+ {
800
+ headlightContainer .getModelViewMatrix () .pushMatrix (invCameraSpaceMatrix);
801
+ headlightContainer .getModelViewMatrix () .multLeft (viewpoint .getCameraSpaceMatrix ());
802
+ }
803
+
804
+ // Render layer's children.
805
+
806
+ layer .traverse (TraverseType .DISPLAY, renderer);
807
+
808
+ // Pop matrices.
809
+
810
+ if (headlight)
811
+ headlightContainer .getModelViewMatrix () .pop ();
812
+
813
+ renderer .getModelViewMatrix () .pop ();
814
+ renderer .getCameraSpaceMatrix () .pop ();
815
+ renderer .getViewMatrix () .pop ();
816
+
817
+ // Transfer image.
818
+
819
+ var
820
+ data = this .frameBuffer .readPixels (),
821
+ width = this .frameBuffer .getWidth (),
822
+ height = this .frameBuffer .getHeight ();
823
+
824
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width, height, false, gl .RGBA, gl .UNSIGNED_BYTE, data);
825
+ }
826
+
827
+ this .updateTextureProperties ();
828
+
829
+ renderer .getProjectionMatrix () .pop ();
830
+ renderer .getViewVolumes () .pop ();
831
+
832
+ this .frameBuffer .unbind ();
833
+
834
+ if (this .update_ .getValue () === "NEXT_FRAME_ONLY")
835
+ this .update_ = "NONE";
836
+ },
837
+ setShaderUniformsToChannel: (function ()
838
+ {
839
+ const Zero = new Float32Array (16); // Trick: zero model view matrix to hide object.
840
+
841
+ return function (gl, shaderObject, renderObject, i)
842
+ {
843
+ X3DEnvironmentTextureNode .prototype .setShaderUniformsToChannel .call (this, gl, shaderObject, renderObject, i);
844
+
845
+ if (! renderObject .isIndependent ())
846
+ gl .uniformMatrix4fv (shaderObject .x3d_ModelViewMatrix, false, Zero);
847
+ };
848
+ })(),
849
+ });
850
+
851
+ return GeneratedCubeMapTexture;
852
+ });
853
+
854
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
855
+ *******************************************************************************
856
+ *
857
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
858
+ *
859
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
860
+ *
861
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
862
+ *
863
+ * The copyright notice above does not evidence any actual of intended
864
+ * publication of such source code, and is an unpublished work by create3000.
865
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
866
+ * create3000.
867
+ *
868
+ * No permission is granted to copy, distribute, or create derivative works from
869
+ * the contents of this software, in whole or in part, without the prior written
870
+ * permission of create3000.
871
+ *
872
+ * NON-MILITARY USE ONLY
873
+ *
874
+ * All create3000 software are effectively free software with a non-military use
875
+ * restriction. It is free. Well commented source is provided. You may reuse the
876
+ * source in any way you please with the exception anything that uses it must be
877
+ * marked to indicate is contains 'non-military use only' components.
878
+ *
879
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
880
+ *
881
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
882
+ *
883
+ * This file is part of the X_ITE Project.
884
+ *
885
+ * X_ITE is free software: you can redistribute it and/or modify it under the
886
+ * terms of the GNU General Public License version 3 only, as published by the
887
+ * Free Software Foundation.
888
+ *
889
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
890
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
891
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
892
+ * details (a copy is included in the LICENSE file that accompanied this code).
893
+ *
894
+ * You should have received a copy of the GNU General Public License version 3
895
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
896
+ * copy of the GPLv3 License.
897
+ *
898
+ * For Silvio, Joy and Adi.
899
+ *
900
+ ******************************************************************************/
901
+
902
+
903
+ define ('x_ite/Components/CubeMapTexturing/ImageCubeMapTexture',[
904
+ "jquery",
905
+ "x_ite/Fields",
906
+ "x_ite/Basic/X3DFieldDefinition",
907
+ "x_ite/Basic/FieldDefinitionArray",
908
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
909
+ "x_ite/Components/Networking/X3DUrlObject",
910
+ "x_ite/Bits/X3DConstants",
911
+ "standard/Math/Numbers/Vector2",
912
+ "standard/Math/Algorithm",
913
+ "x_ite/DEBUG",
914
+ ],
915
+ function ($,
916
+ Fields,
917
+ X3DFieldDefinition,
918
+ FieldDefinitionArray,
919
+ X3DEnvironmentTextureNode,
920
+ X3DUrlObject,
921
+ X3DConstants,
922
+ Vector2,
923
+ Algorithm,
924
+ DEBUG)
925
+ {
926
+ "use strict";
927
+
928
+ const defaultData = new Uint8Array ([ 255, 255, 255, 255 ]);
929
+
930
+ const offsets = [
931
+ new Vector2 (1, 1), // Front
932
+ new Vector2 (3, 1), // Back
933
+ new Vector2 (0, 1), // Left
934
+ new Vector2 (2, 1), // Right
935
+ new Vector2 (1, 0), // Bottom, must be exchanged with top
936
+ new Vector2 (1, 2), // Top, must be exchanged with bottom
937
+ ];
938
+
939
+ function ImageCubeMapTexture (executionContext)
940
+ {
941
+ X3DEnvironmentTextureNode .call (this, executionContext);
942
+ X3DUrlObject .call (this, executionContext);
943
+
944
+ this .addType (X3DConstants .ImageCubeMapTexture);
945
+
946
+ this .urlStack = new Fields .MFString ();
947
+ }
948
+
949
+ ImageCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
950
+ X3DUrlObject .prototype,
951
+ {
952
+ constructor: ImageCubeMapTexture,
953
+ fieldDefinitions: new FieldDefinitionArray ([
954
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
955
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
956
+ new X3DFieldDefinition (X3DConstants .inputOutput, "url", new Fields .MFString ()),
957
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefresh", new Fields .SFTime ()),
958
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefreshTimeLimit", new Fields .SFTime (3600)),
959
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
960
+ ]),
961
+ getTypeName: function ()
962
+ {
963
+ return "ImageCubeMapTexture";
964
+ },
965
+ getComponentName: function ()
966
+ {
967
+ return "CubeMapTexturing";
968
+ },
969
+ getContainerField: function ()
970
+ {
971
+ return "texture";
972
+ },
973
+ initialize: function ()
974
+ {
975
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
976
+ X3DUrlObject .prototype .initialize .call (this);
977
+
978
+ // Upload default data.
979
+
980
+ const gl = this .getBrowser () .getContext ();
981
+
982
+ gl .bindTexture (this .getTarget (), this .getTexture ());
983
+
984
+ for (let i = 0; i < 6; ++ i)
985
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
986
+
987
+ // Initialize.
988
+
989
+ this .url_ .addInterest ("set_url__", this);
990
+
991
+ this .canvas = $("<canvas></canvas>");
992
+
993
+ this .image = $("<img></img>");
994
+ this .image .on ("load", this .setImage .bind (this));
995
+ this .image .on ("error", this .setError .bind (this));
996
+ this .image .bind ("abort", this .setError .bind (this));
997
+
998
+ this .image [0] .crossOrigin = "Anonymous";
999
+
1000
+ this .requestImmediateLoad ();
1001
+ },
1002
+ set_url__: function ()
1003
+ {
1004
+ this .setLoadState (X3DConstants .NOT_STARTED_STATE);
1005
+
1006
+ this .requestImmediateLoad ();
1007
+ },
1008
+ requestImmediateLoad: function (cache = true)
1009
+ {
1010
+ if (this .checkLoadState () === X3DConstants .COMPLETE_STATE || this .checkLoadState () === X3DConstants .IN_PROGRESS_STATE)
1011
+ return;
1012
+
1013
+ this .setCache (cache);
1014
+ this .setLoadState (X3DConstants .IN_PROGRESS_STATE);
1015
+
1016
+ this .urlStack .setValue (this .url_);
1017
+ this .loadNext ();
1018
+ },
1019
+ loadNext: function ()
1020
+ {
1021
+ if (this .urlStack .length === 0)
1022
+ {
1023
+ this .clearTexture ();
1024
+ this .setLoadState (X3DConstants .FAILED_STATE);
1025
+ return;
1026
+ }
1027
+
1028
+ // Get URL.
1029
+
1030
+ this .URL = new URL (this .urlStack .shift (), this .getExecutionContext () .getWorldURL ());
1031
+
1032
+ if (!this .getBrowser () .getBrowserOptions () .getCache () || !this .getCache ())
1033
+ this .URL .searchParams .set ("_", Date .now ());
1034
+
1035
+ this .image .attr ("src", this .URL .href);
1036
+ },
1037
+ setError: function ()
1038
+ {
1039
+ if (this .URL .protocol !== "data:")
1040
+ console .warn ("Error loading image:", this .URL .href);
1041
+
1042
+ this .loadNext ();
1043
+ },
1044
+ setImage: function ()
1045
+ {
1046
+ if (DEBUG)
1047
+ {
1048
+ if (this .URL .protocol !== "data:")
1049
+ console .info ("Done loading image cube map texture:", this .URL .href);
1050
+ }
1051
+
1052
+ try
1053
+ {
1054
+ const
1055
+ image = this .image [0],
1056
+ canvas = this .canvas [0],
1057
+ cx = canvas .getContext ("2d");
1058
+
1059
+ let
1060
+ width = image .width,
1061
+ height = image .height,
1062
+ width1_4 = Math .floor (width / 4),
1063
+ height1_3 = Math .floor (height / 3);
1064
+
1065
+ // Scale image.
1066
+
1067
+ if (! Algorithm .isPowerOfTwo (width1_4) || ! Algorithm .isPowerOfTwo (height1_3) || width1_4 * 4 !== width || height1_3 * 3 !== height)
1068
+ {
1069
+ width1_4 = Algorithm .nextPowerOfTwo (width1_4);
1070
+ height1_3 = Algorithm .nextPowerOfTwo (height1_3);
1071
+ width = width1_4 * 4;
1072
+ height = height1_3 * 3;
1073
+
1074
+ canvas .width = width;
1075
+ canvas .height = height;
1076
+
1077
+ cx .drawImage (image, 0, 0, image .width, image .height, 0, 0, width, height);
1078
+ }
1079
+ else
1080
+ {
1081
+ canvas .width = width;
1082
+ canvas .height = height;
1083
+
1084
+ cx .drawImage (image, 0, 0);
1085
+ }
1086
+
1087
+ // Extract images.
1088
+
1089
+ const gl = this .getBrowser () .getContext ();
1090
+
1091
+ let opaque = true;
1092
+
1093
+ gl .bindTexture (this .getTarget (), this .getTexture ());
1094
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
1095
+
1096
+ for (let i = 0; i < 6; ++ i)
1097
+ {
1098
+ const data = cx .getImageData (offsets [i] .x * width1_4, offsets [i] .y * height1_3, width1_4, height1_3) .data;
1099
+
1100
+ // Determine image alpha.
1101
+
1102
+ if (opaque)
1103
+ {
1104
+ for (let a = 3; a < data .length; a += 4)
1105
+ {
1106
+ if (data [a] !== 255)
1107
+ {
1108
+ opaque = false;
1109
+ break;
1110
+ }
1111
+ }
1112
+ }
1113
+
1114
+ // Transfer image.
1115
+
1116
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width1_4, height1_3, false, gl .RGBA, gl .UNSIGNED_BYTE, new Uint8Array (data));
1117
+ }
1118
+
1119
+ this .updateTextureProperties ();
1120
+
1121
+ // Update transparent field.
1122
+
1123
+ this .setTransparent (! opaque);
1124
+
1125
+ // Update load state.
1126
+
1127
+ this .setLoadState (X3DConstants .COMPLETE_STATE);
1128
+ }
1129
+ catch (error)
1130
+ {
1131
+ // Catch security error from cross origin requests.
1132
+ console .log (error .message);
1133
+ this .setError ();
1134
+ }
1135
+ },
1136
+ });
1137
+
1138
+ return ImageCubeMapTexture;
1139
+ });
1140
+
1141
+ /*******************************************************************************
1142
+ *
1143
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1144
+ *
1145
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1146
+ *
1147
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1148
+ *
1149
+ * The copyright notice above does not evidence any actual of intended
1150
+ * publication of such source code, and is an unpublished work by create3000.
1151
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1152
+ * create3000.
1153
+ *
1154
+ * No permission is granted to copy, distribute, or create derivative works from
1155
+ * the contents of this software, in whole or in part, without the prior written
1156
+ * permission of create3000.
1157
+ *
1158
+ * NON-MILITARY USE ONLY
1159
+ *
1160
+ * All create3000 software are effectively free software with a non-military use
1161
+ * restriction. It is free. Well commented source is provided. You may reuse the
1162
+ * source in any way you please with the exception anything that uses it must be
1163
+ * marked to indicate is contains 'non-military use only' components.
1164
+ *
1165
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1166
+ *
1167
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1168
+ *
1169
+ * This file is part of the X_ITE Project.
1170
+ *
1171
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1172
+ * terms of the GNU General Public License version 3 only, as published by the
1173
+ * Free Software Foundation.
1174
+ *
1175
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1176
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1177
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1178
+ * details (a copy is included in the LICENSE file that accompanied this code).
1179
+ *
1180
+ * You should have received a copy of the GNU General Public License version 3
1181
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1182
+ * copy of the GPLv3 License.
1183
+ *
1184
+ * For Silvio, Joy and Adi.
1185
+ *
1186
+ ******************************************************************************/
1187
+
1188
+
1189
+ define (require .getComponentUrl ("cube-map-texturing"), [
1190
+ "x_ite/Components",
1191
+ "x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture",
1192
+ "x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture",
1193
+ "x_ite/Components/CubeMapTexturing/ImageCubeMapTexture",
1194
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
1195
+ ],
1196
+ function (Components,
1197
+ ComposedCubeMapTexture,
1198
+ GeneratedCubeMapTexture,
1199
+ ImageCubeMapTexture,
1200
+ X3DEnvironmentTextureNode)
1201
+ {
1202
+ "use strict";
1203
+
1204
+ Components .addComponent ({
1205
+ name: "CubeMapTexturing",
1206
+ types:
1207
+ {
1208
+ ComposedCubeMapTexture: ComposedCubeMapTexture,
1209
+ GeneratedCubeMapTexture: GeneratedCubeMapTexture,
1210
+ ImageCubeMapTexture: ImageCubeMapTexture,
1211
+ },
1212
+ abstractTypes:
1213
+ {
1214
+ X3DEnvironmentTextureNode: X3DEnvironmentTextureNode,
1215
+ },
1216
+ });
1217
+ });
1218
+
1219
+
1220
+
1221
+ })
1222
+ (typeof module === "object" ? module : undefined, typeof require === "function" ? require : undefined);