x_ite 4.2.17 → 4.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (903) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  2. package/.vscode/launch.json +15 -0
  3. package/.vscode/settings.json +12 -0
  4. package/.vscode/tasks.json +25 -0
  5. package/Makefile +27 -10
  6. package/README.md +13 -145
  7. package/build/bin/dist.pl +65 -8
  8. package/build/bin/version-number.pl +25 -0
  9. package/build/bin/version.pl +54 -14
  10. package/build/components/annotation.build.js +15 -0
  11. package/build/components/cad-geometry.build.js +15 -0
  12. package/build/components/cube-map-texturing.build.js +15 -0
  13. package/build/components/dis.build.js +15 -0
  14. package/build/components/event-utilities.build.js +15 -0
  15. package/build/components/geometry2d.build.js +15 -0
  16. package/build/components/geospatial.build.js +15 -0
  17. package/build/components/h-anim.build.js +15 -0
  18. package/build/components/key-device-sensor.build.js +15 -0
  19. package/build/components/layout.build.js +15 -0
  20. package/build/components/nurbs.build.js +15 -0
  21. package/build/components/particle-systems.build.js +15 -0
  22. package/build/components/picking.build.js +15 -0
  23. package/build/components/projective-texture-mapping.build.js +15 -0
  24. package/build/components/rigid-body-physics.build.js +15 -0
  25. package/build/components/scripting.build.js +15 -0
  26. package/build/components/texturing-3d.build.js +15 -0
  27. package/build/components/volume-rendering.build.js +15 -0
  28. package/build/components/x_ite.build.js +15 -0
  29. package/build/parts/default.end.frag.js +3 -0
  30. package/build/parts/default.start.frag.js +15 -0
  31. package/build/parts/x_ite.end.frag.js +25 -0
  32. package/build/parts/x_ite.start.frag.js +16 -0
  33. package/build/x_ite.build.js +5 -2
  34. package/dist/{components/texturing-3d.js → assets/components/annotation.js} +341 -263
  35. package/dist/assets/components/annotation.min.js +1 -0
  36. package/dist/{components → assets/components}/cad-geometry.js +180 -76
  37. package/dist/assets/components/cad-geometry.min.js +1 -0
  38. package/dist/assets/components/cube-map-texturing.js +1222 -0
  39. package/dist/assets/components/cube-map-texturing.min.js +1 -0
  40. package/dist/assets/components/dis.js +918 -0
  41. package/dist/assets/components/dis.min.js +1 -0
  42. package/dist/assets/components/event-utilities.js +1124 -0
  43. package/dist/assets/components/event-utilities.min.js +1 -0
  44. package/dist/assets/components/geometry2d.js +2200 -0
  45. package/dist/assets/components/geometry2d.min.js +1 -0
  46. package/dist/{components → assets/components}/geospatial.js +364 -269
  47. package/dist/assets/components/geospatial.min.js +2 -0
  48. package/dist/{components → assets/components}/h-anim.js +224 -62
  49. package/dist/assets/components/h-anim.min.js +1 -0
  50. package/dist/assets/components/key-device-sensor.js +860 -0
  51. package/dist/assets/components/key-device-sensor.min.js +1 -0
  52. package/dist/assets/components/layout.js +2018 -0
  53. package/dist/assets/components/layout.min.js +1 -0
  54. package/dist/{components → assets/components}/nurbs.js +632 -348
  55. package/dist/assets/components/nurbs.min.js +2 -0
  56. package/dist/{components → assets/components}/particle-systems.js +514 -476
  57. package/dist/assets/components/particle-systems.min.js +2 -0
  58. package/dist/assets/components/picking.js +2491 -0
  59. package/dist/assets/components/picking.min.js +1 -0
  60. package/dist/assets/components/projective-texture-mapping.js +823 -0
  61. package/dist/assets/components/projective-texture-mapping.min.js +1 -0
  62. package/dist/assets/components/rigid-body-physics.js +4579 -0
  63. package/dist/assets/components/rigid-body-physics.min.js +59 -0
  64. package/dist/assets/components/scripting.js +816 -0
  65. package/dist/assets/components/scripting.min.js +1 -0
  66. package/dist/assets/components/texturing-3d.js +10064 -0
  67. package/dist/assets/components/texturing-3d.min.js +48 -0
  68. package/dist/assets/components/volume-rendering.js +3976 -0
  69. package/dist/assets/components/volume-rendering.min.js +3 -0
  70. package/dist/assets/components/x_ite.js +295 -0
  71. package/dist/assets/components/x_ite.min.js +1 -0
  72. package/{fonts → dist/assets/fonts}/DroidSerif-Bold.ttf +0 -0
  73. package/{fonts → dist/assets/fonts}/DroidSerif-BoldItalic.ttf +0 -0
  74. package/{fonts → dist/assets/fonts}/DroidSerif-Italic.ttf +0 -0
  75. package/{fonts → dist/assets/fonts}/DroidSerif-Regular.ttf +0 -0
  76. package/{fonts → dist/assets/fonts}/Ubuntu-B.ttf +0 -0
  77. package/{fonts → dist/assets/fonts}/Ubuntu-BI.ttf +0 -0
  78. package/{fonts → dist/assets/fonts}/Ubuntu-R.ttf +0 -0
  79. package/{fonts → dist/assets/fonts}/Ubuntu-RI.ttf +0 -0
  80. package/{fonts → dist/assets/fonts}/UbuntuMono-B.ttf +0 -0
  81. package/{fonts → dist/assets/fonts}/UbuntuMono-BI.ttf +0 -0
  82. package/{fonts → dist/assets/fonts}/UbuntuMono-R.ttf +0 -0
  83. package/{fonts → dist/assets/fonts}/UbuntuMono-RI.ttf +0 -0
  84. package/dist/assets/hatching/0.png +0 -0
  85. package/dist/assets/hatching/1.png +0 -0
  86. package/dist/assets/hatching/10.png +0 -0
  87. package/dist/assets/hatching/11.png +0 -0
  88. package/dist/assets/hatching/12.png +0 -0
  89. package/dist/assets/hatching/13.png +0 -0
  90. package/dist/assets/hatching/14.png +0 -0
  91. package/dist/assets/hatching/15.png +0 -0
  92. package/dist/assets/hatching/16.png +0 -0
  93. package/dist/assets/hatching/17.png +0 -0
  94. package/dist/assets/hatching/18.png +0 -0
  95. package/dist/assets/hatching/19.png +0 -0
  96. package/dist/assets/hatching/2.png +0 -0
  97. package/dist/assets/hatching/3.png +0 -0
  98. package/dist/assets/hatching/4.png +0 -0
  99. package/dist/assets/hatching/5.png +0 -0
  100. package/dist/assets/hatching/6.png +0 -0
  101. package/dist/assets/hatching/7.png +0 -0
  102. package/dist/assets/hatching/8.png +0 -0
  103. package/dist/assets/hatching/9.png +0 -0
  104. package/dist/{images → assets/images}/ExamineViewer.png +0 -0
  105. package/dist/{images → assets/images}/FlyViewer.png +0 -0
  106. package/dist/{images → assets/images}/NoneViewer.png +0 -0
  107. package/dist/{images → assets/images}/PlaneViewer.png +0 -0
  108. package/dist/{images → assets/images}/PrimitiveQuality.png +0 -0
  109. package/dist/{images → assets/images}/TextureQuality.png +0 -0
  110. package/dist/{images → assets/images}/Time.png +0 -0
  111. package/dist/{images → assets/images}/Viewpoint.png +0 -0
  112. package/dist/{images → assets/images}/WalkViewer.png +0 -0
  113. package/dist/assets/images/go-next.png +0 -0
  114. package/dist/{images → assets/images}/gtk-fullscreen.png +0 -0
  115. package/dist/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  116. package/dist/{images → assets/images}/gtk-zoom-fit.png +0 -0
  117. package/dist/{images → assets/images}/gtk-zoom-in.png +0 -0
  118. package/dist/{images → assets/images}/help-about.png +0 -0
  119. package/dist/{images → assets/images}/icon.bw.png +0 -0
  120. package/dist/{images → assets/images}/icon.png +0 -0
  121. package/dist/assets/images/logo.128.png +0 -0
  122. package/dist/{images → assets/images}/logo.bw.png +0 -0
  123. package/dist/{images → assets/images}/logo.png +0 -0
  124. package/dist/assets/linetype/0.png +0 -0
  125. package/dist/assets/linetype/1.png +0 -0
  126. package/dist/assets/linetype/10.png +0 -0
  127. package/dist/assets/linetype/11.png +0 -0
  128. package/dist/assets/linetype/12.png +0 -0
  129. package/dist/assets/linetype/13.png +0 -0
  130. package/dist/assets/linetype/14.png +0 -0
  131. package/dist/assets/linetype/15.png +0 -0
  132. package/dist/assets/linetype/16.png +0 -0
  133. package/dist/assets/linetype/2.png +0 -0
  134. package/dist/assets/linetype/3.png +0 -0
  135. package/dist/assets/linetype/4.png +0 -0
  136. package/dist/assets/linetype/5.png +0 -0
  137. package/dist/assets/linetype/6.png +0 -0
  138. package/dist/assets/linetype/7.png +0 -0
  139. package/dist/assets/linetype/8.png +0 -0
  140. package/dist/assets/linetype/9.png +0 -0
  141. package/dist/assets/shaders/webgl1/Background.fs +23 -0
  142. package/dist/assets/shaders/webgl1/Background.vs +16 -0
  143. package/dist/assets/shaders/webgl1/Depth.fs +60 -0
  144. package/dist/assets/shaders/webgl1/Depth.vs +13 -0
  145. package/dist/assets/shaders/webgl1/Fallback.fs +28 -0
  146. package/dist/assets/shaders/webgl1/Fallback.vs +24 -0
  147. package/dist/assets/shaders/webgl1/FallbackUnlit.fs +15 -0
  148. package/dist/assets/shaders/webgl1/FallbackUnlit.vs +18 -0
  149. package/dist/assets/shaders/webgl1/Gouraud.fs +529 -0
  150. package/dist/assets/shaders/webgl1/Gouraud.vs +107 -0
  151. package/dist/assets/shaders/webgl1/Phong.fs +837 -0
  152. package/dist/assets/shaders/webgl1/Phong.vs +52 -0
  153. package/dist/assets/shaders/webgl1/PointSet.fs +541 -0
  154. package/dist/assets/shaders/webgl1/PointSet.vs +48 -0
  155. package/dist/assets/shaders/webgl1/Unlit.fs +538 -0
  156. package/dist/assets/shaders/webgl1/Unlit.vs +52 -0
  157. package/dist/assets/shaders/webgl1/Wireframe.fs +93 -0
  158. package/dist/assets/shaders/webgl1/Wireframe.vs +47 -0
  159. package/dist/assets/shaders/webgl2/Background.fs +25 -0
  160. package/dist/assets/shaders/webgl2/Background.vs +17 -0
  161. package/dist/assets/shaders/webgl2/Depth.fs +62 -0
  162. package/dist/assets/shaders/webgl2/Depth.vs +14 -0
  163. package/dist/assets/shaders/webgl2/Gouraud.fs +684 -0
  164. package/dist/assets/shaders/webgl2/Gouraud.vs +108 -0
  165. package/dist/assets/shaders/webgl2/Phong.fs +1013 -0
  166. package/dist/assets/shaders/webgl2/Phong.vs +53 -0
  167. package/dist/assets/shaders/webgl2/PointSet.fs +696 -0
  168. package/dist/assets/shaders/webgl2/PointSet.vs +49 -0
  169. package/dist/assets/shaders/webgl2/Unlit.fs +693 -0
  170. package/dist/assets/shaders/webgl2/Unlit.vs +53 -0
  171. package/dist/assets/shaders/webgl2/Wireframe.fs +102 -0
  172. package/dist/assets/shaders/webgl2/Wireframe.vs +48 -0
  173. package/dist/example.html +8 -7
  174. package/dist/x_ite.css +167 -49
  175. package/dist/x_ite.js +66263 -60020
  176. package/dist/x_ite.min.js +41 -41
  177. package/dist/x_ite.zip +0 -0
  178. package/docs/404.md +5 -0
  179. package/docs/Accessing-the-External-Browser.md +319 -0
  180. package/docs/Browser-Support.md +47 -0
  181. package/docs/Custom-Shaders.md +896 -0
  182. package/docs/Features.md +49 -0
  183. package/docs/Glossary.md +339 -0
  184. package/docs/How-To-Configure-Your-Web-Server.md +56 -0
  185. package/docs/Supported-Nodes.md +370 -0
  186. package/docs/What's-New.md +1295 -0
  187. package/docs/XHTML-DOM-Integration.md +82 -0
  188. package/docs/_config.yml +140 -0
  189. package/docs/_data/navigation.yml +137 -0
  190. package/docs/assets/css/main.scss +100 -0
  191. package/docs/assets/images/logo.png +0 -0
  192. package/docs/google3696ee938394d7b6.html +1 -0
  193. package/docs/index.md +1033 -0
  194. package/docs/reference/Browser-Services.md +361 -0
  195. package/docs/reference/Constants-Services.md +376 -0
  196. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +128 -0
  197. package/docs/reference/Field-Services-and-Objects.md +1006 -0
  198. package/docs/reference/Prototype-Services.md +121 -0
  199. package/docs/reference/Route-Services.md +49 -0
  200. package/docs/reference/Scene-Services.md +360 -0
  201. package/docs/reference/Script-Node-Authoring-Interface.md +342 -0
  202. package/docs/tutorials/Adding-backgrounds.md +268 -0
  203. package/docs/tutorials/Adding-fog.md +67 -0
  204. package/docs/tutorials/Adding-sound.md +326 -0
  205. package/docs/tutorials/Animating-transforms.md +385 -0
  206. package/docs/tutorials/Basic-Nodes.md +317 -0
  207. package/docs/tutorials/Building-a-X3D-world.md +152 -0
  208. package/docs/tutorials/Building-elevation-grids.md +170 -0
  209. package/docs/tutorials/Building-extruded-shapes.md +145 -0
  210. package/docs/tutorials/Building-primitive-shapes.md +204 -0
  211. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +311 -0
  212. package/docs/tutorials/Controlling-appearance-with-materials.md +186 -0
  213. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +208 -0
  214. package/docs/tutorials/Controlling-detail.md +130 -0
  215. package/docs/tutorials/Controlling-how-textures-are-mapped.md +277 -0
  216. package/docs/tutorials/Controlling-navigation.md +70 -0
  217. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +180 -0
  218. package/docs/tutorials/Controlling-the-viewpoint.md +49 -0
  219. package/docs/tutorials/Creating-new-node-types.md +313 -0
  220. package/docs/tutorials/Grouping-nodes.md +237 -0
  221. package/docs/tutorials/Hello,-World!.md +204 -0
  222. package/docs/tutorials/Improving-Performance.md +227 -0
  223. package/docs/tutorials/Increasing-Rendering-Speed.md +110 -0
  224. package/docs/tutorials/Introducing-X3D.md +94 -0
  225. package/docs/tutorials/Introducing-animation.md +211 -0
  226. package/docs/tutorials/Introducing-script-use.md +127 -0
  227. package/docs/tutorials/Lighting-your-world.md +139 -0
  228. package/docs/tutorials/Mapping-textures.md +212 -0
  229. package/docs/tutorials/Naming-nodes.md +161 -0
  230. package/docs/tutorials/Providing-information-about-your-world.md +30 -0
  231. package/docs/tutorials/Sensing-the-viewer.md +205 -0
  232. package/docs/tutorials/Sensing-viewer-actions.md +214 -0
  233. package/docs/tutorials/Transforming-Shapes.md +270 -0
  234. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +631 -0
  235. package/docs/tutorials/index.md +78 -0
  236. package/meta/logo/logo.png +0 -0
  237. package/meta/logo/logo.svg +216 -217
  238. package/meta/web3d.html +3 -3
  239. package/package.json +43 -28
  240. package/src/assets/components/annotation.js +87 -0
  241. package/src/{components → assets/components}/cad-geometry.js +0 -0
  242. package/src/{x_ite/Components/CubeMapTexturing.js → assets/components/cube-map-texturing.js} +15 -21
  243. package/src/assets/components/dis.js +84 -0
  244. package/src/{x_ite/Components/EventUtilities.js → assets/components/event-utilities.js} +20 -26
  245. package/src/{x_ite/Components/Geometry2D.js → assets/components/geometry2d.js} +22 -25
  246. package/src/{components → assets/components}/geospatial.js +0 -0
  247. package/src/{components → assets/components}/h-anim.js +9 -7
  248. package/src/{x_ite/Components/KeyDeviceSensor.js → assets/components/key-device-sensor.js} +17 -20
  249. package/src/{x_ite/Components/Layout.js → assets/components/layout.js} +20 -23
  250. package/src/{components → assets/components}/nurbs.js +0 -0
  251. package/src/{components → assets/components}/particle-systems.js +1 -1
  252. package/src/assets/components/picking.js +87 -0
  253. package/src/assets/components/projective-texture-mapping.js +75 -0
  254. package/src/{components → assets/components}/rigid-body-physics.js +7 -2
  255. package/src/{x_ite/Components/Scripting.js → assets/components/scripting.js} +13 -19
  256. package/src/{components → assets/components}/texturing-3d.js +12 -13
  257. package/src/assets/components/volume-rendering.js +118 -0
  258. package/src/{x_ite/Components/X_ITE.js → assets/components/x_ite.js} +12 -30
  259. package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
  260. package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
  261. package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
  262. package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
  263. package/src/assets/fonts/Ubuntu-B.ttf +0 -0
  264. package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
  265. package/src/assets/fonts/Ubuntu-R.ttf +0 -0
  266. package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
  267. package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
  268. package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
  269. package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
  270. package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
  271. package/src/assets/hatching/0.png +0 -0
  272. package/src/assets/hatching/1.png +0 -0
  273. package/src/assets/hatching/10.png +0 -0
  274. package/src/assets/hatching/11.png +0 -0
  275. package/src/assets/hatching/12.png +0 -0
  276. package/src/assets/hatching/13.png +0 -0
  277. package/src/assets/hatching/14.png +0 -0
  278. package/src/assets/hatching/15.png +0 -0
  279. package/src/assets/hatching/16.png +0 -0
  280. package/src/assets/hatching/17.png +0 -0
  281. package/src/assets/hatching/18.png +0 -0
  282. package/src/assets/hatching/19.png +0 -0
  283. package/src/assets/hatching/2.png +0 -0
  284. package/src/assets/hatching/3.png +0 -0
  285. package/src/assets/hatching/4.png +0 -0
  286. package/src/assets/hatching/5.png +0 -0
  287. package/src/assets/hatching/6.png +0 -0
  288. package/src/assets/hatching/7.png +0 -0
  289. package/src/assets/hatching/8.png +0 -0
  290. package/src/assets/hatching/9.png +0 -0
  291. package/src/{images → assets/images}/ExamineViewer.png +0 -0
  292. package/src/{images → assets/images}/FlyViewer.png +0 -0
  293. package/src/{images → assets/images}/NoneViewer.png +0 -0
  294. package/src/{images → assets/images}/PlaneViewer.png +0 -0
  295. package/src/{images → assets/images}/PrimitiveQuality.png +0 -0
  296. package/src/{images → assets/images}/TextureQuality.png +0 -0
  297. package/src/{images → assets/images}/Time.png +0 -0
  298. package/src/{images → assets/images}/Viewpoint.png +0 -0
  299. package/src/{images → assets/images}/WalkViewer.png +0 -0
  300. package/src/assets/images/go-next.png +0 -0
  301. package/src/{images → assets/images}/gtk-fullscreen.png +0 -0
  302. package/src/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  303. package/src/{images → assets/images}/gtk-zoom-fit.png +0 -0
  304. package/src/{images → assets/images}/gtk-zoom-in.png +0 -0
  305. package/src/{images → assets/images}/help-about.png +0 -0
  306. package/src/{images → assets/images}/icon.bw.png +0 -0
  307. package/src/{images → assets/images}/icon.png +0 -0
  308. package/src/assets/images/logo.128.png +0 -0
  309. package/src/{images → assets/images}/logo.bw.png +0 -0
  310. package/src/{images → assets/images}/logo.png +0 -0
  311. package/src/assets/linetype/0.png +0 -0
  312. package/src/assets/linetype/1.png +0 -0
  313. package/src/assets/linetype/10.png +0 -0
  314. package/src/assets/linetype/11.png +0 -0
  315. package/src/assets/linetype/12.png +0 -0
  316. package/src/assets/linetype/13.png +0 -0
  317. package/src/assets/linetype/14.png +0 -0
  318. package/src/assets/linetype/15.png +0 -0
  319. package/src/assets/linetype/16.png +0 -0
  320. package/src/assets/linetype/2.png +0 -0
  321. package/src/assets/linetype/3.png +0 -0
  322. package/src/assets/linetype/4.png +0 -0
  323. package/src/assets/linetype/5.png +0 -0
  324. package/src/assets/linetype/6.png +0 -0
  325. package/src/assets/linetype/7.png +0 -0
  326. package/src/assets/linetype/8.png +0 -0
  327. package/src/assets/linetype/9.png +0 -0
  328. package/src/assets/shaders/Types.glsl +102 -0
  329. package/src/assets/shaders/webgl1/Background.fs +16 -0
  330. package/src/assets/shaders/webgl1/Background.vs +22 -0
  331. package/src/assets/shaders/webgl1/Depth.fs +16 -0
  332. package/src/assets/shaders/webgl1/Depth.vs +20 -0
  333. package/src/assets/shaders/webgl1/Fallback.fs +38 -0
  334. package/src/assets/shaders/webgl1/Fallback.vs +30 -0
  335. package/src/assets/shaders/webgl1/FallbackUnlit.fs +21 -0
  336. package/src/assets/shaders/webgl1/FallbackUnlit.vs +24 -0
  337. package/src/assets/shaders/webgl1/Gouraud.fs +66 -0
  338. package/src/assets/shaders/webgl1/Gouraud.vs +147 -0
  339. package/src/assets/shaders/webgl1/Phong.fs +172 -0
  340. package/src/assets/shaders/webgl1/Phong.vs +67 -0
  341. package/src/assets/shaders/webgl1/PointSet.fs +100 -0
  342. package/src/assets/shaders/webgl1/PointSet.vs +70 -0
  343. package/src/assets/shaders/webgl1/Unlit.fs +86 -0
  344. package/src/assets/shaders/webgl1/Unlit.vs +67 -0
  345. package/src/assets/shaders/webgl1/Wireframe.fs +74 -0
  346. package/src/assets/shaders/webgl1/Wireframe.vs +63 -0
  347. package/src/assets/shaders/webgl1/include/ClipPlanes.glsl +16 -0
  348. package/src/assets/shaders/webgl1/include/Fog.glsl +38 -0
  349. package/src/assets/shaders/webgl1/include/Hatch.glsl +18 -0
  350. package/src/{x_ite/Browser/Shaders/Include/Pack.h → assets/shaders/webgl1/include/Pack.glsl} +0 -1
  351. package/src/assets/shaders/webgl1/include/Perlin.glsl +40 -0
  352. package/src/{x_ite/Browser/Shaders/Include/Shadow.h → assets/shaders/webgl1/include/Shadow.glsl} +33 -33
  353. package/src/assets/shaders/webgl1/include/Texture.glsl +488 -0
  354. package/src/assets/shaders/webgl2/Background.fs +19 -0
  355. package/src/assets/shaders/webgl2/Background.vs +23 -0
  356. package/src/assets/shaders/webgl2/Depth.fs +19 -0
  357. package/src/assets/shaders/webgl2/Depth.vs +21 -0
  358. package/src/assets/shaders/webgl2/Gouraud.fs +64 -0
  359. package/src/assets/shaders/webgl2/Gouraud.vs +148 -0
  360. package/src/assets/shaders/webgl2/Phong.fs +170 -0
  361. package/src/assets/shaders/webgl2/Phong.vs +68 -0
  362. package/src/assets/shaders/webgl2/PointSet.fs +99 -0
  363. package/src/assets/shaders/webgl2/PointSet.vs +71 -0
  364. package/src/assets/shaders/webgl2/Unlit.fs +85 -0
  365. package/src/assets/shaders/webgl2/Unlit.vs +68 -0
  366. package/src/assets/shaders/webgl2/Wireframe.fs +73 -0
  367. package/src/assets/shaders/webgl2/Wireframe.vs +64 -0
  368. package/src/assets/shaders/webgl2/include/ClipPlanes.glsl +16 -0
  369. package/src/assets/shaders/webgl2/include/Fog.glsl +46 -0
  370. package/src/assets/shaders/webgl2/include/Hatch.glsl +18 -0
  371. package/src/assets/shaders/webgl2/include/Pack.glsl +51 -0
  372. package/src/assets/shaders/webgl2/include/Perlin.glsl +40 -0
  373. package/src/assets/shaders/webgl2/include/Shadow.glsl +324 -0
  374. package/src/assets/shaders/webgl2/include/Texture.glsl +623 -0
  375. package/src/bookmarks.js +33 -12
  376. package/src/dummy.js +1 -0
  377. package/src/example.html +8 -7
  378. package/src/examples.js +21 -3
  379. package/src/lib/ammojs/AmmoJS.js +58 -0
  380. package/src/lib/ammojs/Makefile +4 -0
  381. package/src/lib/ammojs/ammo.idl +72 -1
  382. package/src/lib/ammojs/ammo.js +25 -21
  383. package/src/lib/jpeg/jpeg.js +1019 -0
  384. package/src/lib/nurbs/extras/sample.js +137 -80
  385. package/src/locale/de.po +18 -73
  386. package/src/locale/fr.po +18 -74
  387. package/src/spinner.css +18 -6
  388. package/src/standard/Geospatial/Geodetic.js +43 -43
  389. package/src/standard/Geospatial/ReferenceEllipsoids.js +1 -1
  390. package/src/standard/Geospatial/UniversalTransverseMercator.js +42 -42
  391. package/src/standard/Math/Algorithm.js +22 -39
  392. package/src/standard/Math/Algorithms/Bezier.js +147 -0
  393. package/src/standard/Math/Algorithms/MergeSort.js +2 -2
  394. package/src/standard/Math/Algorithms/PartialSort.js +6 -6
  395. package/src/standard/Math/Algorithms/QuickSort.js +8 -6
  396. package/src/standard/Math/Algorithms/SAT.js +4 -8
  397. package/src/standard/Math/Algorithms/eigendecomposition.js +37 -33
  398. package/src/standard/Math/Geometry/Box2.js +84 -56
  399. package/src/standard/Math/Geometry/Box3.js +400 -358
  400. package/src/standard/Math/Geometry/Camera.js +19 -16
  401. package/src/standard/Math/Geometry/Cylinder3.js +13 -13
  402. package/src/standard/Math/Geometry/Line3.js +34 -34
  403. package/src/standard/Math/Geometry/Plane3.js +15 -15
  404. package/src/standard/Math/Geometry/Sphere3.js +122 -105
  405. package/src/standard/Math/Geometry/Spheroid3.js +1 -1
  406. package/src/standard/Math/Geometry/Triangle2.js +5 -5
  407. package/src/standard/Math/Geometry/Triangle3.js +12 -14
  408. package/src/standard/Math/Geometry/ViewVolume.js +303 -106
  409. package/src/standard/Math/Numbers/Color3.js +26 -23
  410. package/src/standard/Math/Numbers/Color4.js +9 -9
  411. package/src/standard/Math/Numbers/Complex.js +13 -17
  412. package/src/standard/Math/Numbers/Matrix2.js +20 -13
  413. package/src/standard/Math/Numbers/Matrix3.js +129 -205
  414. package/src/standard/Math/Numbers/Matrix4.js +136 -257
  415. package/src/standard/Math/Numbers/Quaternion.js +49 -138
  416. package/src/standard/Math/Numbers/Rotation4.js +42 -55
  417. package/src/standard/Math/Numbers/Vector2.js +32 -115
  418. package/src/standard/Math/Numbers/Vector3.js +46 -151
  419. package/src/standard/Math/Numbers/Vector4.js +44 -163
  420. package/src/standard/Math/Utility/BVH.js +21 -20
  421. package/src/standard/Math/Utility/MatrixStack.js +4 -4
  422. package/src/standard/Networking/BinaryTransport.js +8 -8
  423. package/src/standard/Time/MicroTime.js +81 -0
  424. package/src/standard/Utility/DataStorage.js +11 -14
  425. package/src/standard/Utility/MapUtilities.js +69 -0
  426. package/src/standard/Utility/ObjectCache.js +2 -3
  427. package/src/standard/Utility/Shuffle.js +5 -6
  428. package/src/tests.js +84 -5
  429. package/src/x_ite/Base/Events.js +9 -10
  430. package/src/x_ite/Base/X3DChildObject.js +20 -16
  431. package/src/x_ite/Base/X3DEventObject.js +3 -7
  432. package/src/x_ite/Base/X3DObject.js +44 -27
  433. package/src/x_ite/Basic/FieldDefinitionArray.js +11 -4
  434. package/src/x_ite/Basic/X3DBaseNode.js +427 -246
  435. package/src/x_ite/Basic/X3DField.js +48 -69
  436. package/src/x_ite/Basic/X3DFieldDefinition.js +0 -4
  437. package/src/x_ite/Basic/X3DObjectArrayField.js +102 -108
  438. package/src/x_ite/Basic/X3DTypedArrayField.js +194 -163
  439. package/src/x_ite/Bits/TraverseType.js +2 -5
  440. package/src/x_ite/Bits/X3DConstants.js +11 -2
  441. package/src/x_ite/Browser/Core/BrowserOptions.js +89 -68
  442. package/src/x_ite/Browser/Core/BrowserTimings.js +21 -29
  443. package/src/x_ite/Browser/Core/ContextMenu.js +139 -60
  444. package/src/x_ite/Browser/Core/Notification.js +3 -3
  445. package/src/x_ite/Browser/Core/PrimitiveQuality.js +3 -7
  446. package/src/x_ite/Browser/Core/Shading.js +3 -7
  447. package/src/x_ite/Browser/Core/TextureQuality.js +3 -7
  448. package/src/x_ite/Browser/Core/X3DCoreContext.js +398 -58
  449. package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +714 -0
  450. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +17 -28
  451. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +5 -14
  452. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +81 -28
  453. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +53 -44
  454. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +51 -12
  455. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -9
  456. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +98 -0
  457. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +14 -206
  458. package/src/x_ite/Browser/Layout/ScreenText.js +226 -254
  459. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +13 -11
  460. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +15 -9
  461. package/src/x_ite/Browser/NURBS/NURBS.js +84 -72
  462. package/src/x_ite/Browser/Navigation/ExamineViewer.js +125 -83
  463. package/src/x_ite/Browser/Navigation/FlyViewer.js +14 -9
  464. package/src/x_ite/Browser/Navigation/LookAtViewer.js +60 -40
  465. package/src/x_ite/Browser/Navigation/NoneViewer.js +12 -1
  466. package/src/x_ite/Browser/Navigation/PlaneViewer.js +39 -20
  467. package/src/x_ite/Browser/Navigation/WalkViewer.js +21 -6
  468. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +110 -85
  469. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +11 -6
  470. package/src/x_ite/Browser/Navigation/X3DViewer.js +73 -48
  471. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +18 -24
  472. package/src/x_ite/Browser/Networking/urls.js +31 -16
  473. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +5 -6
  474. package/src/x_ite/Browser/Picking/IntersectionType.js +63 -0
  475. package/src/x_ite/Browser/Picking/MatchCriterion.js +64 -0
  476. package/src/x_ite/Browser/Picking/SortOrder.js +65 -0
  477. package/src/x_ite/Browser/Picking/VolumePicker.js +197 -0
  478. package/src/x_ite/Browser/Picking/X3DPickingContext.js +130 -0
  479. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +26 -20
  480. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +17 -10
  481. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +38 -27
  482. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +70 -0
  483. package/src/x_ite/Browser/Shaders/Shader.js +112 -92
  484. package/src/x_ite/Browser/Shaders/ShaderSource.js +140 -0
  485. package/src/x_ite/Browser/Shaders/ShaderTest.js +92 -77
  486. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +134 -74
  487. package/src/x_ite/Browser/Shape/AlphaMode.js +65 -0
  488. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
  489. package/src/x_ite/Browser/Shape/X3DShapeContext.js +108 -4
  490. package/src/x_ite/Browser/Text/PolygonText.js +153 -170
  491. package/src/x_ite/Browser/Text/TextAlignment.js +3 -7
  492. package/src/x_ite/Browser/Text/X3DTextContext.js +38 -30
  493. package/src/x_ite/Browser/Text/X3DTextGeometry.js +49 -74
  494. package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +64 -0
  495. package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +81 -0
  496. package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +65 -0
  497. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +73 -0
  498. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +147 -45
  499. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1126 -0
  500. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +686 -0
  501. package/src/x_ite/Browser/Time/X3DTimeContext.js +20 -17
  502. package/src/x_ite/Browser/VERSION.js +1 -1
  503. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +120 -0
  504. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +28 -0
  505. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +114 -0
  506. package/src/x_ite/Browser/X3DBrowser.js +282 -224
  507. package/src/x_ite/Browser/X3DBrowserContext.js +60 -27
  508. package/src/x_ite/Components/Annotation/AnnotationLayer.js +108 -0
  509. package/src/x_ite/Components/Annotation/AnnotationTarget.js +101 -0
  510. package/src/x_ite/Components/Annotation/GroupAnnotation.js +112 -0
  511. package/src/x_ite/Components/Annotation/IconAnnotation.js +110 -0
  512. package/src/x_ite/Components/Annotation/TextAnnotation.js +102 -0
  513. package/src/x_ite/Components/Annotation/URLAnnotation.js +101 -0
  514. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +76 -0
  515. package/src/x_ite/Components/CADGeometry/CADAssembly.js +4 -4
  516. package/src/x_ite/Components/CADGeometry/CADFace.js +135 -30
  517. package/src/x_ite/Components/CADGeometry/CADLayer.js +3 -18
  518. package/src/x_ite/Components/CADGeometry/CADPart.js +4 -8
  519. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +18 -10
  520. package/src/x_ite/Components/Core/WorldInfo.js +16 -6
  521. package/src/x_ite/Components/Core/X3DBindableNode.js +4 -33
  522. package/src/x_ite/Components/Core/X3DChildNode.js +14 -1
  523. package/src/x_ite/Components/Core/X3DNode.js +0 -63
  524. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +128 -168
  525. package/src/x_ite/Components/Core.js +6 -9
  526. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +38 -46
  527. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +31 -30
  528. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +42 -57
  529. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +36 -48
  530. package/src/x_ite/Components/DIS/EspduTransform.js +12 -6
  531. package/src/x_ite/Components/DIS/ReceiverPdu.js +12 -6
  532. package/src/x_ite/Components/DIS/SignalPdu.js +12 -6
  533. package/src/x_ite/Components/DIS/TransmitterPdu.js +12 -6
  534. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +5 -16
  535. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +55 -3
  536. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +3 -5
  537. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +116 -116
  538. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +5 -6
  539. package/src/x_ite/Components/EnvironmentalEffects.js +6 -9
  540. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +116 -117
  541. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +169 -49
  542. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +31 -27
  543. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +12 -5
  544. package/src/x_ite/Components/EnvironmentalSensor.js +6 -9
  545. package/src/x_ite/Components/Followers/ColorChaser.js +1 -3
  546. package/src/x_ite/Components/Followers/ColorDamper.js +1 -3
  547. package/src/x_ite/Components/Followers/CoordinateChaser.js +1 -7
  548. package/src/x_ite/Components/Followers/CoordinateDamper.js +0 -6
  549. package/src/x_ite/Components/Followers/OrientationChaser.js +7 -3
  550. package/src/x_ite/Components/Followers/OrientationDamper.js +7 -3
  551. package/src/x_ite/Components/Followers/PositionChaser.js +1 -3
  552. package/src/x_ite/Components/Followers/PositionChaser2D.js +1 -3
  553. package/src/x_ite/Components/Followers/PositionDamper.js +1 -3
  554. package/src/x_ite/Components/Followers/PositionDamper2D.js +1 -3
  555. package/src/x_ite/Components/Followers/ScalarChaser.js +1 -3
  556. package/src/x_ite/Components/Followers/ScalarDamper.js +1 -3
  557. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +1 -7
  558. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +1 -7
  559. package/src/x_ite/Components/Followers/X3DChaserNode.js +20 -18
  560. package/src/x_ite/Components/Followers/X3DDamperNode.js +5 -7
  561. package/src/x_ite/Components/Followers/X3DFollowerNode.js +5 -7
  562. package/src/x_ite/Components/Followers.js +6 -9
  563. package/src/x_ite/Components/Geometry2D/Arc2D.js +10 -14
  564. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +87 -86
  565. package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -3
  566. package/src/x_ite/Components/Geometry2D/Disk2D.js +43 -58
  567. package/src/x_ite/Components/Geometry2D/Polyline2D.js +4 -8
  568. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +3 -5
  569. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +20 -16
  570. package/src/x_ite/Components/Geometry3D/Cone.js +1 -3
  571. package/src/x_ite/Components/Geometry3D/Cylinder.js +3 -5
  572. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +35 -17
  573. package/src/x_ite/Components/Geometry3D/Extrusion.js +125 -107
  574. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +164 -142
  575. package/src/x_ite/Components/Geometry3D/Sphere.js +3 -5
  576. package/src/x_ite/Components/Geometry3D.js +6 -9
  577. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -7
  578. package/src/x_ite/Components/Geospatial/GeoLOD.js +207 -124
  579. package/src/x_ite/Components/Geospatial/GeoLocation.js +6 -6
  580. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +5 -3
  581. package/src/x_ite/Components/Geospatial/GeoTransform.js +9 -9
  582. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +27 -27
  583. package/src/x_ite/Components/Grouping/Group.js +3 -3
  584. package/src/x_ite/Components/Grouping/StaticGroup.js +49 -56
  585. package/src/x_ite/Components/Grouping/Switch.js +171 -21
  586. package/src/x_ite/Components/Grouping/Transform.js +3 -3
  587. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +68 -15
  588. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +339 -180
  589. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +51 -25
  590. package/src/x_ite/Components/Grouping/X3DTransformNode.js +2 -4
  591. package/src/x_ite/Components/Grouping.js +6 -9
  592. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimDisplacer.js +4 -4
  593. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimHumanoid.js +24 -14
  594. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimJoint.js +44 -20
  595. package/src/x_ite/Components/HAnim/HAnimMotion.js +113 -0
  596. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSegment.js +6 -4
  597. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSite.js +4 -4
  598. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +8 -7
  599. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +4 -3
  600. package/src/x_ite/Components/Interpolation.js +6 -9
  601. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +1 -3
  602. package/src/x_ite/Components/Layering/Layer.js +12 -2
  603. package/src/x_ite/Components/Layering/LayerSet.js +4 -6
  604. package/src/x_ite/Components/Layering/Viewport.js +8 -8
  605. package/src/x_ite/Components/Layering/X3DLayerNode.js +67 -62
  606. package/src/x_ite/Components/Layering.js +6 -9
  607. package/src/x_ite/Components/Layout/LayoutGroup.js +18 -15
  608. package/src/x_ite/Components/Layout/LayoutLayer.js +10 -5
  609. package/src/x_ite/Components/Layout/ScreenFontStyle.js +12 -14
  610. package/src/x_ite/Components/Layout/ScreenGroup.js +25 -31
  611. package/src/x_ite/Components/Lighting/DirectionalLight.js +27 -22
  612. package/src/x_ite/Components/Lighting/PointLight.js +26 -29
  613. package/src/x_ite/Components/Lighting/SpotLight.js +29 -24
  614. package/src/x_ite/Components/Lighting/X3DLightNode.js +85 -66
  615. package/src/x_ite/Components/Lighting.js +6 -9
  616. package/src/x_ite/Components/NURBS/Contour2D.js +45 -1
  617. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +53 -25
  618. package/src/x_ite/Components/NURBS/NurbsCurve.js +21 -24
  619. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +44 -25
  620. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +19 -21
  621. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +18 -20
  622. package/src/x_ite/Components/NURBS/NurbsSet.js +17 -6
  623. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +2 -2
  624. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +2 -2
  625. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +15 -16
  626. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +38 -1
  627. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +116 -43
  628. package/src/x_ite/Components/Navigation/Billboard.js +12 -11
  629. package/src/x_ite/Components/Navigation/Collision.js +10 -8
  630. package/src/x_ite/Components/Navigation/LOD.js +207 -59
  631. package/src/x_ite/Components/Navigation/NavigationInfo.js +29 -43
  632. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +99 -18
  633. package/src/x_ite/Components/Navigation/Viewpoint.js +15 -15
  634. package/src/x_ite/Components/Navigation/ViewpointGroup.js +12 -5
  635. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +137 -148
  636. package/src/x_ite/Components/Navigation.js +6 -9
  637. package/src/x_ite/Components/Networking/Anchor.js +22 -24
  638. package/src/x_ite/Components/Networking/Inline.js +63 -44
  639. package/src/x_ite/Components/Networking/X3DUrlObject.js +88 -8
  640. package/src/x_ite/Components/Networking.js +6 -9
  641. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +2 -2
  642. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +215 -199
  643. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +44 -39
  644. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +48 -46
  645. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +121 -117
  646. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +21 -18
  647. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +20 -22
  648. package/src/x_ite/Components/Picking/LinePickSensor.js +251 -6
  649. package/src/x_ite/Components/Picking/PickableGroup.js +120 -7
  650. package/src/x_ite/Components/Picking/PointPickSensor.js +260 -8
  651. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +174 -4
  652. package/src/x_ite/Components/Picking/VolumePickSensor.js +150 -4
  653. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +377 -4
  654. package/src/x_ite/Components/Picking/X3DPickableObject.js +21 -1
  655. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +26 -11
  656. package/src/x_ite/Components/PointingDeviceSensor.js +6 -9
  657. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +282 -0
  658. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +227 -0
  659. package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +217 -0
  660. package/src/x_ite/Components/Rendering/ClipPlane.js +8 -10
  661. package/src/x_ite/Components/Rendering/Color.js +22 -13
  662. package/src/x_ite/Components/Rendering/ColorRGBA.js +28 -16
  663. package/src/x_ite/Components/Rendering/IndexedLineSet.js +52 -33
  664. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +17 -14
  665. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +9 -4
  666. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +17 -17
  667. package/src/x_ite/Components/Rendering/LineSet.js +44 -27
  668. package/src/x_ite/Components/Rendering/Normal.js +20 -4
  669. package/src/x_ite/Components/Rendering/PointSet.js +38 -16
  670. package/src/x_ite/Components/Rendering/TriangleFanSet.js +7 -9
  671. package/src/x_ite/Components/Rendering/TriangleStripSet.js +6 -8
  672. package/src/x_ite/Components/Rendering/X3DColorNode.js +16 -1
  673. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +80 -55
  674. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +11 -13
  675. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +622 -477
  676. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +159 -90
  677. package/src/x_ite/Components/Rendering.js +6 -9
  678. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +8 -10
  679. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +142 -26
  680. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +312 -128
  681. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +91 -7
  682. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +189 -4
  683. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +82 -4
  684. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
  685. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +49 -37
  686. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +45 -39
  687. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +41 -34
  688. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +25 -20
  689. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +8 -10
  690. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +15 -16
  691. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +2 -4
  692. package/src/x_ite/Components/Scripting/Script.js +147 -101
  693. package/src/x_ite/Components/Scripting/X3DScriptNode.js +2 -4
  694. package/src/x_ite/Components/Shaders/ComposedShader.js +17 -19
  695. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +9 -3
  696. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +10 -3
  697. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +10 -3
  698. package/src/x_ite/Components/Shaders/PackagedShader.js +18 -14
  699. package/src/x_ite/Components/Shaders/ShaderPart.js +30 -18
  700. package/src/x_ite/Components/Shaders/ShaderProgram.js +15 -11
  701. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +681 -558
  702. package/src/x_ite/Components/Shaders/X3DShaderNode.js +48 -12
  703. package/src/x_ite/Components/Shaders.js +15 -18
  704. package/src/x_ite/Components/Shape/Appearance.js +153 -77
  705. package/src/x_ite/Components/Shape/FillProperties.js +63 -4
  706. package/src/x_ite/Components/Shape/LineProperties.js +27 -5
  707. package/src/x_ite/Components/Shape/Material.js +48 -62
  708. package/src/x_ite/Components/Shape/PointProperties.js +162 -0
  709. package/src/x_ite/Components/Shape/Shape.js +86 -39
  710. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +53 -59
  711. package/src/x_ite/Components/Shape/UnlitMaterial.js +109 -0
  712. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +9 -6
  713. package/src/x_ite/Components/Shape/X3DMaterialNode.js +16 -3
  714. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +111 -0
  715. package/src/x_ite/Components/Shape/X3DShapeNode.js +41 -17
  716. package/src/x_ite/Components/Shape.js +22 -16
  717. package/src/x_ite/Components/Sound/AudioClip.js +36 -50
  718. package/src/x_ite/Components/Sound/Sound.js +36 -36
  719. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +18 -6
  720. package/src/x_ite/Components/Sound.js +6 -9
  721. package/src/x_ite/Components/Text/FontStyle.js +10 -12
  722. package/src/x_ite/Components/Text/Text.js +6 -6
  723. package/src/x_ite/Components/Text/X3DFontStyleNode.js +56 -87
  724. package/src/x_ite/Components/Text.js +6 -9
  725. package/src/x_ite/Components/Texturing/ImageTexture.js +48 -63
  726. package/src/x_ite/Components/Texturing/MovieTexture.js +42 -56
  727. package/src/x_ite/Components/Texturing/MultiTexture.js +236 -11
  728. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +73 -6
  729. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +45 -4
  730. package/src/x_ite/Components/Texturing/PixelTexture.js +45 -11
  731. package/src/x_ite/Components/Texturing/TextureCoordinate.js +32 -17
  732. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +68 -8
  733. package/src/x_ite/Components/Texturing/TextureProperties.js +96 -65
  734. package/src/x_ite/Components/Texturing/TextureTransform.js +55 -47
  735. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +91 -0
  736. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +183 -0
  737. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +77 -0
  738. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +42 -95
  739. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +209 -0
  740. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +3 -17
  741. package/src/x_ite/Components/Texturing/X3DTextureNode.js +6 -67
  742. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +4 -11
  743. package/src/x_ite/Components/Texturing.js +31 -25
  744. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +88 -4
  745. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +105 -13
  746. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +124 -4
  747. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +35 -18
  748. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +35 -18
  749. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +41 -31
  750. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +18 -11
  751. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +110 -6
  752. package/src/x_ite/Components/Time/TimeSensor.js +23 -19
  753. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +11 -7
  754. package/src/x_ite/Components/Time.js +6 -9
  755. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +309 -8
  756. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +58 -4
  757. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +217 -6
  758. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +132 -3
  759. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +86 -5
  760. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +309 -11
  761. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +85 -3
  762. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +134 -2
  763. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +222 -9
  764. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +191 -8
  765. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +85 -6
  766. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +95 -5
  767. package/src/x_ite/Components/VolumeRendering/VolumeData.js +153 -8
  768. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +155 -3
  769. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +62 -0
  770. package/src/x_ite/Components/X_ITE/BlendMode.js +51 -51
  771. package/src/x_ite/Components.js +11 -16
  772. package/src/x_ite/Configuration/ComponentInfo.js +12 -6
  773. package/src/x_ite/Configuration/ComponentInfoArray.js +4 -7
  774. package/src/x_ite/Configuration/ProfileInfo.js +10 -6
  775. package/src/x_ite/Configuration/SupportedComponents.js +66 -40
  776. package/src/x_ite/Configuration/SupportedNodes.js +22 -6
  777. package/src/x_ite/Configuration/SupportedProfiles.js +91 -89
  778. package/src/x_ite/Configuration/UnitInfo.js +12 -2
  779. package/src/x_ite/Configuration/X3DInfoArray.js +37 -18
  780. package/src/x_ite/Execution/BindableList.js +63 -38
  781. package/src/x_ite/Execution/BindableStack.js +63 -71
  782. package/src/x_ite/Execution/ExportedNode.js +25 -2
  783. package/src/x_ite/Execution/ImportedNode.js +122 -39
  784. package/src/x_ite/Execution/Scene.js +22 -14
  785. package/src/x_ite/Execution/World.js +22 -19
  786. package/src/x_ite/Execution/X3DExecutionContext.js +381 -221
  787. package/src/x_ite/Execution/X3DScene.js +213 -53
  788. package/src/x_ite/{Error.js → Fallback.js} +26 -29
  789. package/src/x_ite/Fields/ArrayFields.js +176 -57
  790. package/src/x_ite/Fields/SFBool.js +6 -5
  791. package/src/x_ite/Fields/SFColor.js +24 -21
  792. package/src/x_ite/Fields/SFColorRGBA.js +23 -23
  793. package/src/x_ite/Fields/SFDouble.js +6 -5
  794. package/src/x_ite/Fields/SFFloat.js +7 -6
  795. package/src/x_ite/Fields/SFImage.js +37 -36
  796. package/src/x_ite/Fields/SFInt32.js +5 -4
  797. package/src/x_ite/Fields/SFMatrix3.js +19 -15
  798. package/src/x_ite/Fields/SFMatrix4.js +19 -15
  799. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +10 -2
  800. package/src/x_ite/Fields/SFNode.js +105 -53
  801. package/src/x_ite/Fields/SFNodeCache.js +93 -0
  802. package/src/x_ite/Fields/SFRotation.js +31 -27
  803. package/src/x_ite/Fields/SFString.js +9 -8
  804. package/src/x_ite/Fields/SFTime.js +6 -5
  805. package/src/x_ite/Fields/SFVec2.js +17 -13
  806. package/src/x_ite/Fields/SFVec3.js +21 -17
  807. package/src/x_ite/Fields/SFVec4.js +24 -20
  808. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +8 -4
  809. package/src/x_ite/Fields.js +2 -6
  810. package/src/x_ite/InputOutput/FileLoader.js +174 -190
  811. package/src/x_ite/InputOutput/Generator.js +133 -104
  812. package/src/x_ite/Parser/HTMLSupport.js +3 -596
  813. package/src/x_ite/Parser/JSONParser.js +348 -245
  814. package/src/x_ite/Parser/Parser.js +314 -303
  815. package/src/x_ite/Parser/X3DParser.js +41 -20
  816. package/src/x_ite/Parser/XMLParser.js +178 -60
  817. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +17 -0
  818. package/src/x_ite/Prototype/ProtoDeclarationArray.js +17 -0
  819. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +104 -44
  820. package/src/x_ite/Prototype/X3DProtoDeclaration.js +111 -42
  821. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +16 -14
  822. package/src/x_ite/Rendering/DependentRenderer.js +7 -9
  823. package/src/x_ite/Rendering/TextureBuffer.js +24 -19
  824. package/src/x_ite/Rendering/X3DRenderObject.js +455 -428
  825. package/src/x_ite/Routing/RouteArray.js +34 -11
  826. package/src/x_ite/Routing/X3DRoute.js +60 -60
  827. package/src/x_ite/Routing/X3DRoutingContext.js +6 -6
  828. package/src/x_ite/X3D.js +30 -37
  829. package/src/x_ite.config.js +40 -5
  830. package/src/x_ite.css +165 -45
  831. package/src/x_ite.html +49 -29
  832. package/src/x_ite.js +86 -25
  833. package/x_ite.min.html +49 -22
  834. package/.bzrignore +0 -3
  835. package/AUTHORS.md +0 -6
  836. package/STYLE_GUIDE.md +0 -51
  837. package/X_ITE.sln +0 -54
  838. package/X_ITE.userprefs +0 -14
  839. package/build/build.mdproj +0 -47
  840. package/build/cad-geometry.build.js +0 -15
  841. package/build/geospatial.build.js +0 -15
  842. package/build/h-anim.build.js +0 -15
  843. package/build/nurbs.build.js +0 -15
  844. package/build/particle-systems.build.js +0 -15
  845. package/build/parts/cad-geometry.end.frag +0 -2
  846. package/build/parts/cad-geometry.start.frag +0 -6
  847. package/build/parts/geospatial.end.frag +0 -2
  848. package/build/parts/geospatial.start.frag +0 -6
  849. package/build/parts/h-anim.end.frag +0 -2
  850. package/build/parts/h-anim.start.frag +0 -6
  851. package/build/parts/nurbs.end.frag +0 -2
  852. package/build/parts/nurbs.start.frag +0 -6
  853. package/build/parts/particle-systems.end.frag +0 -2
  854. package/build/parts/particle-systems.start.frag +0 -6
  855. package/build/parts/rigid-body-physics.end.frag +0 -2
  856. package/build/parts/rigid-body-physics.start.frag +0 -6
  857. package/build/parts/texturing-3d.end.frag +0 -2
  858. package/build/parts/texturing-3d.start.frag +0 -6
  859. package/build/parts/x_ite.end.frag +0 -9
  860. package/build/parts/x_ite.start.frag +0 -6
  861. package/build/rigid-body-physics.build.js +0 -15
  862. package/build/texturing-3d.build.js +0 -15
  863. package/dist/components/README +0 -3
  864. package/dist/components/cad-geometry.min.js +0 -1
  865. package/dist/components/geospatial.min.js +0 -2
  866. package/dist/components/h-anim.min.js +0 -1
  867. package/dist/components/nurbs.min.js +0 -2
  868. package/dist/components/particle-systems.min.js +0 -2
  869. package/dist/components/rigid-body-physics.js +0 -3761
  870. package/dist/components/rigid-body-physics.min.js +0 -56
  871. package/dist/components/texturing-3d.min.js +0 -1
  872. package/dist/dist.mdproj +0 -61
  873. package/dist/images/logo.128.png +0 -0
  874. package/fonts/fonts.mdproj +0 -29
  875. package/meta/meta.mdproj +0 -35
  876. package/src/components/cad-geometry.config.js +0 -56
  877. package/src/components/geospatial.config.js +0 -56
  878. package/src/components/h-anim.config.js +0 -56
  879. package/src/components/nurbs.config.js +0 -61
  880. package/src/components/particle-systems.config.js +0 -56
  881. package/src/components/rigid-body-physics.config.js +0 -61
  882. package/src/components/texturing-3d.config.js +0 -56
  883. package/src/images/logo.128.png +0 -0
  884. package/src/locale/de.mo +0 -0
  885. package/src/locale/fr.mo +0 -0
  886. package/src/src.mdproj +0 -698
  887. package/src/standard/Networking/URI.js +0 -785
  888. package/src/test.x3d +0 -225
  889. package/src/x_ite/Browser/Shaders/Background.fs +0 -31
  890. package/src/x_ite/Browser/Shaders/Background.vs +0 -23
  891. package/src/x_ite/Browser/Shaders/Depth.fs +0 -32
  892. package/src/x_ite/Browser/Shaders/Depth.vs +0 -21
  893. package/src/x_ite/Browser/Shaders/Gouraud.fs +0 -135
  894. package/src/x_ite/Browser/Shaders/Gouraud.vs +0 -145
  895. package/src/x_ite/Browser/Shaders/Phong.fs +0 -269
  896. package/src/x_ite/Browser/Shaders/Phong.vs +0 -47
  897. package/src/x_ite/Browser/Shaders/PointSet.fs +0 -86
  898. package/src/x_ite/Browser/Shaders/Types.h +0 -55
  899. package/src/x_ite/Browser/Shaders/Wireframe.fs +0 -82
  900. package/src/x_ite/Browser/Shaders/Wireframe.vs +0 -61
  901. package/src/x_ite/Components/DIS.js +0 -91
  902. package/src/x_ite/Components/Picking.js +0 -94
  903. package/src/x_ite/Components/VolumeRendering.js +0 -121
@@ -0,0 +1,823 @@
1
+ (function (globalModule, globalRequire)
2
+ {
3
+
4
+ if (typeof __filename === "undefined")
5
+ {
6
+ globalModule = undefined;
7
+ globalRequire = undefined;
8
+ }
9
+
10
+ // Undefine global variables.
11
+ var module = { }, exports, process;
12
+
13
+ const
14
+ define = X3D .define,
15
+ require = X3D .require;
16
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
17
+ *******************************************************************************
18
+ *
19
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
20
+ *
21
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
22
+ *
23
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
24
+ *
25
+ * The copyright notice above does not evidence any actual of intended
26
+ * publication of such source code, and is an unpublished work by create3000.
27
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
28
+ * create3000.
29
+ *
30
+ * No permission is granted to copy, distribute, or create derivative works from
31
+ * the contents of this software, in whole or in part, without the prior written
32
+ * permission of create3000.
33
+ *
34
+ * NON-MILITARY USE ONLY
35
+ *
36
+ * All create3000 software are effectively free software with a non-military use
37
+ * restriction. It is free. Well commented source is provided. You may reuse the
38
+ * source in any way you please with the exception anything that uses it must be
39
+ * marked to indicate is contains 'non-military use only' components.
40
+ *
41
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
42
+ *
43
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
44
+ *
45
+ * This file is part of the X_ITE Project.
46
+ *
47
+ * X_ITE is free software: you can redistribute it and/or modify it under the
48
+ * terms of the GNU General Public License version 3 only, as published by the
49
+ * Free Software Foundation.
50
+ *
51
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
52
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
53
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
54
+ * details (a copy is included in the LICENSE file that accompanied this code).
55
+ *
56
+ * You should have received a copy of the GNU General Public License version 3
57
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
58
+ * copy of the GPLv3 License.
59
+ *
60
+ * For Silvio, Joy and Adi.
61
+ *
62
+ ******************************************************************************/
63
+
64
+
65
+ define ('x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode',[
66
+ "x_ite/Components/Core/X3DChildNode",
67
+ "x_ite/Bits/X3DConstants",
68
+ "x_ite/Bits/X3DCast",
69
+ "standard/Math/Numbers/Vector3",
70
+ "standard/Math/Numbers/Rotation4",
71
+ "standard/Math/Numbers/Matrix4",
72
+ ],
73
+ function (X3DChildNode,
74
+ X3DConstants,
75
+ X3DCast,
76
+ Vector3,
77
+ Rotation4,
78
+ Matrix4)
79
+ {
80
+ "use strict";
81
+
82
+ function X3DTextureProjectorNode (executionContext)
83
+ {
84
+ X3DChildNode .call (this, executionContext);
85
+
86
+ this .addType (X3DConstants .X3DTextureProjectorNode);
87
+
88
+ this .location_ .setUnit ("length");
89
+ this .farDistance_ .setUnit ("length");
90
+ this .location_ .setUnit ("length");
91
+ }
92
+
93
+ X3DTextureProjectorNode .prototype = Object .assign (Object .create (X3DChildNode .prototype),
94
+ {
95
+ constructor: X3DTextureProjectorNode,
96
+ initialize: function ()
97
+ {
98
+ X3DChildNode .prototype .initialize .call (this);
99
+
100
+ this .on_ .addInterest ("set_on__", this);
101
+ this .texture_ .addInterest ("set_texture__", this);
102
+
103
+ this .set_texture__ ();
104
+ },
105
+ getGlobal: function ()
106
+ {
107
+ return this .global_ .getValue ();
108
+ },
109
+ getLocation: function ()
110
+ {
111
+ return this .location_ .getValue ();
112
+ },
113
+ getDirection: function ()
114
+ {
115
+ return this .direction_ .getValue ();
116
+ },
117
+ getNearDistance: function ()
118
+ {
119
+ return this .nearDistance_ .getValue ();
120
+ },
121
+ getFarDistance: function ()
122
+ {
123
+ return this .farDistance_ .getValue ();
124
+ },
125
+ getTexture: function ()
126
+ {
127
+ return this .textureNode;
128
+ },
129
+ getBiasMatrix: (function ()
130
+ {
131
+ // Transforms normalized coords from range (-1, 1) to (0, 1).
132
+ var biasMatrix = new Matrix4 (0.5, 0.0, 0.0, 0.0,
133
+ 0.0, 0.5, 0.0, 0.0,
134
+ 0.0, 0.0, 0.5, 0.0,
135
+ 0.5, 0.5, 0.5, 1.0);
136
+
137
+ return function ()
138
+ {
139
+ return biasMatrix;
140
+ };
141
+ })(),
142
+ straightenHorizon: (function ()
143
+ {
144
+ var
145
+ localXAxis = new Vector3 (0, 0, 0),
146
+ localZAxis = new Vector3 (0, 0, 0),
147
+ upVector = new Vector3 (0, 0, 0),
148
+ rotation = new Rotation4 (0, 0, 1, 0);
149
+
150
+ return function (orientation)
151
+ {
152
+ orientation .multVecRot (localXAxis .assign (Vector3 .xAxis) .negate ());
153
+ orientation .multVecRot (localZAxis .assign (Vector3 .zAxis));
154
+ upVector .assign (this .upVector_ .getValue ()) .normalize ();
155
+
156
+ var vector = localZAxis .cross (upVector);
157
+
158
+ // If viewer looks along the up vector.
159
+ if (Math .abs (localZAxis .dot (upVector)) >= 1)
160
+ return orientation;
161
+
162
+ if (Math .abs (vector .dot (localXAxis)) >= 1)
163
+ return orientation;
164
+
165
+ rotation .setFromToVec (localXAxis, vector);
166
+
167
+ return orientation .multRight (rotation);
168
+ };
169
+ })(),
170
+ set_on__: function ()
171
+ {
172
+ if (this .on_ .getValue () && this .textureNode && this .getBrowser () .getProjectiveTextureMapping ())
173
+ {
174
+ delete this .push;
175
+ delete this .pop;
176
+ }
177
+ else
178
+ {
179
+ this .push = Function .prototype;
180
+ this .pop = Function .prototype;
181
+ }
182
+ },
183
+ set_texture__: function ()
184
+ {
185
+ if (this .textureNode)
186
+ this .textureNode .removeInterest ("set_aspectRatio__", this);
187
+
188
+ this .textureNode = X3DCast (X3DConstants .X3DTexture2DNode, this .texture_);
189
+
190
+ if (this .textureNode)
191
+ this .textureNode .addInterest ("set_aspectRatio__", this);
192
+
193
+ this .set_aspectRatio__ ();
194
+ this .set_on__ ();
195
+ },
196
+ set_aspectRatio__: function ()
197
+ {
198
+ if (this .textureNode)
199
+ this .aspectRatio_ = this .textureNode .getWidth () / this .textureNode .getHeight ();
200
+ else
201
+ this .aspectRatio_ = 0;
202
+ },
203
+ push: function (renderObject)
204
+ {
205
+ var textureProjectorContainer = this .getTextureProjectors () .pop ();
206
+
207
+ textureProjectorContainer .set (renderObject .getBrowser (),
208
+ this,
209
+ renderObject .getModelViewMatrix () .get ());
210
+
211
+ if (this .global_ .getValue ())
212
+ {
213
+ renderObject .getGlobalObjects () .push (textureProjectorContainer);
214
+ renderObject .getTextureProjectors () .push (textureProjectorContainer);
215
+ }
216
+ else
217
+ {
218
+ renderObject .getLocalObjects () .push (textureProjectorContainer);
219
+ renderObject .getTextureProjectors () .push (textureProjectorContainer);
220
+ }
221
+ },
222
+ pop: function (renderObject)
223
+ {
224
+ if (this .global_ .getValue ())
225
+ return;
226
+
227
+ renderObject .getLocalObjects () .pop ();
228
+ },
229
+ });
230
+
231
+ return X3DTextureProjectorNode;
232
+ });
233
+
234
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
235
+ *******************************************************************************
236
+ *
237
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
238
+ *
239
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
240
+ *
241
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
242
+ *
243
+ * The copyright notice above does not evidence any actual of intended
244
+ * publication of such source code, and is an unpublished work by create3000.
245
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
246
+ * create3000.
247
+ *
248
+ * No permission is granted to copy, distribute, or create derivative works from
249
+ * the contents of this software, in whole or in part, without the prior written
250
+ * permission of create3000.
251
+ *
252
+ * NON-MILITARY USE ONLY
253
+ *
254
+ * All create3000 software are effectively free software with a non-military use
255
+ * restriction. It is free. Well commented source is provided. You may reuse the
256
+ * source in any way you please with the exception anything that uses it must be
257
+ * marked to indicate is contains 'non-military use only' components.
258
+ *
259
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
260
+ *
261
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
262
+ *
263
+ * This file is part of the X_ITE Project.
264
+ *
265
+ * X_ITE is free software: you can redistribute it and/or modify it under the
266
+ * terms of the GNU General Public License version 3 only, as published by the
267
+ * Free Software Foundation.
268
+ *
269
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
270
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
271
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
272
+ * details (a copy is included in the LICENSE file that accompanied this code).
273
+ *
274
+ * You should have received a copy of the GNU General Public License version 3
275
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
276
+ * copy of the GPLv3 License.
277
+ *
278
+ * For Silvio, Joy and Adi.
279
+ *
280
+ ******************************************************************************/
281
+
282
+
283
+ define ('x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective',[
284
+ "x_ite/Fields",
285
+ "x_ite/Basic/X3DFieldDefinition",
286
+ "x_ite/Basic/FieldDefinitionArray",
287
+ "x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode",
288
+ "x_ite/Bits/X3DConstants",
289
+ "standard/Math/Geometry/Camera",
290
+ "standard/Math/Numbers/Vector3",
291
+ "standard/Math/Numbers/Rotation4",
292
+ "standard/Math/Numbers/Matrix4",
293
+ "standard/Utility/ObjectCache",
294
+ ],
295
+ function (Fields,
296
+ X3DFieldDefinition,
297
+ FieldDefinitionArray,
298
+ X3DTextureProjectorNode,
299
+ X3DConstants,
300
+ Camera,
301
+ Vector3,
302
+ Rotation4,
303
+ Matrix4,
304
+ ObjectCache)
305
+ {
306
+ "use strict";
307
+
308
+ var TextureProjectorPerspectiveCache = ObjectCache (TextureProjectorPerspectiveContainer);
309
+
310
+ function TextureProjectorPerspectiveContainer ()
311
+ {
312
+ this .projectionMatrix = new Matrix4 ();
313
+ this .modelViewMatrix = new Matrix4 ();
314
+ this .modelMatrix = new Matrix4 ();
315
+ this .invTextureSpaceMatrix = new Matrix4 ();
316
+ this .invTextureSpaceProjectionMatrix = new Matrix4 ();
317
+ this .location = new Vector3 (0, 0, 0);
318
+ this .locationArray = new Float32Array (3);
319
+ this .direction = new Vector3 (0, 0, 0);
320
+ this .rotation = new Rotation4 ();
321
+ this .projectiveTextureMatrix = new Matrix4 ();
322
+ this .projectiveTextureMatrixArray = new Float32Array (16);
323
+ }
324
+
325
+ TextureProjectorPerspectiveContainer .prototype =
326
+ {
327
+ constructor: TextureProjectorPerspectiveContainer,
328
+ set: function (browser, textureProjectorNode, modelViewMatrix)
329
+ {
330
+ this .browser = browser;
331
+ this .textureProjectorNode = textureProjectorNode;
332
+
333
+ this .modelViewMatrix .assign (modelViewMatrix);
334
+ },
335
+ getModelViewMatrix: function ()
336
+ {
337
+ return this .modelViewMatrix;
338
+ },
339
+ setGlobalVariables: function (renderObject)
340
+ {
341
+ try
342
+ {
343
+ var
344
+ textureProjectorNode = this .textureProjectorNode,
345
+ cameraSpaceMatrix = renderObject .getCameraSpaceMatrix () .get (),
346
+ modelMatrix = this .modelMatrix .assign (this .modelViewMatrix) .multRight (cameraSpaceMatrix),
347
+ invTextureSpaceMatrix = this .invTextureSpaceMatrix .assign (textureProjectorNode .getGlobal () ? modelMatrix : Matrix4 .Identity);
348
+
349
+ this .rotation .setFromToVec (Vector3 .zAxis, this .direction .assign (textureProjectorNode .getDirection ()) .negate ());
350
+ textureProjectorNode .straightenHorizon (this .rotation);
351
+
352
+ invTextureSpaceMatrix .translate (textureProjectorNode .getLocation ());
353
+ invTextureSpaceMatrix .rotate (this .rotation);
354
+ invTextureSpaceMatrix .inverse ();
355
+
356
+ var
357
+ width = textureProjectorNode .getTexture () .getWidth (),
358
+ height = textureProjectorNode .getTexture () .getHeight (),
359
+ nearDistance = textureProjectorNode .getNearDistance (),
360
+ farDistance = textureProjectorNode .getFarDistance (),
361
+ fieldOfView = textureProjectorNode .getFieldOfView ();
362
+
363
+ Camera .perspective (fieldOfView, nearDistance, farDistance, width, height, this .projectionMatrix);
364
+
365
+ if (! textureProjectorNode .getGlobal ())
366
+ invTextureSpaceMatrix .multLeft (modelMatrix .inverse ());
367
+
368
+ this .invTextureSpaceProjectionMatrix .assign (invTextureSpaceMatrix) .multRight (this .projectionMatrix) .multRight (textureProjectorNode .getBiasMatrix ());
369
+
370
+ this .projectiveTextureMatrix .assign (cameraSpaceMatrix) .multRight (this .invTextureSpaceProjectionMatrix);
371
+ this .projectiveTextureMatrixArray .set (this .projectiveTextureMatrix);
372
+
373
+ this .modelViewMatrix .multVecMatrix (this .location .assign (textureProjectorNode .location_ .getValue ()));
374
+ this .locationArray .set (this .location);
375
+ }
376
+ catch (error)
377
+ {
378
+ console .log (error);
379
+ }
380
+ },
381
+ setShaderUniforms: function (gl, shaderObject)
382
+ {
383
+ var i = shaderObject .numProjectiveTextures ++;
384
+
385
+ if (shaderObject .hasTextureProjector (i, this))
386
+ return;
387
+
388
+ var
389
+ textureProjectorNode = this .textureProjectorNode,
390
+ texture = textureProjectorNode .getTexture ();
391
+
392
+ gl .activeTexture (gl .TEXTURE0 + this .browser .getProjectiveTextureUnits () [i]);
393
+ gl .bindTexture (gl .TEXTURE_2D, texture .getTexture ());
394
+ gl .activeTexture (gl .TEXTURE0);
395
+
396
+ gl .uniformMatrix4fv (shaderObject .x3d_ProjectiveTextureMatrix [i], false, this .projectiveTextureMatrixArray);
397
+ gl .uniform3fv (shaderObject .x3d_ProjectiveTextureLocation [i], this .locationArray);
398
+ },
399
+ dispose: function ()
400
+ {
401
+ TextureProjectorPerspectiveCache .push (this);
402
+ },
403
+ };
404
+
405
+ function TextureProjectorPerspective (executionContext)
406
+ {
407
+ X3DTextureProjectorNode .call (this, executionContext);
408
+
409
+ this .addType (X3DConstants .TextureProjectorPerspective);
410
+
411
+ this .fieldOfView_ .setUnit ("angle");
412
+ }
413
+
414
+ TextureProjectorPerspective .prototype = Object .assign (Object .create (X3DTextureProjectorNode .prototype),
415
+ {
416
+ constructor: TextureProjectorPerspective,
417
+ fieldDefinitions: new FieldDefinitionArray ([
418
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
419
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
420
+ new X3DFieldDefinition (X3DConstants .inputOutput, "on", new Fields .SFBool (true)),
421
+ new X3DFieldDefinition (X3DConstants .inputOutput, "global", new Fields .SFBool (true)),
422
+ new X3DFieldDefinition (X3DConstants .inputOutput, "location", new Fields .SFVec3f (0, 0, 1)),
423
+ new X3DFieldDefinition (X3DConstants .inputOutput, "direction", new Fields .SFVec3f (0, 0, 1)),
424
+ new X3DFieldDefinition (X3DConstants .inputOutput, "upVector", new Fields .SFVec3f (0, 0, 1)),
425
+ new X3DFieldDefinition (X3DConstants .inputOutput, "fieldOfView" , new Fields .SFFloat (0.7854)),
426
+ new X3DFieldDefinition (X3DConstants .inputOutput, "nearDistance", new Fields .SFFloat (1)),
427
+ new X3DFieldDefinition (X3DConstants .inputOutput, "farDistance", new Fields .SFFloat (10)),
428
+ new X3DFieldDefinition (X3DConstants .outputOnly, "aspectRatio", new Fields .SFFloat ()),
429
+ new X3DFieldDefinition (X3DConstants .inputOutput, "texture", new Fields .SFNode ()),
430
+ ]),
431
+ getTypeName: function ()
432
+ {
433
+ return "TextureProjectorPerspective";
434
+ },
435
+ getComponentName: function ()
436
+ {
437
+ return "ProjectiveTextureMapping";
438
+ },
439
+ getContainerField: function ()
440
+ {
441
+ return "children";
442
+ },
443
+ initialize: function ()
444
+ {
445
+ X3DTextureProjectorNode .prototype .initialize .call (this);
446
+ },
447
+ getFieldOfView: function ()
448
+ {
449
+ var fov = this .fieldOfView_ .getValue ();
450
+
451
+ return fov > 0 && fov < Math .PI ? fov : Math .PI / 4;
452
+ },
453
+ getTextureProjectors: function ()
454
+ {
455
+ return TextureProjectorPerspectiveCache;
456
+ },
457
+ });
458
+
459
+ return TextureProjectorPerspective;
460
+ });
461
+
462
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
463
+ *******************************************************************************
464
+ *
465
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
466
+ *
467
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
468
+ *
469
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
470
+ *
471
+ * The copyright notice above does not evidence any actual of intended
472
+ * publication of such source code, and is an unpublished work by create3000.
473
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
474
+ * create3000.
475
+ *
476
+ * No permission is granted to copy, distribute, or create derivative works from
477
+ * the contents of this software, in whole or in part, without the prior written
478
+ * permission of create3000.
479
+ *
480
+ * NON-MILITARY USE ONLY
481
+ *
482
+ * All create3000 software are effectively free software with a non-military use
483
+ * restriction. It is free. Well commented source is provided. You may reuse the
484
+ * source in any way you please with the exception anything that uses it must be
485
+ * marked to indicate is contains 'non-military use only' components.
486
+ *
487
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
488
+ *
489
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
490
+ *
491
+ * This file is part of the X_ITE Project.
492
+ *
493
+ * X_ITE is free software: you can redistribute it and/or modify it under the
494
+ * terms of the GNU General Public License version 3 only, as published by the
495
+ * Free Software Foundation.
496
+ *
497
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
498
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
499
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
500
+ * details (a copy is included in the LICENSE file that accompanied this code).
501
+ *
502
+ * You should have received a copy of the GNU General Public License version 3
503
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
504
+ * copy of the GPLv3 License.
505
+ *
506
+ * For Silvio, Joy and Adi.
507
+ *
508
+ ******************************************************************************/
509
+
510
+
511
+ define ('x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel',[
512
+ "x_ite/Fields",
513
+ "x_ite/Basic/X3DFieldDefinition",
514
+ "x_ite/Basic/FieldDefinitionArray",
515
+ "x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode",
516
+ "x_ite/Bits/X3DConstants",
517
+ "standard/Math/Geometry/Camera",
518
+ "standard/Math/Numbers/Vector3",
519
+ "standard/Math/Numbers/Rotation4",
520
+ "standard/Math/Numbers/Matrix4",
521
+ "standard/Utility/ObjectCache",
522
+ ],
523
+ function (Fields,
524
+ X3DFieldDefinition,
525
+ FieldDefinitionArray,
526
+ X3DTextureProjectorNode,
527
+ X3DConstants,
528
+ Camera,
529
+ Vector3,
530
+ Rotation4,
531
+ Matrix4,
532
+ ObjectCache)
533
+ {
534
+ "use strict";
535
+
536
+ var TextureProjectorParallelCache = ObjectCache (TextureProjectorParallelContainer);
537
+
538
+ function TextureProjectorParallelContainer ()
539
+ {
540
+ this .projectionMatrix = new Matrix4 ();
541
+ this .modelViewMatrix = new Matrix4 ();
542
+ this .modelMatrix = new Matrix4 ();
543
+ this .invTextureSpaceMatrix = new Matrix4 ();
544
+ this .location = new Vector3 (0, 0, 0);
545
+ this .locationArray = new Float32Array (3);
546
+ this .invTextureSpaceProjectionMatrix = new Matrix4 ();
547
+ this .direction = new Vector3 (0, 0, 0);
548
+ this .rotation = new Rotation4 ();
549
+ this .projectiveTextureMatrix = new Matrix4 ();
550
+ this .projectiveTextureMatrixArray = new Float32Array (16);
551
+ }
552
+
553
+ TextureProjectorParallelContainer .prototype =
554
+ {
555
+ constructor: TextureProjectorParallelContainer,
556
+ set: function (browser, textureProjectorNode, modelViewMatrix)
557
+ {
558
+ this .browser = browser;
559
+ this .textureProjectorNode = textureProjectorNode;
560
+
561
+ this .modelViewMatrix .assign (modelViewMatrix);
562
+ },
563
+ getModelViewMatrix: function ()
564
+ {
565
+ return this .modelViewMatrix;
566
+ },
567
+ setGlobalVariables: function (renderObject)
568
+ {
569
+ try
570
+ {
571
+ var
572
+ textureProjectorNode = this .textureProjectorNode,
573
+ cameraSpaceMatrix = renderObject .getCameraSpaceMatrix () .get (),
574
+ modelMatrix = this .modelMatrix .assign (this .modelViewMatrix) .multRight (cameraSpaceMatrix),
575
+ invTextureSpaceMatrix = this .invTextureSpaceMatrix .assign (textureProjectorNode .getGlobal () ? modelMatrix : Matrix4 .Identity);
576
+
577
+ this .rotation .setFromToVec (Vector3 .zAxis, this .direction .assign (textureProjectorNode .getDirection ()) .negate ());
578
+ textureProjectorNode .straightenHorizon (this .rotation);
579
+
580
+ invTextureSpaceMatrix .translate (textureProjectorNode .getLocation ());
581
+ invTextureSpaceMatrix .rotate (this .rotation);
582
+ invTextureSpaceMatrix .inverse ();
583
+
584
+ var
585
+ width = textureProjectorNode .getTexture () .getWidth (),
586
+ height = textureProjectorNode .getTexture () .getHeight (),
587
+ aspect = width / height,
588
+ minimumX = textureProjectorNode .getMinimumX (),
589
+ maximumX = textureProjectorNode .getMaximumX (),
590
+ minimumY = textureProjectorNode .getMinimumY (),
591
+ maximumY = textureProjectorNode .getMaximumY (),
592
+ sizeX = textureProjectorNode .getSizeX (),
593
+ sizeY = textureProjectorNode .getSizeY (),
594
+ nearDistance = textureProjectorNode .getNearDistance (),
595
+ farDistance = textureProjectorNode .getFarDistance ();
596
+
597
+ if (aspect > sizeX / sizeY)
598
+ {
599
+ var
600
+ center = (minimumX + maximumX) / 2,
601
+ size1_2 = (sizeY * aspect) / 2;
602
+
603
+ Camera .ortho (center - size1_2, center + size1_2, minimumY, maximumY, nearDistance, farDistance, this .projectionMatrix);
604
+ }
605
+ else
606
+ {
607
+ var
608
+ center = (minimumY + maximumY) / 2,
609
+ size1_2 = (sizeX / aspect) / 2;
610
+
611
+ Camera .ortho (minimumX, maximumX, center - size1_2, center + size1_2, nearDistance, farDistance, this .projectionMatrix);
612
+ }
613
+
614
+ if (! textureProjectorNode .getGlobal ())
615
+ invTextureSpaceMatrix .multLeft (modelMatrix .inverse ());
616
+
617
+ this .invTextureSpaceProjectionMatrix .assign (invTextureSpaceMatrix) .multRight (this .projectionMatrix) .multRight (textureProjectorNode .getBiasMatrix ());
618
+
619
+ this .projectiveTextureMatrix .assign (cameraSpaceMatrix) .multRight (this .invTextureSpaceProjectionMatrix);
620
+ this .projectiveTextureMatrixArray .set (this .projectiveTextureMatrix);
621
+
622
+ this .modelViewMatrix .multVecMatrix (this .location .assign (textureProjectorNode .location_ .getValue ()));
623
+ this .locationArray .set (this .location);
624
+ }
625
+ catch (error)
626
+ {
627
+ console .log (error);
628
+ }
629
+ },
630
+ setShaderUniforms: function (gl, shaderObject)
631
+ {
632
+ var i = shaderObject .numProjectiveTextures ++;
633
+
634
+ if (shaderObject .hasTextureProjector (i, this))
635
+ return;
636
+
637
+ var
638
+ textureProjectorNode = this .textureProjectorNode,
639
+ texture = textureProjectorNode .getTexture ();
640
+
641
+ gl .activeTexture (gl .TEXTURE0 + this .browser .getProjectiveTextureUnits () [i]);
642
+ gl .bindTexture (gl .TEXTURE_2D, texture .getTexture ());
643
+ gl .activeTexture (gl .TEXTURE0);
644
+
645
+ gl .uniformMatrix4fv (shaderObject .x3d_ProjectiveTextureMatrix [i], false, this .projectiveTextureMatrixArray);
646
+ gl .uniform3fv (shaderObject .x3d_ProjectiveTextureLocation [i], this .locationArray);
647
+ },
648
+ dispose: function ()
649
+ {
650
+ TextureProjectorParallelCache .push (this);
651
+ },
652
+ };
653
+
654
+ function TextureProjectorParallel (executionContext)
655
+ {
656
+ X3DTextureProjectorNode .call (this, executionContext);
657
+
658
+ this .addType (X3DConstants .TextureProjectorParallel);
659
+
660
+ this .fieldOfView_ .setUnit ("length");
661
+ }
662
+
663
+ TextureProjectorParallel .prototype = Object .assign (Object .create (X3DTextureProjectorNode .prototype),
664
+ {
665
+ constructor: TextureProjectorParallel,
666
+ fieldDefinitions: new FieldDefinitionArray ([
667
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
668
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
669
+ new X3DFieldDefinition (X3DConstants .inputOutput, "on", new Fields .SFBool (true)),
670
+ new X3DFieldDefinition (X3DConstants .inputOutput, "global", new Fields .SFBool (true)),
671
+ new X3DFieldDefinition (X3DConstants .inputOutput, "location", new Fields .SFVec3f (0, 0, 1)),
672
+ new X3DFieldDefinition (X3DConstants .inputOutput, "direction", new Fields .SFVec3f (0, 0, 1)),
673
+ new X3DFieldDefinition (X3DConstants .inputOutput, "upVector", new Fields .SFVec3f (0, 0, 1)),
674
+ new X3DFieldDefinition (X3DConstants .inputOutput, "fieldOfView" , new Fields .MFFloat (-1, -1, 1, 1)),
675
+ new X3DFieldDefinition (X3DConstants .inputOutput, "nearDistance", new Fields .SFFloat (1)),
676
+ new X3DFieldDefinition (X3DConstants .inputOutput, "farDistance", new Fields .SFFloat (10)),
677
+ new X3DFieldDefinition (X3DConstants .outputOnly, "aspectRatio", new Fields .SFFloat ()),
678
+ new X3DFieldDefinition (X3DConstants .inputOutput, "texture", new Fields .SFNode ()),
679
+ ]),
680
+ getTypeName: function ()
681
+ {
682
+ return "TextureProjectorParallel";
683
+ },
684
+ getComponentName: function ()
685
+ {
686
+ return "ProjectiveTextureMapping";
687
+ },
688
+ getContainerField: function ()
689
+ {
690
+ return "children";
691
+ },
692
+ initialize: function ()
693
+ {
694
+ X3DTextureProjectorNode .prototype .initialize .call (this);
695
+
696
+ this .fieldOfView_ .addInterest ("set_fieldOfView___", this);
697
+
698
+ this .set_fieldOfView___ ();
699
+ },
700
+ getMinimumX: function ()
701
+ {
702
+ return this .minimumX;
703
+ },
704
+ getMinimumY: function ()
705
+ {
706
+ return this .minimumY;
707
+ },
708
+ getMaximumX: function ()
709
+ {
710
+ return this .maximumX;
711
+ },
712
+ getMaximumY: function ()
713
+ {
714
+ return this .maximumY;
715
+ },
716
+ getSizeX: function ()
717
+ {
718
+ return this .sizeX;
719
+ },
720
+ getSizeY: function ()
721
+ {
722
+ return this .sizeY;
723
+ },
724
+ getTextureProjectors: function ()
725
+ {
726
+ return TextureProjectorParallelCache;
727
+ },
728
+ set_fieldOfView___: function ()
729
+ {
730
+ var length = this .fieldOfView_ .length;
731
+
732
+ this .minimumX = (length > 0 ? this .fieldOfView_ [0] : -1);
733
+ this .minimumY = (length > 1 ? this .fieldOfView_ [1] : -1);
734
+ this .maximumX = (length > 2 ? this .fieldOfView_ [2] : 1);
735
+ this .maximumY = (length > 3 ? this .fieldOfView_ [3] : 1);
736
+
737
+ this .sizeX = this .maximumX - this .minimumX;
738
+ this .sizeY = this .maximumY - this .minimumY;
739
+ },
740
+ });
741
+
742
+ return TextureProjectorParallel;
743
+ });
744
+
745
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
746
+ *******************************************************************************
747
+ *
748
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
749
+ *
750
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
751
+ *
752
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
753
+ *
754
+ * The copyright notice above does not evidence any actual of intended
755
+ * publication of such source code, and is an unpublished work by create3000.
756
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
757
+ * create3000.
758
+ *
759
+ * No permission is granted to copy, distribute, or create derivative works from
760
+ * the contents of this software, in whole or in part, without the prior written
761
+ * permission of create3000.
762
+ *
763
+ * NON-MILITARY USE ONLY
764
+ *
765
+ * All create3000 software are effectively free software with a non-military use
766
+ * restriction. It is free. Well commented source is provided. You may reuse the
767
+ * source in any way you please with the exception anything that uses it must be
768
+ * marked to indicate is contains 'non-military use only' components.
769
+ *
770
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
771
+ *
772
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
773
+ *
774
+ * This file is part of the X_ITE Project.
775
+ *
776
+ * X_ITE is free software: you can redistribute it and/or modify it under the
777
+ * terms of the GNU General Public License version 3 only, as published by the
778
+ * Free Software Foundation.
779
+ *
780
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
781
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
782
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
783
+ * details (a copy is included in the LICENSE file that accompanied this code).
784
+ *
785
+ * You should have received a copy of the GNU General Public License version 3
786
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
787
+ * copy of the GPLv3 License.
788
+ *
789
+ * For Silvio, Joy and Adi.
790
+ *
791
+ ******************************************************************************/
792
+
793
+
794
+ define (require .getComponentUrl ("projective-texture-mapping"), [
795
+ "x_ite/Components",
796
+ "x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective",
797
+ "x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel",
798
+ "x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode",
799
+ ],
800
+ function (Components,
801
+ TextureProjectorPerspective,
802
+ TextureProjectorParallel,
803
+ X3DTextureProjectorNode)
804
+ {
805
+ "use strict";
806
+
807
+ Components .addComponent ({
808
+ name: "ProjectiveTextureMapping",
809
+ types:
810
+ {
811
+ TextureProjectorPerspective: TextureProjectorPerspective,
812
+ TextureProjectorParallel: TextureProjectorParallel,
813
+ },
814
+ abstractTypes:
815
+ {
816
+ X3DTextureProjectorNode: X3DTextureProjectorNode,
817
+ },
818
+ });
819
+ });
820
+
821
+
822
+ })
823
+ (typeof module === "object" ? module : undefined, typeof require === "function" ? require : undefined);