x_ite 4.0.5 → 4.7.5

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 (1007) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  2. package/.vscode/settings.json +15 -0
  3. package/.vscode/tasks.json +25 -0
  4. package/Makefile +55 -15
  5. package/README.md +13 -130
  6. package/build/bin/dist.pl +156 -0
  7. package/build/bin/version-number.pl +25 -0
  8. package/build/{version.pl → bin/version.pl} +64 -21
  9. package/build/components/annotation.build.js +15 -0
  10. package/build/components/cad-geometry.build.js +15 -0
  11. package/build/components/cube-map-texturing.build.js +15 -0
  12. package/build/components/dis.build.js +15 -0
  13. package/build/components/event-utilities.build.js +15 -0
  14. package/build/components/geometry2d.build.js +15 -0
  15. package/build/components/geospatial.build.js +15 -0
  16. package/build/components/h-anim.build.js +15 -0
  17. package/build/components/key-device-sensor.build.js +15 -0
  18. package/build/components/layout.build.js +15 -0
  19. package/build/components/nurbs.build.js +15 -0
  20. package/build/components/particle-systems.build.js +15 -0
  21. package/build/components/picking.build.js +15 -0
  22. package/build/components/projective-texture-mapping.build.js +15 -0
  23. package/build/components/rigid-body-physics.build.js +15 -0
  24. package/build/components/scripting.build.js +15 -0
  25. package/build/components/texturing-3d.build.js +15 -0
  26. package/build/components/volume-rendering.build.js +15 -0
  27. package/build/components/x_ite.build.js +15 -0
  28. package/build/parts/default.end.frag +2 -0
  29. package/build/parts/default.start.frag +6 -0
  30. package/build/parts/x_ite.end.frag +23 -0
  31. package/build/parts/x_ite.start.frag +8 -0
  32. package/build/x_ite.build.js +18 -0
  33. package/dist/LICENSE.txt +49 -0
  34. package/dist/assets/components/annotation.js +813 -0
  35. package/dist/assets/components/annotation.min.js +1 -0
  36. package/dist/assets/components/cad-geometry.js +1037 -0
  37. package/dist/assets/components/cad-geometry.min.js +1 -0
  38. package/dist/assets/components/cube-map-texturing.js +1212 -0
  39. package/dist/assets/components/cube-map-texturing.min.js +1 -0
  40. package/dist/assets/components/dis.js +908 -0
  41. package/dist/assets/components/dis.min.js +1 -0
  42. package/dist/assets/components/event-utilities.js +1114 -0
  43. package/dist/assets/components/event-utilities.min.js +1 -0
  44. package/dist/assets/components/geometry2d.js +2190 -0
  45. package/dist/assets/components/geometry2d.min.js +1 -0
  46. package/dist/assets/components/geospatial.js +3850 -0
  47. package/dist/assets/components/geospatial.min.js +2 -0
  48. package/dist/assets/components/h-anim.js +1084 -0
  49. package/dist/assets/components/h-anim.min.js +1 -0
  50. package/dist/assets/components/key-device-sensor.js +850 -0
  51. package/dist/assets/components/key-device-sensor.min.js +1 -0
  52. package/dist/assets/components/layout.js +2008 -0
  53. package/dist/assets/components/layout.min.js +1 -0
  54. package/dist/assets/components/nurbs.js +5388 -0
  55. package/dist/assets/components/nurbs.min.js +2 -0
  56. package/dist/assets/components/particle-systems.js +4216 -0
  57. package/dist/assets/components/particle-systems.min.js +2 -0
  58. package/dist/assets/components/picking.js +2481 -0
  59. package/dist/assets/components/picking.min.js +1 -0
  60. package/dist/assets/components/projective-texture-mapping.js +813 -0
  61. package/dist/assets/components/projective-texture-mapping.min.js +1 -0
  62. package/dist/assets/components/rigid-body-physics.js +4569 -0
  63. package/dist/assets/components/rigid-body-physics.min.js +59 -0
  64. package/dist/assets/components/scripting.js +801 -0
  65. package/dist/assets/components/scripting.min.js +1 -0
  66. package/dist/assets/components/texturing-3d.js +10054 -0
  67. package/dist/assets/components/texturing-3d.min.js +48 -0
  68. package/dist/assets/components/volume-rendering.js +3966 -0
  69. package/dist/assets/components/volume-rendering.min.js +3 -0
  70. package/dist/assets/components/x_ite.js +285 -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 +16 -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 +108 -0
  151. package/dist/assets/shaders/webgl1/Phong.fs +838 -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 +541 -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 +109 -0
  165. package/dist/assets/shaders/webgl2/Phong.fs +1014 -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 +696 -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 +180 -59
  175. package/dist/x_ite.js +74696 -68048
  176. package/dist/x_ite.min.js +42 -41
  177. package/dist/x_ite.zip +0 -0
  178. package/docs/404.md +5 -0
  179. package/docs/Accessing-the-External-Browser.md +290 -0
  180. package/docs/Browser-Support.md +47 -0
  181. package/docs/Custom-Shaders.md +905 -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 +1240 -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 +1026 -0
  194. package/docs/reference/Browser-Services.md +333 -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 +334 -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 +76 -54
  239. package/package.json +41 -24
  240. package/src/assets/components/annotation.js +87 -0
  241. package/src/assets/components/cad-geometry.js +88 -0
  242. package/src/assets/components/cube-map-texturing.js +78 -0
  243. package/src/assets/components/dis.js +84 -0
  244. package/src/assets/components/event-utilities.js +93 -0
  245. package/src/assets/components/geometry2d.js +93 -0
  246. package/src/assets/components/geospatial.js +102 -0
  247. package/src/assets/components/h-anim.js +83 -0
  248. package/src/assets/components/key-device-sensor.js +78 -0
  249. package/src/assets/components/layout.js +87 -0
  250. package/src/assets/components/nurbs.js +118 -0
  251. package/src/assets/components/particle-systems.js +105 -0
  252. package/src/assets/components/picking.js +87 -0
  253. package/src/assets/components/projective-texture-mapping.js +75 -0
  254. package/src/assets/components/rigid-body-physics.js +123 -0
  255. package/src/assets/components/scripting.js +72 -0
  256. package/src/assets/components/texturing-3d.js +91 -0
  257. package/src/assets/components/volume-rendering.js +118 -0
  258. package/src/assets/components/x_ite.js +69 -0
  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 +22 -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 +148 -0
  339. package/src/assets/shaders/webgl1/Phong.fs +173 -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 +89 -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/assets/shaders/webgl1/include/Pack.glsl +51 -0
  351. package/src/assets/shaders/webgl1/include/Perlin.glsl +40 -0
  352. package/src/assets/shaders/webgl1/include/Shadow.glsl +310 -0
  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 +149 -0
  360. package/src/assets/shaders/webgl2/Phong.fs +171 -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 +88 -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 +83 -164
  376. package/src/dummy.js +1 -0
  377. package/src/example.html +8 -7
  378. package/src/examples.js +150 -0
  379. package/src/lib/ammojs/AmmoJS.js +58 -0
  380. package/src/lib/ammojs/Makefile +26 -0
  381. package/src/lib/ammojs/ammo.idl +1031 -0
  382. package/src/lib/ammojs/ammo.js +40 -0
  383. package/src/lib/jpeg/jpeg.js +1019 -0
  384. package/src/lib/nurbs/extras/sample.js +242 -0
  385. package/src/lib/nurbs/nurbs.js +342 -0
  386. package/src/lib/nurbs/src/evaluate.js +413 -0
  387. package/src/lib/nurbs/src/numerical-derivative.js +54 -0
  388. package/src/lib/nurbs/src/support.js +151 -0
  389. package/src/lib/nurbs/src/transform.js +78 -0
  390. package/src/lib/nurbs/src/utils/accessor-preamble.js +33 -0
  391. package/src/lib/nurbs/src/utils/bisection-search.js +28 -0
  392. package/src/lib/nurbs/src/utils/cache-key.js +57 -0
  393. package/src/lib/nurbs/src/utils/create-accessors.js +110 -0
  394. package/src/lib/nurbs/src/utils/infer-type.js +52 -0
  395. package/src/lib/nurbs/src/utils/is-array-like.js +10 -0
  396. package/src/lib/nurbs/src/utils/is-ndarray-like.js +18 -0
  397. package/src/lib/nurbs/src/utils/is-ndarray.js +21 -0
  398. package/src/lib/nurbs/src/utils/ndloop.js +23 -0
  399. package/src/lib/nurbs/src/utils/size-getter.js +22 -0
  400. package/src/lib/nurbs/src/utils/variable.js +31 -0
  401. package/src/locale/de.po +8 -3
  402. package/src/locale/fr.po +9 -4
  403. package/src/locale/gettext.js +3 -3
  404. package/src/spinner.css +21 -8
  405. package/src/standard/Geospatial/Geodetic.js +48 -48
  406. package/src/standard/Geospatial/ReferenceEllipsoids.js +1 -1
  407. package/src/standard/Geospatial/UniversalTransverseMercator.js +43 -43
  408. package/src/standard/Math/Algorithm.js +25 -41
  409. package/src/standard/Math/Algorithms/Bezier.js +147 -0
  410. package/src/standard/Math/Algorithms/MergeSort.js +2 -2
  411. package/src/standard/Math/Algorithms/PartialSort.js +97 -0
  412. package/src/standard/Math/Algorithms/QuickSort.js +8 -6
  413. package/src/standard/Math/Algorithms/SAT.js +4 -8
  414. package/src/standard/Math/Algorithms/eigendecomposition.js +37 -33
  415. package/src/standard/Math/Geometry/Box2.js +84 -56
  416. package/src/standard/Math/Geometry/Box3.js +457 -284
  417. package/src/standard/Math/Geometry/Camera.js +24 -15
  418. package/src/standard/Math/Geometry/Cylinder3.js +13 -13
  419. package/src/standard/Math/Geometry/Line3.js +61 -53
  420. package/src/standard/Math/Geometry/Plane3.js +16 -16
  421. package/src/standard/Math/Geometry/Sphere3.js +122 -105
  422. package/src/standard/Math/Geometry/Spheroid3.js +1 -1
  423. package/src/standard/Math/Geometry/Triangle2.js +6 -6
  424. package/src/standard/Math/Geometry/Triangle3.js +80 -88
  425. package/src/standard/Math/Geometry/ViewVolume.js +315 -116
  426. package/src/standard/Math/Numbers/Color3.js +45 -29
  427. package/src/standard/Math/Numbers/Color4.js +25 -14
  428. package/src/standard/Math/Numbers/Complex.js +15 -22
  429. package/src/standard/Math/Numbers/Matrix2.js +37 -17
  430. package/src/standard/Math/Numbers/Matrix3.js +181 -212
  431. package/src/standard/Math/Numbers/Matrix4.js +204 -262
  432. package/src/standard/Math/Numbers/Quaternion.js +60 -147
  433. package/src/standard/Math/Numbers/Rotation4.js +197 -129
  434. package/src/standard/Math/Numbers/Vector2.js +53 -109
  435. package/src/standard/Math/Numbers/Vector3.js +75 -144
  436. package/src/standard/Math/Numbers/Vector4.js +85 -155
  437. package/src/standard/Math/Utility/BVH.js +35 -30
  438. package/src/standard/Math/Utility/MatrixStack.js +6 -9
  439. package/src/standard/Networking/BinaryTransport.js +8 -8
  440. package/src/standard/Time/MicroTime.js +79 -0
  441. package/src/standard/Utility/DataStorage.js +40 -17
  442. package/src/standard/Utility/MapUtilities.js +69 -0
  443. package/src/standard/Utility/ObjectCache.js +2 -3
  444. package/src/standard/Utility/Shuffle.js +5 -6
  445. package/src/tests.js +386 -0
  446. package/src/x_ite/Base/Events.js +22 -30
  447. package/src/x_ite/Base/X3DChildObject.js +35 -19
  448. package/src/x_ite/Base/X3DEventObject.js +10 -12
  449. package/src/x_ite/Base/X3DObject.js +63 -43
  450. package/src/x_ite/Basic/FieldDefinitionArray.js +16 -10
  451. package/src/x_ite/Basic/X3DArrayField.js +3 -430
  452. package/src/x_ite/Basic/X3DBaseNode.js +551 -288
  453. package/src/x_ite/Basic/X3DField.js +133 -96
  454. package/src/x_ite/Basic/X3DFieldDefinition.js +0 -4
  455. package/src/x_ite/Basic/X3DObjectArrayField.js +545 -0
  456. package/src/x_ite/Basic/X3DTypedArrayField.js +839 -0
  457. package/src/x_ite/Bits/TraverseType.js +2 -5
  458. package/src/x_ite/Bits/X3DConstants.js +12 -322
  459. package/src/x_ite/Browser/Core/BrowserOptions.js +205 -77
  460. package/src/x_ite/Browser/Core/BrowserProperties.js +2 -4
  461. package/src/x_ite/Browser/Core/BrowserTimings.js +16 -15
  462. package/src/x_ite/Browser/Core/ContextMenu.js +202 -80
  463. package/src/x_ite/Browser/Core/Notification.js +14 -6
  464. package/src/x_ite/Browser/Core/PrimitiveQuality.js +3 -7
  465. package/src/x_ite/Browser/Core/RenderingProperties.js +10 -11
  466. package/src/x_ite/Browser/Core/Shading.js +66 -0
  467. package/src/x_ite/Browser/Core/TextureQuality.js +3 -7
  468. package/src/x_ite/Browser/Core/X3DCoreContext.js +495 -48
  469. package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +714 -0
  470. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +17 -23
  471. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +12 -20
  472. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +82 -34
  473. package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +3 -5
  474. package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +3 -5
  475. package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +12 -9
  476. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +60 -42
  477. package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +16 -20
  478. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +51 -12
  479. package/src/x_ite/Browser/Geometry3D/BoxOptions.js +17 -21
  480. package/src/x_ite/Browser/Geometry3D/ConeOptions.js +2 -4
  481. package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +2 -4
  482. package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +2 -4
  483. package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +3 -5
  484. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -9
  485. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +98 -0
  486. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +12 -12
  487. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +2 -4
  488. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +2 -4
  489. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +22 -200
  490. package/src/x_ite/Browser/Layout/ScreenText.js +287 -295
  491. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +15 -12
  492. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +18 -12
  493. package/src/x_ite/Browser/NURBS/NURBS.js +481 -0
  494. package/src/x_ite/Browser/Navigation/ExamineViewer.js +587 -127
  495. package/src/x_ite/Browser/Navigation/FlyViewer.js +23 -5
  496. package/src/x_ite/Browser/Navigation/LookAtViewer.js +402 -18
  497. package/src/x_ite/Browser/Navigation/NoneViewer.js +13 -3
  498. package/src/x_ite/Browser/Navigation/PlaneViewer.js +46 -28
  499. package/src/x_ite/Browser/Navigation/WalkViewer.js +45 -17
  500. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +414 -207
  501. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +65 -48
  502. package/src/x_ite/Browser/Navigation/X3DViewer.js +99 -45
  503. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +39 -38
  504. package/src/x_ite/Browser/Networking/urls.js +34 -5
  505. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +7 -9
  506. package/src/x_ite/Browser/Picking/IntersectionType.js +63 -0
  507. package/src/x_ite/Browser/Picking/MatchCriterion.js +64 -0
  508. package/src/x_ite/Browser/Picking/SortOrder.js +65 -0
  509. package/src/x_ite/Browser/Picking/VolumePicker.js +197 -0
  510. package/src/x_ite/Browser/Picking/X3DPickingContext.js +130 -0
  511. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +89 -30
  512. package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +1 -3
  513. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +33 -15
  514. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +39 -151
  515. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +70 -0
  516. package/src/x_ite/Browser/Shaders/Shader.js +150 -50
  517. package/src/x_ite/Browser/Shaders/ShaderSource.js +140 -0
  518. package/src/x_ite/Browser/Shaders/ShaderTest.js +94 -77
  519. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +220 -5
  520. package/src/x_ite/Browser/Shape/AlphaMode.js +65 -0
  521. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
  522. package/src/x_ite/Browser/Shape/X3DShapeContext.js +108 -4
  523. package/src/x_ite/Browser/Sound/X3DSoundContext.js +1 -20
  524. package/src/x_ite/Browser/Text/PolygonText.js +165 -359
  525. package/src/x_ite/Browser/Text/TextAlignment.js +3 -7
  526. package/src/x_ite/Browser/Text/X3DTextContext.js +38 -30
  527. package/src/x_ite/Browser/Text/X3DTextGeometry.js +58 -84
  528. package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +64 -0
  529. package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +81 -0
  530. package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +65 -0
  531. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +73 -0
  532. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +148 -41
  533. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1126 -0
  534. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +686 -0
  535. package/src/x_ite/Browser/Time/X3DTimeContext.js +20 -17
  536. package/src/x_ite/Browser/VERSION.js +2 -2
  537. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +120 -0
  538. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +28 -0
  539. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +114 -0
  540. package/src/x_ite/Browser/X3DBrowser.js +282 -182
  541. package/src/x_ite/Browser/X3DBrowserContext.js +77 -43
  542. package/src/x_ite/Components/Annotation/AnnotationLayer.js +108 -0
  543. package/src/x_ite/Components/Annotation/AnnotationTarget.js +101 -0
  544. package/src/x_ite/Components/{PointingDeviceSensor/TouchGroup.js → Annotation/GroupAnnotation.js} +30 -24
  545. package/src/x_ite/Components/Annotation/IconAnnotation.js +110 -0
  546. package/src/x_ite/Components/Annotation/TextAnnotation.js +102 -0
  547. package/src/x_ite/Components/Annotation/URLAnnotation.js +101 -0
  548. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +76 -0
  549. package/src/x_ite/Components/CADGeometry/CADAssembly.js +6 -8
  550. package/src/x_ite/Components/CADGeometry/CADFace.js +137 -33
  551. package/src/x_ite/Components/CADGeometry/CADLayer.js +5 -18
  552. package/src/x_ite/Components/CADGeometry/CADPart.js +6 -12
  553. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +20 -36
  554. package/src/x_ite/Components/CADGeometry/QuadSet.js +11 -24
  555. package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +2 -4
  556. package/src/x_ite/Components/Core/MetadataBoolean.js +2 -4
  557. package/src/x_ite/Components/Core/MetadataDouble.js +2 -4
  558. package/src/x_ite/Components/Core/MetadataFloat.js +2 -4
  559. package/src/x_ite/Components/Core/MetadataInteger.js +2 -4
  560. package/src/x_ite/Components/Core/MetadataSet.js +2 -4
  561. package/src/x_ite/Components/Core/MetadataString.js +2 -4
  562. package/src/x_ite/Components/Core/WorldInfo.js +18 -10
  563. package/src/x_ite/Components/Core/X3DBindableNode.js +5 -36
  564. package/src/x_ite/Components/Core/X3DChildNode.js +16 -5
  565. package/src/x_ite/Components/Core/X3DInfoNode.js +2 -4
  566. package/src/x_ite/Components/Core/X3DMetadataObject.js +1 -3
  567. package/src/x_ite/Components/Core/X3DNode.js +2 -64
  568. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +190 -210
  569. package/src/x_ite/Components/Core/X3DSensorNode.js +2 -4
  570. package/src/x_ite/Components/Core.js +111 -0
  571. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +42 -50
  572. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +41 -42
  573. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +44 -59
  574. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +48 -46
  575. package/src/x_ite/Components/DIS/DISEntityManager.js +2 -4
  576. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +2 -4
  577. package/src/x_ite/Components/DIS/EspduTransform.js +13 -9
  578. package/src/x_ite/Components/DIS/ReceiverPdu.js +13 -9
  579. package/src/x_ite/Components/DIS/SignalPdu.js +13 -9
  580. package/src/x_ite/Components/DIS/TransmitterPdu.js +13 -9
  581. package/src/x_ite/Components/EnvironmentalEffects/Background.js +2 -4
  582. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +15 -18
  583. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +59 -7
  584. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +12 -10
  585. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +2 -4
  586. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +149 -143
  587. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +61 -22
  588. package/src/x_ite/Components/EnvironmentalEffects.js +90 -0
  589. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +121 -121
  590. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +173 -53
  591. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +33 -31
  592. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +19 -11
  593. package/src/x_ite/Components/EnvironmentalSensor.js +81 -0
  594. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +2 -4
  595. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +2 -4
  596. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +2 -4
  597. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +2 -4
  598. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +2 -4
  599. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +2 -4
  600. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +2 -4
  601. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +2 -4
  602. package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +2 -4
  603. package/src/x_ite/Components/Followers/ColorChaser.js +3 -7
  604. package/src/x_ite/Components/Followers/ColorDamper.js +3 -7
  605. package/src/x_ite/Components/Followers/CoordinateChaser.js +3 -11
  606. package/src/x_ite/Components/Followers/CoordinateDamper.js +2 -10
  607. package/src/x_ite/Components/Followers/OrientationChaser.js +9 -7
  608. package/src/x_ite/Components/Followers/OrientationDamper.js +9 -7
  609. package/src/x_ite/Components/Followers/PositionChaser.js +3 -7
  610. package/src/x_ite/Components/Followers/PositionChaser2D.js +3 -7
  611. package/src/x_ite/Components/Followers/PositionDamper.js +3 -7
  612. package/src/x_ite/Components/Followers/PositionDamper2D.js +3 -7
  613. package/src/x_ite/Components/Followers/ScalarChaser.js +7 -7
  614. package/src/x_ite/Components/Followers/ScalarDamper.js +3 -7
  615. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +3 -11
  616. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +3 -11
  617. package/src/x_ite/Components/Followers/X3DChaserNode.js +26 -26
  618. package/src/x_ite/Components/Followers/X3DDamperNode.js +6 -10
  619. package/src/x_ite/Components/Followers/X3DFollowerNode.js +11 -11
  620. package/src/x_ite/Components/Followers.js +120 -0
  621. package/src/x_ite/Components/Geometry2D/Arc2D.js +28 -30
  622. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +95 -93
  623. package/src/x_ite/Components/Geometry2D/Circle2D.js +16 -15
  624. package/src/x_ite/Components/Geometry2D/Disk2D.js +80 -88
  625. package/src/x_ite/Components/Geometry2D/Polyline2D.js +13 -19
  626. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +12 -18
  627. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +13 -13
  628. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +31 -30
  629. package/src/x_ite/Components/Geometry3D/Box.js +12 -12
  630. package/src/x_ite/Components/Geometry3D/Cone.js +34 -36
  631. package/src/x_ite/Components/Geometry3D/Cylinder.js +52 -54
  632. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +90 -52
  633. package/src/x_ite/Components/Geometry3D/Extrusion.js +472 -388
  634. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +193 -163
  635. package/src/x_ite/Components/Geometry3D/Sphere.js +17 -19
  636. package/src/x_ite/Components/Geometry3D.js +90 -0
  637. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +124 -61
  638. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +54 -36
  639. package/src/x_ite/Components/Geospatial/GeoLOD.js +190 -98
  640. package/src/x_ite/Components/Geospatial/GeoLocation.js +8 -10
  641. package/src/x_ite/Components/Geospatial/GeoMetadata.js +2 -4
  642. package/src/x_ite/Components/Geospatial/GeoOrigin.js +2 -4
  643. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +4 -4
  644. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +10 -7
  645. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +4 -4
  646. package/src/x_ite/Components/Geospatial/GeoTransform.js +13 -13
  647. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +131 -78
  648. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +7 -9
  649. package/src/x_ite/Components/Grouping/Group.js +5 -7
  650. package/src/x_ite/Components/Grouping/StaticGroup.js +194 -22
  651. package/src/x_ite/Components/Grouping/Switch.js +174 -25
  652. package/src/x_ite/Components/Grouping/Transform.js +5 -7
  653. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +70 -16
  654. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +442 -151
  655. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +53 -29
  656. package/src/x_ite/Components/Grouping/X3DTransformNode.js +6 -9
  657. package/src/x_ite/Components/Grouping.js +93 -0
  658. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimDisplacer.js +8 -10
  659. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +360 -0
  660. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimJoint.js +108 -23
  661. package/src/x_ite/Components/HAnim/HAnimMotion.js +113 -0
  662. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSegment.js +14 -14
  663. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSite.js +14 -16
  664. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +13 -11
  665. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +21 -13
  666. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +19 -11
  667. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +8 -8
  668. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +28 -14
  669. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +27 -16
  670. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +10 -8
  671. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +10 -8
  672. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +2 -4
  673. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +7 -9
  674. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +7 -9
  675. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +7 -9
  676. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +10 -11
  677. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +2 -4
  678. package/src/x_ite/Components/Interpolation.js +111 -0
  679. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +72 -8
  680. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +65 -4
  681. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +5 -29
  682. package/src/x_ite/Components/Layering/Layer.js +14 -6
  683. package/src/x_ite/Components/Layering/LayerSet.js +6 -10
  684. package/src/x_ite/Components/Layering/Viewport.js +10 -12
  685. package/src/x_ite/Components/Layering/X3DLayerNode.js +76 -69
  686. package/src/x_ite/Components/Layering/X3DViewportNode.js +2 -6
  687. package/src/x_ite/Components/Layering.js +84 -0
  688. package/src/x_ite/Components/Layout/Layout.js +163 -173
  689. package/src/x_ite/Components/Layout/LayoutGroup.js +20 -19
  690. package/src/x_ite/Components/Layout/LayoutLayer.js +12 -9
  691. package/src/x_ite/Components/Layout/ScreenFontStyle.js +4 -8
  692. package/src/x_ite/Components/Layout/ScreenGroup.js +63 -56
  693. package/src/x_ite/Components/Layout/X3DLayoutNode.js +2 -4
  694. package/src/x_ite/Components/Lighting/DirectionalLight.js +41 -31
  695. package/src/x_ite/Components/Lighting/PointLight.js +117 -104
  696. package/src/x_ite/Components/Lighting/SpotLight.js +77 -53
  697. package/src/x_ite/Components/Lighting/X3DLightNode.js +90 -68
  698. package/src/x_ite/Components/Lighting.js +81 -0
  699. package/src/x_ite/Components/NURBS/Contour2D.js +47 -5
  700. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +69 -5
  701. package/src/x_ite/Components/NURBS/CoordinateDouble.js +2 -4
  702. package/src/x_ite/Components/NURBS/NurbsCurve.js +140 -10
  703. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +117 -8
  704. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +139 -10
  705. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +3 -5
  706. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +125 -10
  707. package/src/x_ite/Components/NURBS/NurbsSet.js +92 -11
  708. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +96 -12
  709. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +88 -7
  710. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +88 -7
  711. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +62 -13
  712. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +41 -6
  713. package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +2 -4
  714. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +333 -7
  715. package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +9 -5
  716. package/src/x_ite/Components/Navigation/Billboard.js +14 -15
  717. package/src/x_ite/Components/Navigation/Collision.js +13 -12
  718. package/src/x_ite/Components/Navigation/LOD.js +221 -66
  719. package/src/x_ite/Components/Navigation/NavigationInfo.js +110 -99
  720. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +138 -45
  721. package/src/x_ite/Components/Navigation/Viewpoint.js +55 -33
  722. package/src/x_ite/Components/Navigation/ViewpointGroup.js +18 -10
  723. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +241 -181
  724. package/src/x_ite/Components/Navigation.js +93 -0
  725. package/src/x_ite/Components/Networking/Anchor.js +24 -28
  726. package/src/x_ite/Components/Networking/Inline.js +68 -50
  727. package/src/x_ite/Components/Networking/LoadSensor.js +2 -4
  728. package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +2 -4
  729. package/src/x_ite/Components/Networking/X3DUrlObject.js +93 -11
  730. package/src/x_ite/Components/Networking.js +84 -0
  731. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -8
  732. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +8 -4
  733. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +7 -4
  734. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +4 -4
  735. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +451 -287
  736. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +7 -4
  737. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +53 -40
  738. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +62 -55
  739. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +133 -123
  740. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +25 -22
  741. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +28 -27
  742. package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +2 -4
  743. package/src/x_ite/Components/Picking/LinePickSensor.js +253 -10
  744. package/src/x_ite/Components/Picking/PickableGroup.js +121 -10
  745. package/src/x_ite/Components/Picking/PointPickSensor.js +262 -12
  746. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +176 -8
  747. package/src/x_ite/Components/Picking/VolumePickSensor.js +152 -8
  748. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +378 -7
  749. package/src/x_ite/Components/Picking/X3DPickableObject.js +22 -4
  750. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +33 -15
  751. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +7 -4
  752. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +2 -4
  753. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +4 -4
  754. package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +4 -4
  755. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +3 -5
  756. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +2 -4
  757. package/src/x_ite/Components/PointingDeviceSensor.js +90 -0
  758. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +282 -0
  759. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +227 -0
  760. package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +217 -0
  761. package/src/x_ite/Components/Rendering/ClipPlane.js +12 -16
  762. package/src/x_ite/Components/Rendering/Color.js +62 -17
  763. package/src/x_ite/Components/Rendering/ColorRGBA.js +65 -17
  764. package/src/x_ite/Components/Rendering/Coordinate.js +4 -4
  765. package/src/x_ite/Components/Rendering/IndexedLineSet.js +68 -81
  766. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +20 -19
  767. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +10 -7
  768. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +21 -23
  769. package/src/x_ite/Components/Rendering/LineSet.js +54 -37
  770. package/src/x_ite/Components/Rendering/Normal.js +65 -13
  771. package/src/x_ite/Components/Rendering/PointSet.js +52 -33
  772. package/src/x_ite/Components/Rendering/TriangleFanSet.js +10 -14
  773. package/src/x_ite/Components/Rendering/TriangleSet.js +2 -4
  774. package/src/x_ite/Components/Rendering/TriangleStripSet.js +9 -13
  775. package/src/x_ite/Components/Rendering/X3DColorNode.js +13 -12
  776. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +118 -79
  777. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +103 -44
  778. package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +2 -4
  779. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +722 -591
  780. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +129 -92
  781. package/src/x_ite/Components/Rendering/X3DNormalNode.js +2 -4
  782. package/src/x_ite/Components/Rendering.js +132 -0
  783. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +116 -7
  784. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +199 -11
  785. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +436 -11
  786. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +118 -10
  787. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +192 -9
  788. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +84 -8
  789. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +20 -14
  790. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +200 -12
  791. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +14 -4
  792. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +424 -17
  793. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +295 -19
  794. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +162 -10
  795. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +135 -8
  796. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +10 -6
  797. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +93 -9
  798. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +5 -8
  799. package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +150 -4
  800. package/src/x_ite/Components/Scripting/Script.js +156 -105
  801. package/src/x_ite/Components/Scripting/X3DScriptNode.js +3 -7
  802. package/src/x_ite/Components/Shaders/ComposedShader.js +38 -53
  803. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +38 -15
  804. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +32 -14
  805. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +32 -14
  806. package/src/x_ite/Components/Shaders/PackagedShader.js +19 -17
  807. package/src/x_ite/Components/Shaders/ProgramShader.js +2 -4
  808. package/src/x_ite/Components/Shaders/ShaderPart.js +38 -26
  809. package/src/x_ite/Components/Shaders/ShaderProgram.js +16 -14
  810. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +836 -699
  811. package/src/x_ite/Components/Shaders/X3DShaderNode.js +61 -101
  812. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +2 -4
  813. package/src/x_ite/Components/Shaders.js +102 -0
  814. package/src/x_ite/Components/Shape/Appearance.js +179 -69
  815. package/src/x_ite/Components/Shape/FillProperties.js +65 -8
  816. package/src/x_ite/Components/Shape/LineProperties.js +29 -9
  817. package/src/x_ite/Components/Shape/Material.js +50 -64
  818. package/src/x_ite/Components/Shape/PointProperties.js +162 -0
  819. package/src/x_ite/Components/Shape/Shape.js +116 -68
  820. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +56 -62
  821. package/src/x_ite/Components/Shape/UnlitMaterial.js +109 -0
  822. package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +2 -4
  823. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +14 -11
  824. package/src/x_ite/Components/Shape/X3DMaterialNode.js +17 -6
  825. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +111 -0
  826. package/src/x_ite/Components/Shape/X3DShapeNode.js +54 -29
  827. package/src/x_ite/Components/Shape.js +108 -0
  828. package/src/x_ite/Components/Sound/AudioClip.js +47 -57
  829. package/src/x_ite/Components/Sound/Sound.js +177 -83
  830. package/src/x_ite/Components/Sound/X3DSoundNode.js +2 -4
  831. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +38 -24
  832. package/src/x_ite/Components/Sound.js +81 -0
  833. package/src/x_ite/Components/Text/FontStyle.js +4 -6
  834. package/src/x_ite/Components/Text/Text.js +21 -18
  835. package/src/x_ite/Components/Text/X3DFontStyleNode.js +58 -93
  836. package/src/x_ite/Components/Text.js +78 -0
  837. package/src/x_ite/Components/Texturing/ImageTexture.js +57 -67
  838. package/src/x_ite/Components/Texturing/MovieTexture.js +59 -70
  839. package/src/x_ite/Components/Texturing/MultiTexture.js +238 -15
  840. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +85 -8
  841. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +47 -8
  842. package/src/x_ite/Components/Texturing/PixelTexture.js +61 -27
  843. package/src/x_ite/Components/Texturing/TextureCoordinate.js +72 -22
  844. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +69 -11
  845. package/src/x_ite/Components/Texturing/TextureProperties.js +98 -69
  846. package/src/x_ite/Components/Texturing/TextureTransform.js +58 -52
  847. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +91 -0
  848. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +183 -0
  849. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +77 -0
  850. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +42 -97
  851. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +209 -0
  852. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +4 -12
  853. package/src/x_ite/Components/Texturing/X3DTextureNode.js +10 -71
  854. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +5 -14
  855. package/src/x_ite/Components/Texturing.js +120 -0
  856. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +90 -8
  857. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +106 -16
  858. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +126 -8
  859. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +75 -25
  860. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +74 -24
  861. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +42 -36
  862. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +19 -16
  863. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +110 -8
  864. package/src/x_ite/Components/Time/TimeSensor.js +68 -38
  865. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +29 -29
  866. package/src/x_ite/Components/Time.js +75 -0
  867. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +311 -12
  868. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +60 -8
  869. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +219 -10
  870. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +134 -7
  871. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +88 -9
  872. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +311 -15
  873. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +87 -7
  874. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +136 -6
  875. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +224 -13
  876. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +193 -12
  877. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +87 -10
  878. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +97 -9
  879. package/src/x_ite/Components/VolumeRendering/VolumeData.js +155 -12
  880. package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +2 -4
  881. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +155 -5
  882. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +64 -4
  883. package/src/x_ite/Components/X_ITE/BlendMode.js +206 -0
  884. package/src/x_ite/Components.js +110 -0
  885. package/src/x_ite/Configuration/ComponentInfo.js +21 -15
  886. package/src/x_ite/Configuration/ComponentInfoArray.js +11 -16
  887. package/src/x_ite/Configuration/ProfileInfo.js +10 -10
  888. package/src/x_ite/Configuration/ProfileInfoArray.js +10 -3
  889. package/src/x_ite/Configuration/SupportedComponents.js +312 -303
  890. package/src/x_ite/Configuration/SupportedNodes.js +44 -716
  891. package/src/x_ite/Configuration/SupportedProfiles.js +196 -168
  892. package/src/x_ite/Configuration/UnitInfo.js +22 -8
  893. package/src/x_ite/Configuration/UnitInfoArray.js +2 -3
  894. package/src/x_ite/Configuration/X3DInfoArray.js +46 -26
  895. package/src/x_ite/DEBUG.js +4 -5
  896. package/src/x_ite/Execution/BindableList.js +99 -34
  897. package/src/x_ite/Execution/BindableStack.js +65 -74
  898. package/src/x_ite/Execution/ExportedNode.js +32 -9
  899. package/src/x_ite/Execution/ImportedNode.js +144 -63
  900. package/src/x_ite/Execution/Scene.js +33 -35
  901. package/src/x_ite/Execution/World.js +31 -29
  902. package/src/x_ite/Execution/X3DExecutionContext.js +452 -194
  903. package/src/x_ite/Execution/X3DScene.js +303 -74
  904. package/src/x_ite/{Error.js → Fallback.js} +25 -24
  905. package/src/x_ite/Fields/ArrayFields.js +315 -112
  906. package/src/x_ite/Fields/SFBool.js +11 -10
  907. package/src/x_ite/Fields/SFColor.js +43 -19
  908. package/src/x_ite/Fields/SFColorRGBA.js +40 -18
  909. package/src/x_ite/Fields/SFDouble.js +17 -10
  910. package/src/x_ite/Fields/SFFloat.js +18 -11
  911. package/src/x_ite/Fields/SFImage.js +47 -38
  912. package/src/x_ite/Fields/SFInt32.js +10 -9
  913. package/src/x_ite/Fields/SFMatrix3.js +24 -17
  914. package/src/x_ite/Fields/SFMatrix4.js +24 -17
  915. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +15 -8
  916. package/src/x_ite/Fields/SFNode.js +119 -39
  917. package/src/x_ite/Fields/SFNodeCache.js +89 -0
  918. package/src/x_ite/Fields/SFRotation.js +42 -27
  919. package/src/x_ite/Fields/SFString.js +14 -15
  920. package/src/x_ite/Fields/SFTime.js +12 -11
  921. package/src/x_ite/Fields/SFVec2.js +17 -14
  922. package/src/x_ite/Fields/SFVec3.js +23 -17
  923. package/src/x_ite/Fields/SFVec4.js +25 -19
  924. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +51 -19
  925. package/src/x_ite/Fields.js +3 -9
  926. package/src/x_ite/InputOutput/FileLoader.js +264 -181
  927. package/src/x_ite/InputOutput/Generator.js +136 -60
  928. package/src/x_ite/Parser/HTMLSupport.js +3 -596
  929. package/src/x_ite/Parser/JSONParser.js +446 -0
  930. package/src/x_ite/Parser/Parser.js +617 -652
  931. package/src/x_ite/Parser/X3DParser.js +176 -0
  932. package/src/x_ite/Parser/XMLParser.js +359 -94
  933. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +19 -3
  934. package/src/x_ite/Prototype/ProtoDeclarationArray.js +19 -3
  935. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +120 -61
  936. package/src/x_ite/Prototype/X3DProtoDeclaration.js +144 -59
  937. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +16 -18
  938. package/src/x_ite/Rendering/DependentRenderer.js +9 -13
  939. package/src/x_ite/Rendering/{DepthBuffer.js → TextureBuffer.js} +84 -53
  940. package/src/x_ite/Rendering/X3DRenderObject.js +640 -531
  941. package/src/x_ite/Routing/RouteArray.js +38 -16
  942. package/src/x_ite/Routing/X3DRoute.js +67 -68
  943. package/src/x_ite/Routing/X3DRoutingContext.js +6 -6
  944. package/src/x_ite/X3D.js +74 -70
  945. package/src/x_ite.config.js +91 -0
  946. package/src/x_ite.css +175 -53
  947. package/src/x_ite.html +128 -439
  948. package/src/x_ite.js +87 -25
  949. package/tests/{SEE.txt → README.md} +1 -0
  950. package/tests/tests.mdproj +1 -1
  951. package/x_ite.min.html +128 -439
  952. package/.bzrignore +0 -3
  953. package/.npmignore +0 -3
  954. package/AUTHORS.md +0 -6
  955. package/STYLE_GUIDE.md +0 -51
  956. package/X_ITE.sln +0 -56
  957. package/X_ITE.userprefs +0 -13
  958. package/build/build.mdproj +0 -24
  959. package/build/dist.pl +0 -97
  960. package/build/parts/end.frag +0 -10
  961. package/build/parts/start.frag +0 -7
  962. package/dist/LICENCES.txt +0 -344
  963. package/dist/dist.mdproj +0 -45
  964. package/dist/images/logo.128.png +0 -0
  965. package/fonts/fonts.mdproj +0 -29
  966. package/meta/meta.mdproj +0 -35
  967. package/require.build.js +0 -15
  968. package/require.build.min.js +0 -15
  969. package/src/images/logo.128.png +0 -0
  970. package/src/lib/jquery-contextMenu/README.md +0 -355
  971. package/src/lib/jquery-contextMenu/dist/images/cut.png +0 -0
  972. package/src/lib/jquery-contextMenu/dist/images/door.png +0 -0
  973. package/src/lib/jquery-contextMenu/dist/images/page_white_add.png +0 -0
  974. package/src/lib/jquery-contextMenu/dist/images/page_white_copy.png +0 -0
  975. package/src/lib/jquery-contextMenu/dist/images/page_white_delete.png +0 -0
  976. package/src/lib/jquery-contextMenu/dist/images/page_white_edit.png +0 -0
  977. package/src/lib/jquery-contextMenu/dist/images/page_white_paste.png +0 -0
  978. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.css +0 -155
  979. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.js +0 -1811
  980. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.css +0 -16
  981. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.css.map +0 -1
  982. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.js +0 -18
  983. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.js.map +0 -1
  984. package/src/lib/jquery-contextMenu/dist/jquery.ui.position.js +0 -517
  985. package/src/lib/jquery-contextMenu/dist/jquery.ui.position.min.js +0 -4
  986. package/src/lib/jquery-contextMenu/package.json +0 -99
  987. package/src/lib/opentype.js/.npmignore +0 -5
  988. package/src/locale/de.mo +0 -0
  989. package/src/locale/fr.mo +0 -0
  990. package/src/require.config.js +0 -51
  991. package/src/src.mdproj +0 -729
  992. package/src/standard/Networking/URI.js +0 -687
  993. package/src/x_ite/Browser/Shaders/BackgroundSphereFragmentShader.fs +0 -29
  994. package/src/x_ite/Browser/Shaders/BackgroundSphereVertexShader.vs +0 -22
  995. package/src/x_ite/Browser/Shaders/Bits/Line3.h +0 -14
  996. package/src/x_ite/Browser/Shaders/Bits/Plane3.h +0 -47
  997. package/src/x_ite/Browser/Shaders/Bits/Random.h +0 -31
  998. package/src/x_ite/Browser/Shaders/Depth.fs +0 -51
  999. package/src/x_ite/Browser/Shaders/Depth.vs +0 -20
  1000. package/src/x_ite/Browser/Shaders/Gouraud.fs +0 -110
  1001. package/src/x_ite/Browser/Shaders/Gouraud.vs +0 -188
  1002. package/src/x_ite/Browser/Shaders/Phong.fs +0 -255
  1003. package/src/x_ite/Browser/Shaders/Phong.vs +0 -38
  1004. package/src/x_ite/Browser/Shaders/PointSet.fs +0 -64
  1005. package/src/x_ite/Browser/Shaders/Wireframe.fs +0 -61
  1006. package/src/x_ite/Browser/Shaders/Wireframe.vs +0 -55
  1007. package/src/x_ite/Components/H-Anim/HAnimHumanoid.js +0 -118
@@ -0,0 +1,1212 @@
1
+ (function () {
2
+
3
+ var
4
+ define = X3D .define,
5
+ require = X3D .require,
6
+ module = { };
7
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
8
+ *******************************************************************************
9
+ *
10
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
11
+ *
12
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
13
+ *
14
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
15
+ *
16
+ * The copyright notice above does not evidence any actual of intended
17
+ * publication of such source code, and is an unpublished work by create3000.
18
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
19
+ * create3000.
20
+ *
21
+ * No permission is granted to copy, distribute, or create derivative works from
22
+ * the contents of this software, in whole or in part, without the prior written
23
+ * permission of create3000.
24
+ *
25
+ * NON-MILITARY USE ONLY
26
+ *
27
+ * All create3000 software are effectively free software with a non-military use
28
+ * restriction. It is free. Well commented source is provided. You may reuse the
29
+ * source in any way you please with the exception anything that uses it must be
30
+ * marked to indicate is contains 'non-military use only' components.
31
+ *
32
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33
+ *
34
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
35
+ *
36
+ * This file is part of the X_ITE Project.
37
+ *
38
+ * X_ITE is free software: you can redistribute it and/or modify it under the
39
+ * terms of the GNU General Public License version 3 only, as published by the
40
+ * Free Software Foundation.
41
+ *
42
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
43
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
44
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
45
+ * details (a copy is included in the LICENSE file that accompanied this code).
46
+ *
47
+ * You should have received a copy of the GNU General Public License version 3
48
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
49
+ * copy of the GPLv3 License.
50
+ *
51
+ * For Silvio, Joy and Adi.
52
+ *
53
+ ******************************************************************************/
54
+
55
+
56
+ define ('x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode',[
57
+ "x_ite/Components/Texturing/X3DSingleTextureNode",
58
+ "x_ite/Bits/X3DConstants",
59
+ ],
60
+ function (X3DSingleTextureNode,
61
+ X3DConstants)
62
+ {
63
+ "use strict";
64
+
65
+ function X3DEnvironmentTextureNode (executionContext)
66
+ {
67
+ X3DSingleTextureNode .call (this, executionContext);
68
+
69
+ this .addType (X3DConstants .X3DEnvironmentTextureNode);
70
+
71
+ const gl = this .getBrowser () .getContext ();
72
+
73
+ this .target = gl .TEXTURE_CUBE_MAP;
74
+
75
+ this .targets = [
76
+ gl .TEXTURE_CUBE_MAP_POSITIVE_Z, // Front
77
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_Z, // Back
78
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_X, // Left
79
+ gl .TEXTURE_CUBE_MAP_POSITIVE_X, // Right
80
+ gl .TEXTURE_CUBE_MAP_POSITIVE_Y, // Top
81
+ gl .TEXTURE_CUBE_MAP_NEGATIVE_Y, // Bottom
82
+ ];
83
+ }
84
+
85
+ X3DEnvironmentTextureNode .prototype = Object .assign (Object .create (X3DSingleTextureNode .prototype),
86
+ {
87
+ constructor: X3DEnvironmentTextureNode,
88
+ getTarget: function ()
89
+ {
90
+ return this .target;
91
+ },
92
+ getTargets: function ()
93
+ {
94
+ return this .targets;
95
+ },
96
+ clearTexture: (function ()
97
+ {
98
+ var defaultData = new Uint8Array ([ 255, 255, 255, 255 ]);
99
+
100
+ return function ()
101
+ {
102
+ var
103
+ gl = this .getBrowser () .getContext (),
104
+ targets = this .getTargets ();
105
+
106
+ gl .bindTexture (this .getTarget (), this .getTexture ());
107
+
108
+ for (var i = 0, length = targets .length; i < length; ++ i)
109
+ gl .texImage2D (targets [i], 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
110
+ };
111
+ })(),
112
+ updateTextureProperties: function ()
113
+ {
114
+ X3DSingleTextureNode .prototype .updateTextureProperties .call (this,
115
+ this .target,
116
+ this .textureProperties_ .getValue (),
117
+ this .texturePropertiesNode,
118
+ 128,
119
+ 128,
120
+ false,
121
+ false,
122
+ false);
123
+ },
124
+ setShaderUniformsToChannel: function (gl, shaderObject, renderObject, i)
125
+ {
126
+ gl .activeTexture (gl .TEXTURE0 + shaderObject .getBrowser () .getCubeMapTextureUnits () [i]);
127
+ gl .bindTexture (gl .TEXTURE_CUBE_MAP, this .getTexture ());
128
+ gl .uniform1i (shaderObject .x3d_TextureType [i], 4);
129
+ },
130
+ });
131
+
132
+ return X3DEnvironmentTextureNode;
133
+ });
134
+
135
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
136
+ *******************************************************************************
137
+ *
138
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
139
+ *
140
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
141
+ *
142
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
143
+ *
144
+ * The copyright notice above does not evidence any actual of intended
145
+ * publication of such source code, and is an unpublished work by create3000.
146
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
147
+ * create3000.
148
+ *
149
+ * No permission is granted to copy, distribute, or create derivative works from
150
+ * the contents of this software, in whole or in part, without the prior written
151
+ * permission of create3000.
152
+ *
153
+ * NON-MILITARY USE ONLY
154
+ *
155
+ * All create3000 software are effectively free software with a non-military use
156
+ * restriction. It is free. Well commented source is provided. You may reuse the
157
+ * source in any way you please with the exception anything that uses it must be
158
+ * marked to indicate is contains 'non-military use only' components.
159
+ *
160
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
161
+ *
162
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
163
+ *
164
+ * This file is part of the X_ITE Project.
165
+ *
166
+ * X_ITE is free software: you can redistribute it and/or modify it under the
167
+ * terms of the GNU General Public License version 3 only, as published by the
168
+ * Free Software Foundation.
169
+ *
170
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
171
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
172
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
173
+ * details (a copy is included in the LICENSE file that accompanied this code).
174
+ *
175
+ * You should have received a copy of the GNU General Public License version 3
176
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
177
+ * copy of the GPLv3 License.
178
+ *
179
+ * For Silvio, Joy and Adi.
180
+ *
181
+ ******************************************************************************/
182
+
183
+
184
+ define ('x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture',[
185
+ "x_ite/Fields",
186
+ "x_ite/Basic/X3DFieldDefinition",
187
+ "x_ite/Basic/FieldDefinitionArray",
188
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
189
+ "x_ite/Bits/X3DCast",
190
+ "x_ite/Bits/X3DConstants",
191
+ ],
192
+ function (Fields,
193
+ X3DFieldDefinition,
194
+ FieldDefinitionArray,
195
+ X3DEnvironmentTextureNode,
196
+ X3DCast,
197
+ X3DConstants)
198
+ {
199
+ "use strict";
200
+
201
+ function ComposedCubeMapTexture (executionContext)
202
+ {
203
+ X3DEnvironmentTextureNode .call (this, executionContext);
204
+
205
+ this .addType (X3DConstants .ComposedCubeMapTexture);
206
+
207
+ this .addAlias ("front", this .frontTexture_);
208
+ this .addAlias ("back", this .backTexture_);
209
+ this .addAlias ("left", this .leftTexture_);
210
+ this .addAlias ("right", this .rightTexture_);
211
+ this .addAlias ("bottom", this .bottomTexture_);
212
+ this .addAlias ("top", this .topTexture_);
213
+
214
+ this .textures = [null, null, null, null, null, null];
215
+ this .loadStates = 0;
216
+ }
217
+
218
+ ComposedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
219
+ {
220
+ constructor: ComposedCubeMapTexture,
221
+ fieldDefinitions: new FieldDefinitionArray ([
222
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
223
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
224
+ new X3DFieldDefinition (X3DConstants .inputOutput, "frontTexture", new Fields .SFNode ()),
225
+ new X3DFieldDefinition (X3DConstants .inputOutput, "backTexture", new Fields .SFNode ()),
226
+ new X3DFieldDefinition (X3DConstants .inputOutput, "leftTexture", new Fields .SFNode ()),
227
+ new X3DFieldDefinition (X3DConstants .inputOutput, "rightTexture", new Fields .SFNode ()),
228
+ new X3DFieldDefinition (X3DConstants .inputOutput, "bottomTexture", new Fields .SFNode ()),
229
+ new X3DFieldDefinition (X3DConstants .inputOutput, "topTexture", new Fields .SFNode ()),
230
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
231
+ ]),
232
+ getTypeName: function ()
233
+ {
234
+ return "ComposedCubeMapTexture";
235
+ },
236
+ getComponentName: function ()
237
+ {
238
+ return "CubeMapTexturing";
239
+ },
240
+ getContainerField: function ()
241
+ {
242
+ return "texture";
243
+ },
244
+ initialize: function ()
245
+ {
246
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
247
+
248
+ // Upload default data.
249
+
250
+ this .clearTexture ();
251
+
252
+ // Initialize.
253
+
254
+ this .frontTexture_ .addInterest ("set_texture__", this, 0);
255
+ this .backTexture_ .addInterest ("set_texture__", this, 1);
256
+ this .leftTexture_ .addInterest ("set_texture__", this, 2);
257
+ this .rightTexture_ .addInterest ("set_texture__", this, 3);
258
+ this .topTexture_ .addInterest ("set_texture__", this, 5);
259
+ this .bottomTexture_ .addInterest ("set_texture__", this, 4);
260
+
261
+ this .set_texture__ (this .frontTexture_, 0);
262
+ this .set_texture__ (this .backTexture_, 1);
263
+ this .set_texture__ (this .leftTexture_, 2);
264
+ this .set_texture__ (this .rightTexture_, 3);
265
+ this .set_texture__ (this .topTexture_, 4);
266
+ this .set_texture__ (this .bottomTexture_, 5);
267
+ },
268
+ set_texture__: function (node, index)
269
+ {
270
+ var texture = this .textures [index];
271
+
272
+ if (texture)
273
+ {
274
+ var callbackName = "set_loadState__" + texture .getId () + "_" + index;
275
+
276
+ texture .removeInterest ("set_loadState__", this);
277
+ texture .loadState_ .removeFieldCallback (callbackName);
278
+ }
279
+
280
+ var texture = this .textures [index] = X3DCast (X3DConstants .X3DTexture2DNode, node);
281
+
282
+ if (texture)
283
+ {
284
+ var callbackName = "set_loadState__" + texture .getId () + "_" + index;
285
+
286
+ texture .addInterest ("set_loadState__", this, texture, index);
287
+ texture .loadState_ .addFieldCallback (callbackName, this .set_loadState__ .bind (this, null, texture, index));
288
+ }
289
+
290
+ this .set_loadState__ (null, texture, index);
291
+ },
292
+ set_loadState__: function (output, texture, index)
293
+ {
294
+ if (texture)
295
+ this .setLoadStateBit (texture .checkLoadState (), texture .getData (), index);
296
+ else
297
+ this .setLoadStateBit (X3DConstants .NOT_STARTED, null, index);
298
+
299
+ this .setTextures ();
300
+ },
301
+ setLoadStateBit: function (loadState, data, bit)
302
+ {
303
+ if (loadState === X3DConstants .COMPLETE_STATE || data)
304
+ this .loadStates |= 1 << bit;
305
+ else
306
+ this .loadStates &= ~(1 << bit);
307
+ },
308
+ isComplete: function ()
309
+ {
310
+ if (this .loadStates !== 0x3f) // 0b111111
311
+ return false;
312
+
313
+ var
314
+ textures = this .textures,
315
+ size = textures [0] .getWidth ();
316
+
317
+ for (var i = 0; i < 6; ++ i)
318
+ {
319
+ var texture = textures [i];
320
+
321
+ if (texture .getWidth () !== size)
322
+ return false;
323
+
324
+ if (texture .getHeight () !== size)
325
+ return false;
326
+ }
327
+
328
+ return true;
329
+ },
330
+ setTextures: function ()
331
+ {
332
+ var gl = this .getBrowser () .getContext ();
333
+
334
+ gl .bindTexture (this .getTarget (), this .getTexture ());
335
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
336
+
337
+ if (this .isComplete ())
338
+ {
339
+ var textures = this .textures;
340
+
341
+ for (var i = 0; i < 6; ++ i)
342
+ {
343
+ var
344
+ gl = this .getBrowser () .getContext (),
345
+ texture = textures [i],
346
+ width = texture .getWidth (),
347
+ height = texture .getHeight (),
348
+ data = texture .getData ();
349
+
350
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, !texture .getFlipY ());
351
+ gl .pixelStorei (gl .UNPACK_ALIGNMENT, 1);
352
+
353
+ if (data instanceof Uint8Array)
354
+ {
355
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width, height, false, gl .RGBA, gl .UNSIGNED_BYTE, data);
356
+ }
357
+ else
358
+ {
359
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, gl .RGBA, gl .UNSIGNED_BYTE, data);
360
+ }
361
+ }
362
+
363
+ this .updateTextureProperties ();
364
+ }
365
+ else
366
+ {
367
+ this .clearTexture ();
368
+ }
369
+
370
+ this .set_transparent__ ();
371
+ },
372
+ set_transparent__: function ()
373
+ {
374
+ var
375
+ textures = this .textures,
376
+ transparent = false;
377
+
378
+ if (this .isComplete ())
379
+ {
380
+ for (var i = 0; i < 6; ++ i)
381
+ {
382
+ if (textures [i] .transparent_ .getValue ())
383
+ {
384
+ transparent = true;
385
+ break;
386
+ }
387
+ }
388
+ }
389
+
390
+ this .setTransparent (transparent);
391
+ },
392
+ });
393
+
394
+ return ComposedCubeMapTexture;
395
+ });
396
+
397
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
398
+ *******************************************************************************
399
+ *
400
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
401
+ *
402
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
403
+ *
404
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
405
+ *
406
+ * The copyright notice above does not evidence any actual of intended
407
+ * publication of such source code, and is an unpublished work by create3000.
408
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
409
+ * create3000.
410
+ *
411
+ * No permission is granted to copy, distribute, or create derivative works from
412
+ * the contents of this software, in whole or in part, without the prior written
413
+ * permission of create3000.
414
+ *
415
+ * NON-MILITARY USE ONLY
416
+ *
417
+ * All create3000 software are effectively free software with a non-military use
418
+ * restriction. It is free. Well commented source is provided. You may reuse the
419
+ * source in any way you please with the exception anything that uses it must be
420
+ * marked to indicate is contains 'non-military use only' components.
421
+ *
422
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
423
+ *
424
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
425
+ *
426
+ * This file is part of the X_ITE Project.
427
+ *
428
+ * X_ITE is free software: you can redistribute it and/or modify it under the
429
+ * terms of the GNU General Public License version 3 only, as published by the
430
+ * Free Software Foundation.
431
+ *
432
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
433
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
434
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
435
+ * details (a copy is included in the LICENSE file that accompanied this code).
436
+ *
437
+ * You should have received a copy of the GNU General Public License version 3
438
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
439
+ * copy of the GPLv3 License.
440
+ *
441
+ * For Silvio, Joy and Adi.
442
+ *
443
+ ******************************************************************************/
444
+
445
+
446
+ define ('x_ite/Rendering/DependentRenderer',[
447
+ "x_ite/Basic/X3DBaseNode",
448
+ "x_ite/Rendering/X3DRenderObject",
449
+ "x_ite/Bits/TraverseType",
450
+ ],
451
+ function (X3DBaseNode,
452
+ X3DRenderObject,
453
+ TraverseType)
454
+ {
455
+ "use strict";
456
+
457
+ function DependentRenderer (executionContext)
458
+ {
459
+ X3DBaseNode .call (this, executionContext);
460
+ X3DRenderObject .call (this, executionContext);
461
+
462
+ this .renderObject = null;
463
+ }
464
+
465
+ DependentRenderer .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
466
+ X3DRenderObject .prototype,
467
+ {
468
+ constructor: DependentRenderer,
469
+ initialize: function ()
470
+ {
471
+ X3DBaseNode .prototype .initialize .call (this);
472
+ X3DRenderObject .prototype .initialize .call (this);
473
+ },
474
+ isIndependent: function ()
475
+ {
476
+ return false;
477
+ },
478
+ setRenderer: function (value)
479
+ {
480
+ this .renderObject = value;
481
+ },
482
+ getBrowser: function ()
483
+ {
484
+ return this .renderObject .getBrowser ();
485
+ },
486
+ getLayer: function ()
487
+ {
488
+ return this .renderObject .getLayer ();
489
+ },
490
+ getBackground: function ()
491
+ {
492
+ return this .renderObject .getBackground ();
493
+ },
494
+ getFog: function ()
495
+ {
496
+ return this .renderObject .getFog ();
497
+ },
498
+ getNavigationInfo: function ()
499
+ {
500
+ return this .renderObject .getNavigationInfo ();
501
+ },
502
+ getViewpoint: function ()
503
+ {
504
+ return this .renderObject .getViewpoint ();
505
+ },
506
+ getLightContainer: function ()
507
+ {
508
+ return this .renderObject .getLights () [this .lightIndex ++];
509
+ },
510
+ render: function (type, callback, group)
511
+ {
512
+ switch (type)
513
+ {
514
+ case TraverseType .COLLISION:
515
+ {
516
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
517
+ break;
518
+ }
519
+ case TraverseType .SHADOW:
520
+ {
521
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
522
+ break;
523
+ }
524
+ case TraverseType .DISPLAY:
525
+ {
526
+ this .lightIndex = 0;
527
+
528
+ X3DRenderObject .prototype .render .call (this, type, callback, group);
529
+
530
+ for (const light of this .renderObject .getLights ())
531
+ light .getModelViewMatrix () .pop ();
532
+
533
+ break;
534
+ }
535
+ }
536
+ },
537
+ });
538
+
539
+ return DependentRenderer;
540
+ });
541
+
542
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
543
+ *******************************************************************************
544
+ *
545
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
546
+ *
547
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
548
+ *
549
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
550
+ *
551
+ * The copyright notice above does not evidence any actual of intended
552
+ * publication of such source code, and is an unpublished work by create3000.
553
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
554
+ * create3000.
555
+ *
556
+ * No permission is granted to copy, distribute, or create derivative works from
557
+ * the contents of this software, in whole or in part, without the prior written
558
+ * permission of create3000.
559
+ *
560
+ * NON-MILITARY USE ONLY
561
+ *
562
+ * All create3000 software are effectively free software with a non-military use
563
+ * restriction. It is free. Well commented source is provided. You may reuse the
564
+ * source in any way you please with the exception anything that uses it must be
565
+ * marked to indicate is contains 'non-military use only' components.
566
+ *
567
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
568
+ *
569
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
570
+ *
571
+ * This file is part of the X_ITE Project.
572
+ *
573
+ * X_ITE is free software: you can redistribute it and/or modify it under the
574
+ * terms of the GNU General Public License version 3 only, as published by the
575
+ * Free Software Foundation.
576
+ *
577
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
578
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
579
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
580
+ * details (a copy is included in the LICENSE file that accompanied this code).
581
+ *
582
+ * You should have received a copy of the GNU General Public License version 3
583
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
584
+ * copy of the GPLv3 License.
585
+ *
586
+ * For Silvio, Joy and Adi.
587
+ *
588
+ ******************************************************************************/
589
+
590
+
591
+ define ('x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture',[
592
+ "x_ite/Fields",
593
+ "x_ite/Basic/X3DFieldDefinition",
594
+ "x_ite/Basic/FieldDefinitionArray",
595
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
596
+ "x_ite/Rendering/DependentRenderer",
597
+ "x_ite/Rendering/TextureBuffer",
598
+ "x_ite/Bits/X3DConstants",
599
+ "x_ite/Bits/TraverseType",
600
+ "standard/Math/Geometry/Camera",
601
+ "standard/Math/Geometry/ViewVolume",
602
+ "standard/Math/Numbers/Rotation4",
603
+ "standard/Math/Numbers/Vector3",
604
+ "standard/Math/Numbers/Vector4",
605
+ "standard/Math/Numbers/Matrix4",
606
+ "standard/Math/Algorithm",
607
+ ],
608
+ function (Fields,
609
+ X3DFieldDefinition,
610
+ FieldDefinitionArray,
611
+ X3DEnvironmentTextureNode,
612
+ DependentRenderer,
613
+ TextureBuffer,
614
+ X3DConstants,
615
+ TraverseType,
616
+ Camera,
617
+ ViewVolume,
618
+ Rotation4,
619
+ Vector3,
620
+ Vector4,
621
+ Matrix4,
622
+ Algorithm)
623
+ {
624
+ "use strict";
625
+
626
+ // Rotations to negated normals of the texture cube.
627
+
628
+ var rotations = [
629
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 0, -1)), // front
630
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 0, 1)), // back
631
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 1, 0, 0)), // left
632
+ new Rotation4 (Vector3 .zAxis, new Vector3 (-1, 0, 0)), // right
633
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, -1, 0)), // top
634
+ new Rotation4 (Vector3 .zAxis, new Vector3 ( 0, 1, 0)), // bottom
635
+ ];
636
+
637
+ // Negated scales of the texture cube.
638
+
639
+ var scales = [
640
+ new Vector3 (-1, -1, 1), // front
641
+ new Vector3 (-1, -1, 1), // back
642
+ new Vector3 (-1, -1, 1), // left
643
+ new Vector3 (-1, -1, 1), // right
644
+ new Vector3 ( 1, 1, 1), // top
645
+ new Vector3 ( 1, 1, 1), // bottom
646
+ ];
647
+
648
+ var invCameraSpaceMatrix = new Matrix4 ();
649
+
650
+ function GeneratedCubeMapTexture (executionContext)
651
+ {
652
+ X3DEnvironmentTextureNode .call (this, executionContext);
653
+
654
+ this .addType (X3DConstants .GeneratedCubeMapTexture);
655
+
656
+ this .renderer = new DependentRenderer (executionContext);
657
+ this .projectionMatrix = new Matrix4 ();
658
+ this .modelMatrix = new Matrix4 ();
659
+ this .viewVolume = new ViewVolume ();
660
+ }
661
+
662
+ GeneratedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
663
+ {
664
+ constructor: GeneratedCubeMapTexture,
665
+ fieldDefinitions: new FieldDefinitionArray ([
666
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
667
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
668
+ new X3DFieldDefinition (X3DConstants .inputOutput, "update", new Fields .SFString ("NONE")),
669
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "size", new Fields .SFInt32 (128)),
670
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
671
+ ]),
672
+ getTypeName: function ()
673
+ {
674
+ return "GeneratedCubeMapTexture";
675
+ },
676
+ getComponentName: function ()
677
+ {
678
+ return "CubeMapTexturing";
679
+ },
680
+ getContainerField: function ()
681
+ {
682
+ return "texture";
683
+ },
684
+ initialize: function ()
685
+ {
686
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
687
+
688
+ this .renderer .setup ();
689
+
690
+ // Transfer 6 textures of size x size pixels.
691
+
692
+ var size = Algorithm .nextPowerOfTwo (this .size_ .getValue ());
693
+
694
+ if (size > 0)
695
+ {
696
+ size = Algorithm .nextPowerOfTwo (size);
697
+
698
+ // Upload default data.
699
+
700
+ var
701
+ gl = this .getBrowser () .getContext (),
702
+ defaultData = new Uint8Array (size * size * 4);
703
+
704
+ gl .bindTexture (this .getTarget (), this .getTexture ());
705
+
706
+ for (var i = 0; i < 6; ++ i)
707
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, size, size, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
708
+
709
+ // Properties
710
+
711
+ this .viewport = new Vector4 (0, 0, size, size);
712
+ this .frameBuffer = new TextureBuffer (this .getBrowser (), size, size);
713
+ }
714
+ },
715
+ traverse: function (type, renderObject)
716
+ {
717
+ if (type !== TraverseType .DISPLAY)
718
+ return;
719
+
720
+ if (this .update_ .getValue () === "NONE")
721
+ return;
722
+
723
+ if (! this .frameBuffer)
724
+ return;
725
+
726
+ //if (renderObject .getBrowser () !== this .getBrowser ())
727
+ // return; // Could be interesting for four-side-view
728
+
729
+ if (! renderObject .isIndependent ())
730
+ return;
731
+
732
+ renderObject .getGeneratedCubeMapTextures () .push (this);
733
+
734
+ this .modelMatrix .assign (renderObject .getModelViewMatrix () .get ()) .multRight (renderObject .getCameraSpaceMatrix () .get ());
735
+ },
736
+ renderTexture: function (renderObject)
737
+ {
738
+ this .renderer .setRenderer (renderObject);
739
+
740
+ var
741
+ renderer = this .renderer,
742
+ browser = renderObject .getBrowser (),
743
+ layer = renderObject .getLayer (),
744
+ gl = browser .getContext (),
745
+ background = renderer .getBackground (),
746
+ navigationInfo = renderer .getNavigationInfo (),
747
+ viewpoint = renderer .getViewpoint (),
748
+ headlightContainer = browser .getHeadlight (),
749
+ headlight = navigationInfo .headlight_ .getValue (),
750
+ nearValue = navigationInfo .getNearValue (),
751
+ farValue = navigationInfo .getFarValue (viewpoint),
752
+ projectionMatrix = Camera .perspective (Algorithm .radians (90.0), nearValue, farValue, 1, 1, this .projectionMatrix);
753
+
754
+ this .setTransparent (background .getTransparent ());
755
+
756
+ this .frameBuffer .bind ();
757
+
758
+ renderer .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, this .viewport, this .viewport));
759
+ renderer .getProjectionMatrix () .pushMatrix (projectionMatrix);
760
+
761
+ gl .bindTexture (this .getTarget (), this .getTexture ());
762
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
763
+
764
+ for (var i = 0; i < 6; ++ i)
765
+ {
766
+ gl .clear (gl .COLOR_BUFFER_BIT); // Always clear, X3DBackground could be transparent!
767
+
768
+ // Setup inverse texture space matrix.
769
+
770
+ renderer .getCameraSpaceMatrix () .pushMatrix (this .modelMatrix);
771
+ renderer .getCameraSpaceMatrix () .rotate (rotations [i]);
772
+ renderer .getCameraSpaceMatrix () .scale (scales [i]);
773
+
774
+ try
775
+ {
776
+ renderer .getViewMatrix () .pushMatrix (invCameraSpaceMatrix .assign (renderer .getCameraSpaceMatrix () .get ()) .inverse ());
777
+ }
778
+ catch (error)
779
+ {
780
+ console .log (error);
781
+
782
+ renderer .getViewMatrix () .pushMatrix (Matrix4 .Identity);
783
+ }
784
+
785
+ renderer .getModelViewMatrix () .pushMatrix (invCameraSpaceMatrix);
786
+
787
+ // Setup headlight if enabled.
788
+
789
+ if (headlight)
790
+ {
791
+ headlightContainer .getModelViewMatrix () .pushMatrix (invCameraSpaceMatrix);
792
+ headlightContainer .getModelViewMatrix () .multLeft (viewpoint .getCameraSpaceMatrix ());
793
+ }
794
+
795
+ // Render layer's children.
796
+
797
+ layer .traverse (TraverseType .DISPLAY, renderer);
798
+
799
+ // Pop matrices.
800
+
801
+ if (headlight)
802
+ headlightContainer .getModelViewMatrix () .pop ();
803
+
804
+ renderer .getModelViewMatrix () .pop ();
805
+ renderer .getCameraSpaceMatrix () .pop ();
806
+ renderer .getViewMatrix () .pop ();
807
+
808
+ // Transfer image.
809
+
810
+ var
811
+ data = this .frameBuffer .readPixels (),
812
+ width = this .frameBuffer .getWidth (),
813
+ height = this .frameBuffer .getHeight ();
814
+
815
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width, height, false, gl .RGBA, gl .UNSIGNED_BYTE, data);
816
+ }
817
+
818
+ this .updateTextureProperties ();
819
+
820
+ renderer .getProjectionMatrix () .pop ();
821
+ renderer .getViewVolumes () .pop ();
822
+
823
+ this .frameBuffer .unbind ();
824
+
825
+ if (this .update_ .getValue () === "NEXT_FRAME_ONLY")
826
+ this .update_ = "NONE";
827
+ },
828
+ setShaderUniformsToChannel: (function ()
829
+ {
830
+ const Zero = new Float32Array (16); // Trick: zero model view matrix to hide object.
831
+
832
+ return function (gl, shaderObject, renderObject, i)
833
+ {
834
+ X3DEnvironmentTextureNode .prototype .setShaderUniformsToChannel .call (this, gl, shaderObject, renderObject, i);
835
+
836
+ if (! renderObject .isIndependent ())
837
+ gl .uniformMatrix4fv (shaderObject .x3d_ModelViewMatrix, false, Zero);
838
+ };
839
+ })(),
840
+ });
841
+
842
+ return GeneratedCubeMapTexture;
843
+ });
844
+
845
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
846
+ *******************************************************************************
847
+ *
848
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
849
+ *
850
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
851
+ *
852
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
853
+ *
854
+ * The copyright notice above does not evidence any actual of intended
855
+ * publication of such source code, and is an unpublished work by create3000.
856
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
857
+ * create3000.
858
+ *
859
+ * No permission is granted to copy, distribute, or create derivative works from
860
+ * the contents of this software, in whole or in part, without the prior written
861
+ * permission of create3000.
862
+ *
863
+ * NON-MILITARY USE ONLY
864
+ *
865
+ * All create3000 software are effectively free software with a non-military use
866
+ * restriction. It is free. Well commented source is provided. You may reuse the
867
+ * source in any way you please with the exception anything that uses it must be
868
+ * marked to indicate is contains 'non-military use only' components.
869
+ *
870
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
871
+ *
872
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
873
+ *
874
+ * This file is part of the X_ITE Project.
875
+ *
876
+ * X_ITE is free software: you can redistribute it and/or modify it under the
877
+ * terms of the GNU General Public License version 3 only, as published by the
878
+ * Free Software Foundation.
879
+ *
880
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
881
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
882
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
883
+ * details (a copy is included in the LICENSE file that accompanied this code).
884
+ *
885
+ * You should have received a copy of the GNU General Public License version 3
886
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
887
+ * copy of the GPLv3 License.
888
+ *
889
+ * For Silvio, Joy and Adi.
890
+ *
891
+ ******************************************************************************/
892
+
893
+
894
+ define ('x_ite/Components/CubeMapTexturing/ImageCubeMapTexture',[
895
+ "jquery",
896
+ "x_ite/Fields",
897
+ "x_ite/Basic/X3DFieldDefinition",
898
+ "x_ite/Basic/FieldDefinitionArray",
899
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
900
+ "x_ite/Components/Networking/X3DUrlObject",
901
+ "x_ite/Bits/X3DConstants",
902
+ "standard/Math/Numbers/Vector2",
903
+ "standard/Math/Algorithm",
904
+ "x_ite/DEBUG",
905
+ ],
906
+ function ($,
907
+ Fields,
908
+ X3DFieldDefinition,
909
+ FieldDefinitionArray,
910
+ X3DEnvironmentTextureNode,
911
+ X3DUrlObject,
912
+ X3DConstants,
913
+ Vector2,
914
+ Algorithm,
915
+ DEBUG)
916
+ {
917
+ "use strict";
918
+
919
+ const defaultData = new Uint8Array ([ 255, 255, 255, 255 ]);
920
+
921
+ const offsets = [
922
+ new Vector2 (1, 1), // Front
923
+ new Vector2 (3, 1), // Back
924
+ new Vector2 (0, 1), // Left
925
+ new Vector2 (2, 1), // Right
926
+ new Vector2 (1, 0), // Bottom, must be exchanged with top
927
+ new Vector2 (1, 2), // Top, must be exchanged with bottom
928
+ ];
929
+
930
+ function ImageCubeMapTexture (executionContext)
931
+ {
932
+ X3DEnvironmentTextureNode .call (this, executionContext);
933
+ X3DUrlObject .call (this, executionContext);
934
+
935
+ this .addType (X3DConstants .ImageCubeMapTexture);
936
+
937
+ this .urlStack = new Fields .MFString ();
938
+ }
939
+
940
+ ImageCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironmentTextureNode .prototype),
941
+ X3DUrlObject .prototype,
942
+ {
943
+ constructor: ImageCubeMapTexture,
944
+ fieldDefinitions: new FieldDefinitionArray ([
945
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
946
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
947
+ new X3DFieldDefinition (X3DConstants .inputOutput, "url", new Fields .MFString ()),
948
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefresh", new Fields .SFTime ()),
949
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefreshTimeLimit", new Fields .SFTime (3600)),
950
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
951
+ ]),
952
+ getTypeName: function ()
953
+ {
954
+ return "ImageCubeMapTexture";
955
+ },
956
+ getComponentName: function ()
957
+ {
958
+ return "CubeMapTexturing";
959
+ },
960
+ getContainerField: function ()
961
+ {
962
+ return "texture";
963
+ },
964
+ initialize: function ()
965
+ {
966
+ X3DEnvironmentTextureNode .prototype .initialize .call (this);
967
+ X3DUrlObject .prototype .initialize .call (this);
968
+
969
+ // Upload default data.
970
+
971
+ const gl = this .getBrowser () .getContext ();
972
+
973
+ gl .bindTexture (this .getTarget (), this .getTexture ());
974
+
975
+ for (let i = 0; i < 6; ++ i)
976
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, 1, 1, 0, gl .RGBA, gl .UNSIGNED_BYTE, defaultData);
977
+
978
+ // Initialize.
979
+
980
+ this .url_ .addInterest ("set_url__", this);
981
+
982
+ this .canvas = $("<canvas></canvas>");
983
+
984
+ this .image = $("<img></img>");
985
+ this .image .on ("load", this .setImage .bind (this));
986
+ this .image .on ("error", this .setError .bind (this));
987
+ this .image .bind ("abort", this .setError .bind (this));
988
+
989
+ this .image [0] .crossOrigin = "Anonymous";
990
+
991
+ this .requestImmediateLoad ();
992
+ },
993
+ set_url__: function ()
994
+ {
995
+ this .setLoadState (X3DConstants .NOT_STARTED_STATE);
996
+
997
+ this .requestImmediateLoad ();
998
+ },
999
+ requestImmediateLoad: function (cache = true)
1000
+ {
1001
+ if (this .checkLoadState () === X3DConstants .COMPLETE_STATE || this .checkLoadState () === X3DConstants .IN_PROGRESS_STATE)
1002
+ return;
1003
+
1004
+ this .setCache (cache);
1005
+ this .setLoadState (X3DConstants .IN_PROGRESS_STATE);
1006
+
1007
+ this .urlStack .setValue (this .url_);
1008
+ this .loadNext ();
1009
+ },
1010
+ loadNext: function ()
1011
+ {
1012
+ if (this .urlStack .length === 0)
1013
+ {
1014
+ this .clearTexture ();
1015
+ this .setLoadState (X3DConstants .FAILED_STATE);
1016
+ return;
1017
+ }
1018
+
1019
+ // Get URL.
1020
+
1021
+ this .URL = new URL (this .urlStack .shift (), this .getExecutionContext () .getWorldURL ());
1022
+
1023
+ if (!this .getBrowser () .getBrowserOptions () .getCache () || !this .getCache ())
1024
+ this .URL .searchParams .set ("_", Date .now ());
1025
+
1026
+ this .image .attr ("src", this .URL .href);
1027
+ },
1028
+ setError: function ()
1029
+ {
1030
+ if (this .URL .protocol !== "data:")
1031
+ console .warn ("Error loading image:", this .URL .href);
1032
+
1033
+ this .loadNext ();
1034
+ },
1035
+ setImage: function ()
1036
+ {
1037
+ if (DEBUG)
1038
+ {
1039
+ if (this .URL .protocol !== "data:")
1040
+ console .info ("Done loading image cube map texture:", this .URL .href);
1041
+ }
1042
+
1043
+ try
1044
+ {
1045
+ const
1046
+ image = this .image [0],
1047
+ canvas = this .canvas [0],
1048
+ cx = canvas .getContext ("2d");
1049
+
1050
+ let
1051
+ width = image .width,
1052
+ height = image .height,
1053
+ width1_4 = Math .floor (width / 4),
1054
+ height1_3 = Math .floor (height / 3);
1055
+
1056
+ // Scale image.
1057
+
1058
+ if (! Algorithm .isPowerOfTwo (width1_4) || ! Algorithm .isPowerOfTwo (height1_3) || width1_4 * 4 !== width || height1_3 * 3 !== height)
1059
+ {
1060
+ width1_4 = Algorithm .nextPowerOfTwo (width1_4);
1061
+ height1_3 = Algorithm .nextPowerOfTwo (height1_3);
1062
+ width = width1_4 * 4;
1063
+ height = height1_3 * 3;
1064
+
1065
+ canvas .width = width;
1066
+ canvas .height = height;
1067
+
1068
+ cx .drawImage (image, 0, 0, image .width, image .height, 0, 0, width, height);
1069
+ }
1070
+ else
1071
+ {
1072
+ canvas .width = width;
1073
+ canvas .height = height;
1074
+
1075
+ cx .drawImage (image, 0, 0);
1076
+ }
1077
+
1078
+ // Extract images.
1079
+
1080
+ const gl = this .getBrowser () .getContext ();
1081
+
1082
+ let opaque = true;
1083
+
1084
+ gl .bindTexture (this .getTarget (), this .getTexture ());
1085
+ gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
1086
+
1087
+ for (let i = 0; i < 6; ++ i)
1088
+ {
1089
+ const data = cx .getImageData (offsets [i] .x * width1_4, offsets [i] .y * height1_3, width1_4, height1_3) .data;
1090
+
1091
+ // Determine image alpha.
1092
+
1093
+ if (opaque)
1094
+ {
1095
+ for (let a = 3; a < data .length; a += 4)
1096
+ {
1097
+ if (data [a] !== 255)
1098
+ {
1099
+ opaque = false;
1100
+ break;
1101
+ }
1102
+ }
1103
+ }
1104
+
1105
+ // Transfer image.
1106
+
1107
+ gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width1_4, height1_3, false, gl .RGBA, gl .UNSIGNED_BYTE, new Uint8Array (data));
1108
+ }
1109
+
1110
+ this .updateTextureProperties ();
1111
+
1112
+ // Update transparent field.
1113
+
1114
+ this .setTransparent (! opaque);
1115
+
1116
+ // Update load state.
1117
+
1118
+ this .setLoadState (X3DConstants .COMPLETE_STATE);
1119
+ }
1120
+ catch (error)
1121
+ {
1122
+ // Catch security error from cross origin requests.
1123
+ console .log (error .message);
1124
+ this .setError ();
1125
+ }
1126
+ },
1127
+ });
1128
+
1129
+ return ImageCubeMapTexture;
1130
+ });
1131
+
1132
+ /*******************************************************************************
1133
+ *
1134
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1135
+ *
1136
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1137
+ *
1138
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1139
+ *
1140
+ * The copyright notice above does not evidence any actual of intended
1141
+ * publication of such source code, and is an unpublished work by create3000.
1142
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1143
+ * create3000.
1144
+ *
1145
+ * No permission is granted to copy, distribute, or create derivative works from
1146
+ * the contents of this software, in whole or in part, without the prior written
1147
+ * permission of create3000.
1148
+ *
1149
+ * NON-MILITARY USE ONLY
1150
+ *
1151
+ * All create3000 software are effectively free software with a non-military use
1152
+ * restriction. It is free. Well commented source is provided. You may reuse the
1153
+ * source in any way you please with the exception anything that uses it must be
1154
+ * marked to indicate is contains 'non-military use only' components.
1155
+ *
1156
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1157
+ *
1158
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1159
+ *
1160
+ * This file is part of the X_ITE Project.
1161
+ *
1162
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1163
+ * terms of the GNU General Public License version 3 only, as published by the
1164
+ * Free Software Foundation.
1165
+ *
1166
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1167
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1168
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1169
+ * details (a copy is included in the LICENSE file that accompanied this code).
1170
+ *
1171
+ * You should have received a copy of the GNU General Public License version 3
1172
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1173
+ * copy of the GPLv3 License.
1174
+ *
1175
+ * For Silvio, Joy and Adi.
1176
+ *
1177
+ ******************************************************************************/
1178
+
1179
+
1180
+ define ([
1181
+ "x_ite/Components",
1182
+ "x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture",
1183
+ "x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture",
1184
+ "x_ite/Components/CubeMapTexturing/ImageCubeMapTexture",
1185
+ "x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",
1186
+ ],
1187
+ function (Components,
1188
+ ComposedCubeMapTexture,
1189
+ GeneratedCubeMapTexture,
1190
+ ImageCubeMapTexture,
1191
+ X3DEnvironmentTextureNode)
1192
+ {
1193
+ "use strict";
1194
+
1195
+ Components .addComponent ({
1196
+ name: "CubeMapTexturing",
1197
+ types:
1198
+ {
1199
+ ComposedCubeMapTexture: ComposedCubeMapTexture,
1200
+ GeneratedCubeMapTexture: GeneratedCubeMapTexture,
1201
+ ImageCubeMapTexture: ImageCubeMapTexture,
1202
+ },
1203
+ abstractTypes:
1204
+ {
1205
+ X3DEnvironmentTextureNode: X3DEnvironmentTextureNode,
1206
+ },
1207
+ });
1208
+ });
1209
+
1210
+
1211
+
1212
+ }());