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
@@ -1,15 +0,0 @@
1
-
2
- ({
3
- baseUrl: "../src",
4
- name: "components/rigid-body-physics",
5
- out: "../dist/components/rigid-body-physics.js",
6
- optimize: "none",
7
- mainConfigFile: "../src/components/rigid-body-physics.config.js",
8
- exclude: [
9
- "x_ite"
10
- ],
11
- wrap: {
12
- startFile: "parts/rigid-body-physics.start.frag",
13
- endFile: "parts/rigid-body-physics.end.frag"
14
- },
15
- })
@@ -1,15 +0,0 @@
1
-
2
- ({
3
- baseUrl: "../src",
4
- name: "components/texturing-3d",
5
- out: "../dist/components/texturing-3d.js",
6
- optimize: "none",
7
- mainConfigFile: "../src/components/texturing-3d.config.js",
8
- exclude: [
9
- "x_ite"
10
- ],
11
- wrap: {
12
- startFile: "parts/texturing-3d.start.frag",
13
- endFile: "parts/texturing-3d.end.frag"
14
- },
15
- })
@@ -1,3 +0,0 @@
1
- The components in this folder are included
2
- automatically depending on the profile and components
3
- statements in the X3D file.
@@ -1 +0,0 @@
1
- (function(){var e=X3D.define,t=X3D.require;e("x_ite/Components/CADGeometry/X3DProductStructureChildNode",["x_ite/Components/Core/X3DChildNode","x_ite/Bits/X3DConstants"],function(e,t){"use strict";function n(n){e.call(this,n);this.addType(t.X3DProductStructureChildNode)}n.prototype=Object.assign(Object.create(e.prototype),{constructor:n});return n});e("x_ite/Components/CADGeometry/CADAssembly",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Components/CADGeometry/X3DProductStructureChildNode","x_ite/Bits/X3DConstants"],function(e,t,n,i,o,r){"use strict";function u(e){i.call(this,e);o.call(this,e);this.addType(r.CADAssembly)}u.prototype=Object.assign(Object.create(i.prototype),{constructor:u,fieldDefinitions:new n([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"name",new e.SFString),new t(r.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(r.initializeOnly,"bboxCenter",new e.SFVec3f),new t(r.inputOnly,"addChildren",new e.MFNode),new t(r.inputOnly,"removeChildren",new e.MFNode),new t(r.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"CADAssembly"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"children"}});return u});e("x_ite/Components/CADGeometry/CADFace",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/CADGeometry/X3DProductStructureChildNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Bits/X3DCast","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3"],function(e,t,n,i,o,r,u){"use strict";function a(e){i.call(this,e);o.call(this,e);this.addType(u.CADFace);this.shapeNode=null}a.prototype=Object.assign(Object.create(i.prototype),o.prototype,{constructor:a,fieldDefinitions:new n([new t(u.inputOutput,"metadata",new e.SFNode),new t(u.inputOutput,"name",new e.SFString),new t(u.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(u.initializeOnly,"bboxCenter",new e.SFVec3f),new t(u.inputOutput,"shape",new e.SFNode)]),getTypeName:function(){return"CADFace"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this);o.prototype.initialize.call(this);this.shape_.addInterest("set_shape__",this);this.set_shape__()},getBBox:function(e){if(this.bboxSize_.getValue().equals(this.defaultBBoxSize)){var t=r(u.X3DBoundedObject,this.shape_);if(t)return t.getBBox(e);return e.set()}return e.set(this.bboxSize_.getValue(),this.bboxCenter_.getValue())},set_shape__:function(){if(this.shapeNode)this.shapeNode.isCameraObject_.removeFieldInterest(this.isCameraObject_);this.shapeNode=null;try{var e=this.shape_.getValue().getInnerNode(),t=e.getType();for(var n=t.length-1;n>=0;--n){switch(t[n]){case u.LOD:case u.Transform:case u.X3DShapeNode:{e.isCameraObject_.addFieldInterest(this.isCameraObject_);this.setCameraObject(e.getCameraObject());this.shapeNode=e;break}default:continue}}}catch(e){}if(this.shapeNode)delete this.traverse;else this.traverse=Function.prototype},traverse:function(e,t){this.shapeNode.traverse(e,t)}});return a});e("x_ite/Components/CADGeometry/CADLayer",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Bits/X3DConstants"],function(e,t,n,i,o){"use strict";function r(e){i.call(this,e);this.addType(o.CADLayer)}r.prototype=Object.assign(Object.create(i.prototype),{constructor:r,fieldDefinitions:new n([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOutput,"name",new e.SFString),new t(o.inputOutput,"visible",new e.MFBool),new t(o.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(o.initializeOnly,"bboxCenter",new e.SFVec3f),new t(o.inputOnly,"addChildren",new e.MFNode),new t(o.inputOnly,"removeChildren",new e.MFNode),new t(o.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"CADLayer"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this);this.visible_.addInterest("set_children__",this)},getVisible:function(){return this.visible_},remove:function(){this.set_children__()}});return r});e("x_ite/Components/CADGeometry/CADPart",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DTransformNode","x_ite/Components/CADGeometry/X3DProductStructureChildNode","x_ite/Bits/X3DConstants"],function(e,t,n,i,o,r){"use strict";function u(e){i.call(this,e);o.call(this,e);this.addType(r.CADPart)}u.prototype=Object.assign(Object.create(i.prototype),{constructor:u,fieldDefinitions:new n([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"name",new e.SFString),new t(r.inputOutput,"translation",new e.SFVec3f),new t(r.inputOutput,"rotation",new e.SFRotation),new t(r.inputOutput,"scale",new e.SFVec3f(1,1,1)),new t(r.inputOutput,"scaleOrientation",new e.SFRotation),new t(r.inputOutput,"center",new e.SFVec3f),new t(r.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(r.initializeOnly,"bboxCenter",new e.SFVec3f),new t(r.inputOnly,"addChildren",new e.MFNode),new t(r.inputOnly,"removeChildren",new e.MFNode),new t(r.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"CADPart"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this)}});return u});e("x_ite/Components/CADGeometry/IndexedQuadSet",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DComposedGeometryNode","x_ite/Bits/X3DConstants"],function(e,t,n,i,o){"use strict";var r=[0,1,2,0,2,3];function u(e){i.call(this,e);this.addType(o.IndexedQuadSet)}u.prototype=Object.assign(Object.create(i.prototype),{constructor:u,fieldDefinitions:new n([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"solid",new e.SFBool(true)),new t(o.initializeOnly,"ccw",new e.SFBool(true)),new t(o.initializeOnly,"colorPerVertex",new e.SFBool(true)),new t(o.initializeOnly,"normalPerVertex",new e.SFBool(true)),new t(o.inputOutput,"index",new e.MFInt32),new t(o.inputOutput,"attrib",new e.MFNode),new t(o.inputOutput,"fogCoord",new e.SFNode),new t(o.inputOutput,"color",new e.SFNode),new t(o.inputOutput,"texCoord",new e.SFNode),new t(o.inputOutput,"normal",new e.SFNode),new t(o.inputOutput,"coord",new e.SFNode)]),getTypeName:function(){return"IndexedQuadSet"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"geometry"},getTriangleIndex:function(e){var t=e%6;return(e-t)/6*4+r[t]},getPolygonIndex:function(e){return this.index_[e]},build:function(){var e=this.index_.length;e-=e%4;i.prototype.build.call(this,4,e,6,e/4*6)}});return u});e("x_ite/Components/CADGeometry/QuadSet",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DComposedGeometryNode","x_ite/Bits/X3DConstants"],function(e,t,n,i,o){"use strict";var r=[0,1,2,0,2,3];function u(e){i.call(this,e);this.addType(o.QuadSet)}u.prototype=Object.assign(Object.create(i.prototype),{constructor:u,fieldDefinitions:new n([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"solid",new e.SFBool(true)),new t(o.initializeOnly,"ccw",new e.SFBool(true)),new t(o.initializeOnly,"colorPerVertex",new e.SFBool(true)),new t(o.initializeOnly,"normalPerVertex",new e.SFBool(true)),new t(o.inputOutput,"attrib",new e.MFNode),new t(o.inputOutput,"fogCoord",new e.SFNode),new t(o.inputOutput,"color",new e.SFNode),new t(o.inputOutput,"texCoord",new e.SFNode),new t(o.inputOutput,"normal",new e.SFNode),new t(o.inputOutput,"coord",new e.SFNode)]),getTypeName:function(){return"QuadSet"},getComponentName:function(){return"CADGeometry"},getContainerField:function(){return"geometry"},getTriangleIndex:function(e){var t=e%6;return(e-t)/6*4+r[t]},build:function(){if(!this.getCoord())return;var e=this.getCoord().getSize();e-=e%4;i.prototype.build.call(this,4,e,6,e/4*6)},createNormals:function(e,t){return this.createFaceNormals(e,t)}});return u});e(["x_ite/Components","x_ite/Components/CADGeometry/CADAssembly","x_ite/Components/CADGeometry/CADFace","x_ite/Components/CADGeometry/CADLayer","x_ite/Components/CADGeometry/CADPart","x_ite/Components/CADGeometry/IndexedQuadSet","x_ite/Components/CADGeometry/QuadSet","x_ite/Components/CADGeometry/X3DProductStructureChildNode"],function(e,t,n,i,o,r,u,a){"use strict";e.addComponent({name:"CADGeometry",types:{CADAssembly:t,CADFace:n,CADLayer:i,CADPart:o,IndexedQuadSet:r,QuadSet:u},abstractTypes:{X3DProductStructureChildNode:a}})})})();
@@ -1,2 +0,0 @@
1
- (function(){var e=X3D.define,t=X3D.require;e("standard/Math/Geometry/Spheroid3",[],function(){"use strict";function e(e,t){switch(arguments.length){case 0:this.semiMajorAxis=0;this.semiMinorAxis=0;break;case 2:this.semiMajorAxis=e;this.semiMinorAxis=t;break;case 3:var i=arguments[1];this.semiMajorAxis=e;this.semiMinorAxis=e*(1-1/i);break}}e.prototype={constructor:e,getSemiMajorAxis:function(){return this.semiMajorAxis},getSemiMinorAxis:function(){return this.semiMinorAxis},toString:function(){return this.semiMajorAxis+" "+this.semiMinorAxis}};return e});e("standard/Geospatial/ReferenceEllipsoids",["standard/Math/Geometry/Spheroid3"],function(e){"use strict";var t={AA:new e(6377563.396,299.3249646,true),AM:new e(6377340.189,299.3249646,true),AN:new e(6378160,298.25,true),BN:new e(6377483.865,299.1528128,true),BR:new e(6377397.155,299.1528128,true),CC:new e(6378206.4,294.9786982,true),CD:new e(6378249.145,293.465,true),EA:new e(6377276.345,300.8017,true),EB:new e(6377298.556,300.8017,true),EC:new e(6377301.243,300.8017,true),ED:new e(6377295.664,300.8017,true),EE:new e(6377304.063,300.8017,true),EF:new e(6377309.613,300.8017,true),FA:new e(6378155,298.3,true),HE:new e(6378200,298.3,true),HO:new e(6378270,297,true),ID:new e(6378160,298.247,true),IN:new e(6378388,297,true),KA:new e(6378245,298.3,true),RF:new e(6378137,298.257222101,true),SA:new e(6378160,298.25,true),WD:new e(6378135,298.26,true),WE:new e(6378137,298.257223563,true),SUN:new e(696342e3,1/9e-6,true),MERCURY:new e(2439700,2439700),VENUS:new e(6051800,6051800),MOON:new e(1738140,1735970),MARS:new e(3395428,3377678),JUPITER:new e(71492e3,66854e3),SATURN:new e(60268e3,54364e3),URANUS:new e(2555e3,24973e3),NEPTUNE:new e(24764e3,24341e3),PLUTO:new e(1153e3,1153e3)};return t});e("standard/Geospatial/Geodetic",["standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t){"use strict";var i=.001,n=1e-10,o=30;function r(e,t,i){this.longitudeFirst=!t;this.degrees=!i;this.a=e.getSemiMajorAxis();this.c=e.getSemiMinorAxis();this.c2a2=Math.pow(e.getSemiMinorAxis()/this.a,2);this.ecc2=1-this.c2a2}r.prototype={constructor:r,convert:function(e,t){var i=e.z;if(this.longitudeFirst){var n=e.y,o=e.x}else{var n=e.x,o=e.y}if(this.degrees){n*=Math.PI/180;o*=Math.PI/180}return this.convertRadians(n,o,i,t)},convertRadians:function(e,t,i,n){var o=Math.sin(e),r=Math.pow(o,2),s=Math.cos(e),a=this.a/Math.sqrt(1-this.ecc2*r),l=(a+i)*s;return n.set(l*Math.cos(t),l*Math.sin(t),(a*this.c2a2+i)*o)},apply:function(e,t){this.applyRadians(e,t);if(this.degrees){t.x*=180/Math.PI;t.y*=180/Math.PI}if(this.longitudeFirst){var i=t.x;t.x=t.y;t.y=i}return t},applyRadians:function(e,t){var r=e.x,s=e.y,a=e.z;var l=Math.sqrt(r*r+s*s);if(l==0)return t.set(Math.PI,0,a-this.c);var h=0,d=Math.atan2(s,r),u=0;var c=this.a,p=c,g=this.ecc2;for(var _=0;_<o;++_){var f=u,w=h;h=Math.atan(a/l/(1-g*p/(p+u)));var m=Math.sin(h);p=c/Math.sqrt(1-g*m*m);u=l/Math.cos(h)-p;if(Math.abs(u-f)<i&&Math.abs(h-w)<n)break}return t.set(h,d,u)},normal:function(e,t){var i=this.applyRadians(e,t);var n=i.x,o=i.y;var r=Math.cos(n);var s=Math.cos(o)*r,a=Math.sin(o)*r,l=Math.sin(n);return t.set(s,a,l)}};return r});e("standard/Geospatial/UniversalTransverseMercator",["standard/Geospatial/Geodetic","standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t,i){"use strict";var n=1e7,o=5e5,r=.9996;function s(t,n,o,s){var a=t.getSemiMajorAxis(),l=1-Math.pow(t.getSemiMinorAxis()/a,2),h=l/(1-l),d=(1-Math.sqrt(1-l))/(1+Math.sqrt(1-l));this.southernHemisphere=!o;this.eastingFirst=!s;this.a=a;this.ecc2=l;this.EE=h;this.E8=8*h;this.E9=9*h;this.E252=252*h;this.e1=d;this.A=r*(a*(1-l/4-3*l*l/64-5*l*l*l/256));this.B=3*d/2-7*d*d*d/32;this.C=21*d*d/16-55*d*d*d*d/32;this.D=151*d*d*d/96;this.E=a*(1-l);this.W=1-l/4-3*l*l/64-5*l*l*l/256;this.X=3*l/8+3*l*l/32+45*l*l*l/1024;this.Y=15*l*l/256+45*l*l*l/1024;this.Z=35*l*l*l/3072;this.longitude0=i.radians(n*6-183);this.geodeticConverter=new e(t,true,true)}s.prototype={constructor:s,convert:function(e,t){if(this.eastingFirst){var i=e.y,s=e.x}else{var i=e.x,s=e.y}var a=this.southernHemisphere;if(i<0){a=!this.southernHemisphere;i=-i}if(a)i-=n;s-=o;var l=i/this.A,h=l+this.B*Math.sin(2*l)+this.C*Math.sin(4*l)+this.D*Math.sin(6*l);var d=Math.pow(Math.sin(h),2),u=Math.cos(h),c=Math.tan(h);var p=this.a/Math.sqrt(1-this.ecc2*d),g=Math.pow(c,2),_=Math.pow(c,8),f=this.EE*g,w=f*f,m=this.E/Math.pow(1-this.ecc2*d,1.5),y=s/(p*r);var x=(5+3*g+10*f-4*w-this.E9)*Math.pow(y,4)/24,O=(61+90*g+298*f+45*_-this.E252-3*w)*Math.pow(y,6)/720,S=(5-2*f+28*g-3*w+this.E8+24*_)*Math.pow(y,5)/120;var v=h-p*c/m*(y*y/2-x+O),F=this.longitude0+(y-(1+2*g+f)*Math.pow(y,3)/6+S)/u;return this.geodeticConverter.convertRadians(v,F,e.z,t)},apply:function(e,t){var i=this.geodeticConverter.applyRadians(e,t),s=i.x,a=i.y;var l=Math.tan(s),h=Math.cos(s);var d=this.EE,u=this.a/Math.sqrt(1-this.ecc2*Math.pow(Math.sin(s),2)),c=l*l,p=c*c*c,g=d*h*h,_=h*(a-this.longitude0);var f=this.a*(this.W*s-this.X*Math.sin(2*s)+this.Y*Math.sin(4*s)-this.Z*Math.sin(6*s));var w=r*u*(_+(1-c+g)*Math.pow(_,3)/6+(5-18*p+72*g-58*d)*Math.pow(_,5)/120)+o;var m=r*(f+u*l*(_*_/2+(5-c+9*g+4*g*g)*Math.pow(_,4)/24+(61-58*p+600*g-330*d)*Math.pow(_,6)/720));if(s<0){m+=n;if(!this.southernHemisphere)m=-m}else{if(this.southernHemisphere)m=-m}if(this.eastingFirst)return t.set(w,m,i.z);return t.set(m,w,i.z)}};return s});e("x_ite/Browser/Geospatial/Geocentric",["standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t){"use strict";function i(){}i.prototype={constructor:i,convert:function(e,t){return t.assign(e)},apply:function(e,t){return t.assign(e)},slerp:function(e,i,n){var o=e.abs(),r=i.abs();e.normalize();i.normalize();return t.simpleSlerp(e,i,n).multiply(t.lerp(o,r,n))}};return i});e("x_ite/Browser/Geospatial/Geospatial",["standard/Geospatial/ReferenceEllipsoids","standard/Geospatial/Geodetic","standard/Geospatial/UniversalTransverseMercator","x_ite/Browser/Geospatial/Geocentric"],function(e,t,i,n){"use strict";var o=0,r=o++,s=o++,a=o++;var l={GD:r,GDC:r,UTM:s,GC:a,GCC:a,GS:a};var h=/^Z(\d+)$/;var d={GD:r,UTM:s,GC:a,getReferenceFrame:function(o,l){switch(this.getCoordinateSystem(o)){case r:{return new t(this.getEllipsoid(o),this.getLatitudeFirst(o),l)}case s:{return new i(this.getEllipsoid(o),this.getZone(o),this.getNorthernHemisphere(o),this.getNorthingFirst(o))}case a:{return new n}}return new t(e.WE,true,l)},getElevationFrame:function(e,i){return new t(this.getEllipsoid(e),true,i)},getCoordinateSystem:function(e){for(var t=0,i=e.length;t<i;++t){var n=l[e[t]];if(n!==undefined)return n}return r},getEllipsoid:function(t){for(var i=0,n=t.length;i<n;++i){var o=e[t[i]];if(o!==undefined)return o}return e.WE},getEllipsoidString:function(t){for(var i=0,n=t.length;i<n;++i){var o=e[t[i]];if(o!==undefined)return t[i]}return"WE"},isStandardOrder:function(e){switch(this.getCoordinateSystem(e)){case r:{return this.getLatitudeFirst(e)}case s:{return this.getNorthingFirst(e)}case a:{return true}}return this.getLatitudeFirst(e)},getLatitudeFirst:function(e){for(var t=0,i=e.length;t<i;++t){if(e[t]==="longitude_first")return false}return true},getNorthingFirst:function(e){for(var t=0,i=e.length;t<i;++t){if(e[t]==="easting_first")return false}return true},getZone:function(e){for(var t=0,i=e.length;t<i;++t){var n=e[t].match(h);if(n)return parseInt(n[1])}return 1},getNorthernHemisphere:function(e){for(var t=0,i=e.length;t<i;++t){if(e[t]==="S")return false}return true}};return d});e("x_ite/Components/Geospatial/X3DGeospatialObject",["x_ite/Bits/X3DConstants","x_ite/Browser/Geospatial/Geospatial","x_ite/Bits/X3DCast","standard/Math/Numbers/Vector3","standard/Math/Numbers/Matrix4"],function(e,t,i,n,o){"use strict";var r=new n(0,0,0),s=new n(0,0,0),a=new n(0,0,0),l=new n(0,0,0),h=new n(0,0,0),d=new n(0,0,0);function u(t){this.addType(e.X3DGeospatialObject);this.radians=false;this.origin=new n(0,0,0);this.originMatrix=new o;this.invOriginMatrix=new o}u.prototype={constructor:u,initialize:function(){this.geoSystem_.addInterest("set_geoSystem__",this);this.geoOrigin_.addInterest("set_geoOrigin__",this);this.set_geoSystem__();this.set_geoOrigin__()},set_geoSystem__:function(){this.coordinateSystem=t.getCoordinateSystem(this.geoSystem_);this.referenceFrame=t.getReferenceFrame(this.geoSystem_,this.radians);this.elevationFrame=t.getElevationFrame(this.geoSystem_,this.radians);this.standardOrder=t.isStandardOrder(this.geoSystem_)},set_geoOrigin__:function(){if(this.geoOriginNode){this.geoOriginNode.removeInterest("set_origin__",this);this.geoOriginNode.removeInterest("set_rotateYUp__",this);this.geoOriginNode.removeInterest("addNodeEvent",this)}this.geoOriginNode=i(e.GeoOrigin,this.geoOrigin_);if(this.geoOriginNode){this.geoOriginNode.addInterest("set_origin__",this);this.geoOriginNode.addInterest("set_rotateYUp__",this);this.geoOriginNode.addInterest("addNodeEvent",this)}this.set_origin__();this.set_rotateYUp__()},set_origin__:function(){if(this.geoOriginNode)this.geoOriginNode.getOrigin(this.origin);else this.origin.set(0,0,0);this.set_originMatrix__()},set_originMatrix__:function(){try{if(this.geoOriginNode){var e=this.origin;this.elevationFrame.normal(e,h);l.set(0,0,1).cross(h);if(l.equals(n.Zero))l.set(1,0,0);d.assign(l).cross(h);l.normalize();d.normalize();this.originMatrix.set(l.x,l.y,l.z,0,h.x,h.y,h.z,0,d.x,d.y,d.z,0,e.x,e.y,e.z,1);this.invOriginMatrix.assign(this.originMatrix).inverse()}}catch(e){}},set_rotateYUp__:function(){if(this.geoOriginNode&&this.geoOriginNode.rotateYUp_.getValue()){this.getCoord=c;this.getGeoCoord=p;this.getGeoUpVector=g;this.getLocationMatrix=_}else{delete this.getCoord;delete this.getGeoCoord;delete this.getGeoUpVector;delete this.getLocationMatrix}},getReferenceFrame:function(){return this.referenceFrame},getStandardOrder:function(){return this.standardOrder},getCoord:function(e,t){return this.referenceFrame.convert(e,t).subtract(this.origin)},getGeoCoord:function(e,t){return this.referenceFrame.apply(r.assign(e).add(this.origin),t)},getGeoElevation:function(e){return this.getGeoCoord(e,s).z},getGeoUpVector:function(e,t){return this.elevationFrame.normal(r.assign(e).add(this.origin),t)},getLocationMatrix:function(e,t){var i=this.origin,n=f.call(this,e,t);n[12]-=i.x;n[13]-=i.y;n[14]-=i.z;return n}};function c(e,t){return this.invOriginMatrix.multVecMatrix(this.referenceFrame.convert(e,t))}function p(e,t){return this.referenceFrame.apply(this.originMatrix.multVecMatrix(r.assign(e)),t)}function g(e,t){return this.invOriginMatrix.multDirMatrix(this.elevationFrame.normal(this.originMatrix.multVecMatrix(r.assign(e)),t))}function _(e,t){return f.call(this,e,t).multRight(this.invOriginMatrix)}function f(e,t){this.referenceFrame.convert(e,a);this.elevationFrame.normal(a,h);l.set(0,0,1).cross(h);if(l.equals(n.Zero))l.set(1,0,0);d.assign(l).cross(h);l.normalize();d.normalize();return t.set(l.x,l.y,l.z,0,h.x,h.y,h.z,0,d.x,d.y,d.z,0,a.x,a.y,a.z,1)}return u});e("x_ite/Components/Geospatial/GeoCoordinate",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DCoordinateNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","standard/Math/Geometry/Triangle3","standard/Math/Numbers/Vector3"],function(e,t,i,n,o,r,s,a){"use strict";function l(e){n.call(this,e);o.call(this,e);this.addType(r.GeoCoordinate)}l.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:l,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"geoOrigin",new e.SFNode),new t(r.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(r.inputOutput,"point",new e.MFVec3d)]),getTypeName:function(){return"GeoCoordinate"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"coord"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.point_.addInterest("set_point__",this);this.set_point__()},set_point__:function(){this.point=this.point_.getValue();this.length=this.point_.length},isEmpty:function(){return this.length===0},getSize:function(){return this.length},set1Point:function(){var e=new a(0,0,0);return function(t,i){this.point_[t]=this.getGeoCoord(i,e)}}(),get1Point:function(){var e=new a(0,0,0);return function(t,i){if(t<this.length){const n=this.point;t*=3;return this.getCoord(e.set(n[t],n[t+1],n[t+2]),i)}else{return i.set(0,0,0)}}}(),addPoint:function(){var e=new a(0,0,0),t=new a(0,0,0);return function(i,n){if(i<this.length){const o=this.point;i*=3;this.getCoord(e.set(o[i],o[i+1],o[i+2]),t);n.push(t[0],t[1],t[2],1)}else{n.push(0,0,0,1)}}}(),addPoints:function(){var e=new a(0,0,0),t=new a(0,0,0);return function(i,n){const o=this.point;for(var r=0,s=this.length*3;r<s;r+=3){this.getCoord(e.set(o[r],o[r+1],o[r+2]),t);i.push(t[0],t[1],t[2],1)}for(var r=s,s=n*3;r<s;r+=3)i.push(0,0,0,1)}}(),getNormal:function(){var e=new a(0,0,0),t=new a(0,0,0),i=new a(0,0,0);return function(n,o,r){var l=this.length;if(n<l&&o<l&&r<l){return s.normal(this.get1Point(n,e),this.get1Point(o,t),this.get1Point(r,i),new a(0,0,0))}return new a(0,0,0)}}(),getQuadNormal:function(){var e=new a(0,0,0),t=new a(0,0,0),i=new a(0,0,0),n=new a(0,0,0);return function(o,r,l,h){var d=this.length;if(o<d&&r<d&&l<d&&h<d){return s.quadNormal(this.get1Point(o,e),this.get1Point(r,t),this.get1Point(l,i),this.get1Point(h,n),new a(0,0,0))}return new a(0,0,0)}}()});return l});e("x_ite/Components/Geospatial/GeoElevationGrid",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","standard/Math/Geometry/Triangle3","standard/Math/Numbers/Vector2","standard/Math/Numbers/Vector3"],function(e,t,i,n,o,r,s,a,l,h){"use strict";function d(e){n.call(this,e);o.call(this,e);this.addType(r.GeoElevationGrid);this.creaseAngle_.setUnit("angle");this.height_.setUnit("length");this.colorNode=null;this.texCoordNode=null;this.normalNode=null}d.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:d,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"geoOrigin",new e.SFNode),new t(r.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(r.initializeOnly,"geoGridOrigin",new e.SFVec3d),new t(r.initializeOnly,"xDimension",new e.SFInt32),new t(r.initializeOnly,"zDimension",new e.SFInt32),new t(r.initializeOnly,"xSpacing",new e.SFDouble(1)),new t(r.initializeOnly,"zSpacing",new e.SFDouble(1)),new t(r.inputOutput,"yScale",new e.SFFloat(1)),new t(r.initializeOnly,"solid",new e.SFBool(true)),new t(r.initializeOnly,"ccw",new e.SFBool(true)),new t(r.initializeOnly,"creaseAngle",new e.SFDouble),new t(r.initializeOnly,"colorPerVertex",new e.SFBool(true)),new t(r.initializeOnly,"normalPerVertex",new e.SFBool(true)),new t(r.inputOutput,"color",new e.SFNode),new t(r.inputOutput,"texCoord",new e.SFNode),new t(r.inputOutput,"normal",new e.SFNode),new t(r.inputOutput,"height",new e.MFDouble(0,0))]),getTypeName:function(){return"GeoElevationGrid"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"geometry"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.color_.addInterest("set_color__",this);this.texCoord_.addInterest("set_texCoord__",this);this.normal_.addInterest("set_normal__",this);this.set_color__();this.set_texCoord__();this.set_normal__()},set_color__:function(){if(this.colorNode){this.colorNode.removeInterest("requestRebuild",this);this.colorNode.removeInterest("set_transparent__",this)}this.colorNode=s(r.X3DColorNode,this.color_);if(this.colorNode){this.colorNode.addInterest("requestRebuild",this);this.colorNode.addInterest("set_transparent__",this);this.set_transparent__()}else this.transparent_=false},set_transparent__:function(){this.transparent_=this.colorNode.isTransparent()},set_texCoord__:function(){if(this.texCoordNode)this.texCoordNode.removeInterest("requestRebuild",this);this.texCoordNode=s(r.X3DTextureCoordinateNode,this.texCoord_);if(this.texCoordNode)this.texCoordNode.addInterest("requestRebuild",this);this.setCurrentTexCoord(this.texCoordNode)},set_normal__:function(){if(this.normalNode)this.normalNode.removeInterest("requestRebuild",this);this.normalNode=s(r.X3DNormalNode,this.normal_);if(this.normalNode)this.normalNode.addInterest("requestRebuild",this)},getColor:function(){return this.colorNode},getTexCoord:function(){return this.texCoordNode},getNormal:function(){return this.normalNode},getHeight:function(e){if(e<this.height_.length)return this.height_[e]*this.yScale_.getValue();return 0},createTexCoords:function(){var e=[],t=this.xDimension_.getValue(),i=this.zDimension_.getValue(),n=t-1,o=i-1;for(var r=0;r<i;++r){for(var s=0;s<t;++s)e.push(new l(s/n,r/o))}return e},createNormals:function(e,t,i){var n=!this.ccw_.getValue(),o=[],r=[];for(var s=0;s<e.length;++s)o[s]=[];for(var l=0;l<t.length;l+=3){var d=t[l],u=t[l+1],c=t[l+2];o[d].push(r.length);o[u].push(r.length+1);o[c].push(r.length+2);var p=a.normal(e[d],e[u],e[c],new h(0,0,0));if(n)p.negate();r.push(p);r.push(p);r.push(p)}return this.refineNormals(o,r,this.creaseAngle_.getValue())},createCoordIndex:function(){var e=[],t=this.xDimension_.getValue(),i=this.zDimension_.getValue(),n=t-1,o=i-1;for(var r=0;r<o;++r){for(var s=0;s<n;++s){var a=r*t+s,l=(r+1)*t+s,h=(r+1)*t+(s+1),d=r*t+(s+1);e.push(a);e.push(h);e.push(l);e.push(a);e.push(d);e.push(h)}}return e},createPoints:function(){var e=[],t=this.xDimension_.getValue(),i=this.zDimension_.getValue(),n=this.xSpacing_.getValue(),o=this.zSpacing_.getValue();if(this.getStandardOrder()){for(var r=0;r<i;++r){for(var s=0;s<t;++s){var a=new h(o*r,n*s,this.getHeight(s+r*t));a.add(this.geoGridOrigin_.getValue());e.push(this.getCoord(a,a))}}}else{for(var r=0;r<i;++r){for(var s=0;s<t;++s){var a=new h(n*s,o*r,this.getHeight(s+r*t));a.add(this.geoGridOrigin_.getValue());e.push(this.getCoord(a,a))}}}return e},build:function(){if(this.xDimension_.getValue()<2||this.zDimension_.getValue()<2)return;var e=this.colorPerVertex_.getValue(),t=this.normalPerVertex_.getValue(),i=this.createCoordIndex(),n=this.getColor(),o=this.getTexCoord(),r=this.getNormal(),s=this.createPoints(),a=this.getColors(),l=this.getMultiTexCoords(),h=this.getNormals(),d=this.getVertices(),u=0;if(o){o.init(l)}else{var c=this.createTexCoords(),p=this.getTexCoords();l.push(p)}for(var g=0;g<i.length;++u){for(var _=0;_<6;++_,++g){var f=i[g],w=s[f];if(n){if(e)n.addColor(f,a);else n.addColor(u,a)}if(o){o.addTexCoord(f,l)}else{var m=c[f];p.push(m.x,m.y,0,1)}if(r){if(t)r.addVector(f,h);else r.addVector(u,h)}d.push(w.x,w.y,w.z,1)}}if(!r){var y=this.createNormals(s,i);for(var x=0;x<y.length;++x){var O=y[x];h.push(O.x,O.y,O.z)}}this.setSolid(this.solid_.getValue());this.setCCW(this.ccw_.getValue())}});return d});e("x_ite/Components/Geospatial/GeoLOD",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","x_ite/Bits/TraverseType","x_ite/Components/Grouping/Group","x_ite/Components/Networking/Inline","standard/Math/Numbers/Vector3","standard/Math/Numbers/Matrix4","standard/Math/Geometry/Box3"],function(e,t,i,n,o,r,s,a,l,h,d,u,c){"use strict";var p=new d(0,0,0);function g(e){n.call(this,e);o.call(this,e);r.call(this,e);this.addType(s.GeoLOD);this.range_.setUnit("length");this.rootGroup=new l(this.getBrowser().getPrivateScene());this.rootInline=new h(e);this.child1Inline=new h(e);this.child2Inline=new h(e);this.child3Inline=new h(e);this.child4Inline=new h(e);this.childrenLoaded=false;this.childBBox=new c;this.keepCurrentLevel=false;this.modelViewMatrix=new u}g.prototype=Object.assign(Object.create(n.prototype),o.prototype,r.prototype,{constructor:g,fieldDefinitions:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"geoOrigin",new e.SFNode),new t(s.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(s.initializeOnly,"rootUrl",new e.MFString),new t(s.initializeOnly,"child1Url",new e.MFString),new t(s.initializeOnly,"child2Url",new e.MFString),new t(s.initializeOnly,"child3Url",new e.MFString),new t(s.initializeOnly,"child4Url",new e.MFString),new t(s.initializeOnly,"center",new e.SFVec3d),new t(s.initializeOnly,"range",new e.SFFloat(10)),new t(s.outputOnly,"level_changed",new e.SFInt32(-1)),new t(s.initializeOnly,"rootNode",new e.MFNode),new t(s.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(s.initializeOnly,"bboxCenter",new e.SFVec3f),new t(s.outputOnly,"children",new e.MFNode)]),getTypeName:function(){return"GeoLOD"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);r.prototype.initialize.call(this);this.rootNode_.addFieldInterest(this.rootGroup.children_);this.rootGroup.children_=this.rootNode_;this.rootGroup.setPrivate(true);this.rootGroup.setup();this.rootInline.loadState_.addInterest("set_rootLoadState__",this);this.child1Inline.loadState_.addInterest("set_childLoadState__",this);this.child2Inline.loadState_.addInterest("set_childLoadState__",this);this.child3Inline.loadState_.addInterest("set_childLoadState__",this);this.child4Inline.loadState_.addInterest("set_childLoadState__",this);this.rootUrl_.addFieldInterest(this.rootInline.url_);this.child1Url_.addFieldInterest(this.child1Inline.url_);this.child2Url_.addFieldInterest(this.child2Inline.url_);this.child3Url_.addFieldInterest(this.child3Inline.url_);this.child4Url_.addFieldInterest(this.child4Inline.url_);this.rootInline.load_=true;this.child1Inline.load_=false;this.child2Inline.load_=false;this.child3Inline.load_=false;this.child4Inline.load_=false;this.rootInline.url_=this.rootUrl_;this.child1Inline.url_=this.child1Url_;this.child2Inline.url_=this.child2Url_;this.child3Inline.url_=this.child3Url_;this.child4Inline.url_=this.child4Url_;this.rootInline.setup();this.child1Inline.setup();this.child2Inline.setup();this.child3Inline.setup();this.child4Inline.setup()},getBBox:function(e){if(this.bboxSize_.getValue().equals(this.defaultBBoxSize)){var t=this.level_changed_.getValue();switch(this.childrenLoaded?t:0){case 0:{if(this.rootNode_.length)return this.rootGroup.getBBox(e);return this.rootInline.getBBox(e)}case 1:{e.set();e.add(this.child1Inline.getBBox(this.childBBox));e.add(this.child2Inline.getBBox(this.childBBox));e.add(this.child3Inline.getBBox(this.childBBox));e.add(this.child4Inline.getBBox(this.childBBox));return e}}return e.set()}return e.set(this.bboxSize_.getValue(),this.bboxCenter_.getValue())},set_rootLoadState__:function(){if(this.level_changed_.getValue()!==0)return;if(this.rootNode_.length)return;if(this.rootInline.checkLoadState()===s.COMPLETE_STATE){this.children_=this.rootInline.getInternalScene().getRootNodes();this.childrenLoaded=false}},set_childLoadState__:function(){var t=new e.MFNode;return function(){if(this.level_changed_.getValue()!==1)return;var e=0;if(this.child1Inline.checkLoadState()===s.COMPLETE_STATE){var i=this.child1Inline.getInternalScene().getRootNodes();for(var n=0,o=i.length;n<o;++n)t.push(i[n]);++e}else if(this.child1Inline.checkLoadState()===s.FAILED_STATE)++e;if(this.child2Inline.checkLoadState()===s.COMPLETE_STATE){var i=this.child2Inline.getInternalScene().getRootNodes();for(var n=0,o=i.length;n<o;++n)t.push(i[n]);++e}else if(this.child2Inline.checkLoadState()===s.FAILED_STATE)++e;if(this.child3Inline.checkLoadState()===s.COMPLETE_STATE){var i=this.child3Inline.getInternalScene().getRootNodes();for(var n=0,o=i.length;n<o;++n)t.push(i[n]);++e}else if(this.child3Inline.checkLoadState()===s.FAILED_STATE)++e;if(this.child4Inline.checkLoadState()===s.COMPLETE_STATE){var i=this.child4Inline.getInternalScene().getRootNodes();for(var n=0,o=i.length;n<o;++n)t.push(i[n]);++e}else if(this.child4Inline.checkLoadState()===s.FAILED_STATE)++e;if(e===4){this.childrenLoaded=true;this.children_.assign(t)}}}(),getLevel:function(e){var t=this.getDistance(e);if(t<this.range_.getValue())return 1;return 0},getDistance:function(e){e.translate(this.getCoord(this.center_.getValue(),p));return e.origin.abs()},traverse:function(e,t){if(e==a.DISPLAY){var i=this.getLevel(this.modelViewMatrix.assign(t.getModelViewMatrix().get()));if(i!==this.level_changed_.getValue()){this.level_changed_=i;switch(i){case 0:{if(this.rootNode_.length){this.children_=this.rootNode_;this.childrenLoaded=false}else{if(this.rootInline.checkLoadState()==s.COMPLETE_STATE){this.children_=this.rootInline.getInternalScene().getRootNodes();this.childrenLoaded=false}}this.child1Inline.load_=false;this.child2Inline.load_=false;this.child3Inline.load_=false;this.child4Inline.load_=false;break}case 1:{this.child1Inline.load_=true;this.child2Inline.load_=true;this.child3Inline.load_=true;this.child4Inline.load_=true;break}}}}switch(this.childrenLoaded?this.level_changed_.getValue():0){case 0:{if(this.rootNode_.length)this.rootGroup.traverse(e,t);else this.rootInline.traverse(e,t);break}case 1:{this.child1Inline.traverse(e,t);this.child2Inline.traverse(e,t);this.child3Inline.traverse(e,t);this.child4Inline.traverse(e,t);break}}}});return g});e("x_ite/Components/Geospatial/GeoLocation",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DTransformMatrix3DNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","standard/Math/Numbers/Matrix4"],function(e,t,i,n,o,r,s){"use strict";var a=new s;function l(e){n.call(this,e);o.call(this,e);this.addType(r.GeoLocation)}l.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:l,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(r.inputOutput,"geoCoords",new e.SFVec3d),new t(r.initializeOnly,"geoOrigin",new e.SFNode),new t(r.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(r.initializeOnly,"bboxCenter",new e.SFVec3f),new t(r.inputOnly,"addChildren",new e.MFNode),new t(r.inputOnly,"removeChildren",new e.MFNode),new t(r.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"GeoLocation"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.addInterest("eventsProcessed",this);this.eventsProcessed()},eventsProcessed:function(){this.setMatrix(this.getLocationMatrix(this.geoCoords_.getValue(),a))}});return l});e("x_ite/Components/Geospatial/GeoMetadata",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DInfoNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,o){"use strict";function r(e){n.call(this,e);this.addType(o.GeoMetadata)}r.prototype=Object.assign(Object.create(n.prototype),{constructor:r,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOutput,"url",new e.MFString),new t(o.inputOutput,"summary",new e.MFString),new t(o.inputOutput,"data",new e.MFNode)]),getTypeName:function(){return"GeoMetadata"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"}});return r});e("x_ite/Components/Geospatial/GeoOrigin",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants","x_ite/Browser/Geospatial/Geospatial"],function(e,t,i,n,o,r){"use strict";function s(e){n.call(this,e);this.addType(o.GeoOrigin);this.radians=false}s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(o.inputOutput,"geoCoords",new e.SFVec3d),new t(o.initializeOnly,"rotateYUp",new e.SFBool)]),getTypeName:function(){return"GeoOrigin"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"geoOrigin"},initialize:function(){n.prototype.initialize.call(this);this.geoSystem_.addInterest("set_geoSystem__",this);this.set_geoSystem__()},set_geoSystem__:function(){this.referenceFrame=r.getReferenceFrame(this.geoSystem_,this.radians)},getOrigin:function(e){return this.referenceFrame.convert(this.geoCoords_.getValue(),e)}});return s});e("x_ite/Components/Geospatial/GeoPositionInterpolator",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Interpolation/X3DInterpolatorNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Browser/Geospatial/Geocentric","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3"],function(e,t,i,n,o,r,s,a){"use strict";function l(e){n.call(this,e);o.call(this,e);this.addType(s.GeoPositionInterpolator);this.value_changed_.setUnit("length");this.geocentric=new r}l.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:l,fieldDefinitions:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"geoOrigin",new e.SFNode),new t(s.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(s.inputOnly,"set_fraction",new e.SFFloat),new t(s.inputOutput,"key",new e.MFFloat),new t(s.inputOutput,"keyValue",new e.MFVec3d),new t(s.outputOnly,"value_changed",new e.SFVec3d),new t(s.outputOnly,"geovalue_changed",new e.SFVec3d)]),keyValue0:new a(0,0,0),keyValue1:new a(0,0,0),geovalue:new a(0,0,0),value:new a(0,0,0),getTypeName:function(){return"GeoPositionInterpolator"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},setup:function(){o.prototype.initialize.call(this);n.prototype.setup.call(this)},initialize:function(){n.prototype.initialize.call(this);this.keyValue_.addInterest("set_keyValue__",this)},set_keyValue__:function(){var t=this.key_,i=this.keyValue_;if(i.length<t.length)i.resize(t.length,i.length?i[i.length-1]:new e.SFVec3f)},interpolate:function(e,t,i){try{this.getCoord(this.keyValue_[e].getValue(),this.keyValue0);this.getCoord(this.keyValue_[t].getValue(),this.keyValue1);var n=this.geocentric.slerp(this.keyValue0,this.keyValue1,i);this.geovalue_changed_=this.getGeoCoord(n,this.geovalue);this.value_changed_=n}catch(e){}}});return l});e("x_ite/Components/Geospatial/GeoProximitySensor",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Components/EnvironmentalSensor/ProximitySensor","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3"],function(e,t,i,n,o,r,s,a){"use strict";var l=new a(0,0,0);function h(e){n.call(this,e);o.call(this,e);this.addType(s.GeoProximitySensor);this.position_changed_.setUnit("length");this.centerOfRotation_changed_.setUnit("length");this.proximitySensor=new r(e);this.setCameraObject(this.proximitySensor.getCameraObject())}h.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:h,fieldDefinitions:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"geoOrigin",new e.SFNode),new t(s.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(s.inputOutput,"enabled",new e.SFBool(true)),new t(s.inputOutput,"size",new e.SFVec3f),new t(s.inputOutput,"center",new e.SFVec3f),new t(s.outputOnly,"isActive",new e.SFBool),new t(s.outputOnly,"enterTime",new e.SFTime),new t(s.outputOnly,"exitTime",new e.SFTime),new t(s.outputOnly,"geoCoord_changed",new e.SFVec3d),new t(s.outputOnly,"position_changed",new e.SFVec3f),new t(s.outputOnly,"orientation_changed",new e.SFRotation),new t(s.outputOnly,"centerOfRotation_changed",new e.SFVec3f)]),getTypeName:function(){return"GeoProximitySensor"},getComponentName:function(){return"Geospatial"},getContainerField:function(){
2
- return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.enabled_.addFieldInterest(this.proximitySensor.enabled_);this.size_.addFieldInterest(this.proximitySensor.size_);this.center_.addFieldInterest(this.proximitySensor.center_);this.proximitySensor.isCameraObject_.addFieldInterest(this.isCameraObject_);this.proximitySensor.isActive_.addFieldInterest(this.isActive_);this.proximitySensor.enterTime_.addFieldInterest(this.enterTime_);this.proximitySensor.exitTime_.addFieldInterest(this.exitTime_);this.proximitySensor.position_changed_.addFieldInterest(this.position_changed_);this.proximitySensor.orientation_changed_.addFieldInterest(this.orientation_changed_);this.proximitySensor.centerOfRotation_changed_.addFieldInterest(this.centerOfRotation_changed_);this.proximitySensor.position_changed_.addInterest("set_position__",this);this.proximitySensor.enabled_=this.enabled_;this.proximitySensor.size_=this.size_;this.proximitySensor.center_=this.center_;this.proximitySensor.setup()},set_position__:function(e){this.geoCoord_changed_=this.getGeoCoord(this.proximitySensor.position_changed_.getValue(),l)},traverse:function(e,t){this.proximitySensor.traverse(e,t)}});return h});e("x_ite/Components/Geospatial/GeoTouchSensor",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Numbers/Matrix4"],function(e,t,i,n,o,r,s,a){"use strict";var l=new a,h=new s(0,0,0);function d(e){n.call(this,e);o.call(this,e);this.addType(r.GeoTouchSensor);this.hitPoint_changed_.setUnit("length")}d.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:d,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"geoOrigin",new e.SFNode),new t(r.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(r.inputOutput,"enabled",new e.SFBool(true)),new t(r.inputOutput,"description",new e.SFString),new t(r.outputOnly,"hitTexCoord_changed",new e.SFVec2f),new t(r.outputOnly,"hitNormal_changed",new e.SFVec3f),new t(r.outputOnly,"hitPoint_changed",new e.SFVec3f),new t(r.outputOnly,"hitGeoCoord_changed",new e.SFVec3d),new t(r.outputOnly,"isOver",new e.SFBool),new t(r.outputOnly,"isActive",new e.SFBool),new t(r.outputOnly,"touchTime",new e.SFTime)]),getTypeName:function(){return"GeoTouchSensor"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this)},set_over__:function(e,t,i,o,r){try{n.prototype.set_over__.call(this,e,t,i,o,r);if(this.isOver_.getValue()){var s=t.intersection;l.assign(i).inverse();this.hitTexCoord_changed_=s.texCoord;this.hitNormal_changed_=i.multMatrixDir(s.normal.copy()).normalize();this.hitPoint_changed_=l.multVecMatrix(s.point.copy());this.hitGeoCoord_changed_=this.getGeoCoord(this.hitPoint_changed_.getValue(),h)}}catch(e){console.log(e)}}});return d});e("x_ite/Components/Geospatial/GeoTransform",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DTransformMatrix3DNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Bits/X3DConstants","standard/Math/Numbers/Matrix4"],function(e,t,i,n,o,r,s){"use strict";var a=new s,l=new s;function h(e){n.call(this,e);o.call(this,e);this.addType(r.GeoTransform);this.translation_.setUnit("length")}h.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:h,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"translation",new e.SFVec3f),new t(r.inputOutput,"rotation",new e.SFRotation),new t(r.inputOutput,"scale",new e.SFVec3f(1,1,1)),new t(r.inputOutput,"scaleOrientation",new e.SFRotation),new t(r.initializeOnly,"geoOrigin",new e.SFNode),new t(r.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(r.inputOutput,"geoCenter",new e.SFVec3d),new t(r.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(r.initializeOnly,"bboxCenter",new e.SFVec3f),new t(r.inputOnly,"addChildren",new e.MFNode),new t(r.inputOnly,"removeChildren",new e.MFNode),new t(r.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"GeoTransform"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.addInterest("eventsProcessed",this);this.eventsProcessed()},eventsProcessed:function(){try{this.setHidden(this.scale_.x===0||this.scale_.y===0||this.scale_.z===0);this.getLocationMatrix(this.geoCenter_.getValue(),l);a.set(this.translation_.getValue(),this.rotation_.getValue(),this.scale_.getValue(),this.scaleOrientation_.getValue());this.setMatrix(a.multRight(l).multLeft(l.inverse()))}catch(e){this.setHidden(true)}}});return h});e("x_ite/Components/Geospatial/GeoViewpoint",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Navigation/X3DViewpointNode","x_ite/Components/Geospatial/X3DGeospatialObject","x_ite/Components/Interpolation/ScalarInterpolator","x_ite/Components/Navigation/NavigationInfo","x_ite/Bits/X3DConstants","standard/Math/Geometry/Camera","standard/Math/Numbers/Vector2","standard/Math/Numbers/Vector3","standard/Math/Numbers/Rotation4","standard/Math/Numbers/Matrix4","standard/Math/Algorithm"],function(e,t,i,n,o,r,s,a,l,h,d,u,c,p){"use strict";function g(e,t){n.prototype.traverse.call(this,e,t);this.navigationInfoNode.traverse(e,t)}function _(e){n.call(this,e);o.call(this,e);this.addType(a.GeoViewpoint);this.centerOfRotation_.setUnit("length");this.fieldOfView_.setUnit("angle");this.navigationInfoNode=new s(e);this.fieldOfViewInterpolator=new r(this.getBrowser().getPrivateScene());this.projectionMatrix=new c;this.elevation=0;switch(e.specificationVersion){case"2.0":case"3.0":case"3.1":case"3.2":this.traverse=g;break}}_.prototype=Object.assign(Object.create(n.prototype),o.prototype,{constructor:_,fieldDefinitions:new i([new t(a.inputOutput,"metadata",new e.SFNode),new t(a.initializeOnly,"geoOrigin",new e.SFNode),new t(a.initializeOnly,"geoSystem",new e.MFString("GD","WE")),new t(a.inputOnly,"set_bind",new e.SFBool),new t(a.inputOutput,"description",new e.SFString),new t(a.inputOutput,"position",new e.SFVec3d(0,0,1e5)),new t(a.inputOutput,"orientation",new e.SFRotation),new t(a.inputOutput,"centerOfRotation",new e.SFVec3d),new t(a.inputOutput,"fieldOfView",new e.SFFloat(.7854)),new t(a.inputOutput,"jump",new e.SFBool(true)),new t(a.inputOutput,"retainUserOffsets",new e.SFBool),new t(a.inputOutput,"navType",new e.MFString("EXAMINE","ANY")),new t(a.inputOutput,"headlight",new e.SFBool(true)),new t(a.initializeOnly,"speedFactor",new e.SFFloat(1)),new t(a.outputOnly,"isBound",new e.SFBool),new t(a.outputOnly,"bindTime",new e.SFTime)]),getTypeName:function(){return"GeoViewpoint"},getComponentName:function(){return"Geospatial"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);o.prototype.initialize.call(this);this.position_.addInterest("set_position__",this);this.positionOffset_.addInterest("set_position__",this);this.navType_.addFieldInterest(this.navigationInfoNode.type_);this.headlight_.addFieldInterest(this.navigationInfoNode.headlight_);this.navigationInfoNode.setup();this.set_position__();this.fieldOfViewInterpolator.key_=[0,1];this.fieldOfViewInterpolator.setup();this.getEaseInEaseOut().modifiedFraction_changed_.addFieldInterest(this.fieldOfViewInterpolator.set_fraction_);this.fieldOfViewInterpolator.value_changed_.addFieldInterest(this.fieldOfViewScale_)},setInterpolators:function(e){if(e.getType().indexOf(a.GeoViewpoint)<0){this.fieldOfViewInterpolator.keyValue_=[this.fieldOfViewScale_.getValue(),this.fieldOfViewScale_.getValue()]}else{var t=e.getFieldOfView()/this.fieldOfView_.getValue();this.fieldOfViewInterpolator.keyValue_=[t,this.fieldOfViewScale_.getValue()];this.fieldOfViewScale_=t}},setPosition:function(){var e=new d(0,0,0);return function(t){this.position_.setValue(this.getGeoCoord(t,e))}}(),getPosition:function(){var e=new d(0,0,0);return function(){return this.getCoord(this.position_.getValue(),e)}}(),set_position__:function(){var e=new d(0,0,0);return function(){this.getCoord(this.position_.getValue(),e);this.elevation=this.getGeoElevation(e.add(this.positionOffset_.getValue()))}}(),setOrientation:function(){var e=new c,t=new u(0,0,1,0);return function(i){var n=this.getLocationMatrix(this.position_.getValue(),e).submatrix;t.setMatrix(n);this.orientation_.setValue(t.inverse().multLeft(i))}}(),getOrientation:function(){var e=new c,t=new u(0,0,1,0);return function(){var i=this.getLocationMatrix(this.position_.getValue(),e).submatrix;t.setMatrix(i);return t.multLeft(this.orientation_.getValue())}}(),getCenterOfRotation:function(){var e=new d(0,0,0);return function(){return this.getCoord(this.centerOfRotation_.getValue(),e)}}(),getFieldOfView:function(){var e=this.fieldOfView_*this.fieldOfViewScale_;return e>0&&e<Math.PI?e:Math.PI/4},getMaxFarValue:function(){return this.getBrowser().getRenderingProperty("LogarithmicDepthBuffer")?1e10:1e9},getUpVector:function(){var e=new d(0,0,0),t=new d(0,0,0);return function(){this.getCoord(this.position_.getValue(),e);return this.getGeoUpVector.call(this,e.add(this.positionOffset_.getValue()),t)}}(),getSpeedFactor:function(){return(Math.max(this.elevation,0)+10)/10*this.speedFactor_.getValue()},getScreenScale:function(){var e=new d(0,0,0);return function(t,i){var n=i[2],o=i[3],r=Math.abs(t.z)*Math.tan(this.getFieldOfView()/2)*2;if(n>o)r/=o;else r/=n;return e.set(r,r,r)}}(),getViewportSize:function(){var e=new h(0,0);return function(t,i){var n=t[2],o=t[3],r=i*Math.tan(this.getFieldOfView()/2)*2,s=n/o;if(s>1)return e.set(r*s,r);return e.set(r,r/s)}}(),getLookAtDistance:function(e){return e.size.abs()/2/Math.tan(this.getFieldOfView()/2)},getProjectionMatrixWithLimits:function(e,t,i,n){if(n||this.getBrowser().getRenderingProperty("LogarithmicDepthBuffer"))return l.perspective(this.getFieldOfView(),e,t,i[2],i[3],this.projectionMatrix);var o=Math.max(p.lerp(Math.min(e,1e4),1e4,this.elevation/1e7),1),r=Math.max(p.lerp(1e6,Math.max(t,1e6),this.elevation/1e7),1e6);return l.perspective(this.getFieldOfView(),o,r,i[2],i[3],this.projectionMatrix)}});return _});e(["x_ite/Components","x_ite/Components/Geospatial/GeoCoordinate","x_ite/Components/Geospatial/GeoElevationGrid","x_ite/Components/Geospatial/GeoLOD","x_ite/Components/Geospatial/GeoLocation","x_ite/Components/Geospatial/GeoMetadata","x_ite/Components/Geospatial/GeoOrigin","x_ite/Components/Geospatial/GeoPositionInterpolator","x_ite/Components/Geospatial/GeoProximitySensor","x_ite/Components/Geospatial/GeoTouchSensor","x_ite/Components/Geospatial/GeoTransform","x_ite/Components/Geospatial/GeoViewpoint","x_ite/Components/Geospatial/X3DGeospatialObject"],function(e,t,i,n,o,r,s,a,l,h,d,u,c){"use strict";e.addComponent({name:"Geospatial",types:{GeoCoordinate:t,GeoElevationGrid:i,GeoLOD:n,GeoLocation:o,GeoMetadata:r,GeoOrigin:s,GeoPositionInterpolator:a,GeoProximitySensor:l,GeoTouchSensor:h,GeoTransform:d,GeoViewpoint:u},abstractTypes:{X3DGeospatialObject:c}})})})();
@@ -1 +0,0 @@
1
- (function(){var t=X3D.define,e=X3D.require;t("x_ite/Components/H-Anim/HAnimDisplacer",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometricPropertyNode","x_ite/Bits/X3DConstants"],function(t,e,n,i,o){"use strict";function s(t){i.call(this,t);this.addType(o.HAnimDisplacer)}s.prototype=Object.assign(Object.create(i.prototype),{constructor:s,fieldDefinitions:new n([new e(o.inputOutput,"metadata",new t.SFNode),new e(o.inputOutput,"name",new t.SFString),new e(o.inputOutput,"coordIndex",new t.MFInt32),new e(o.inputOutput,"weight",new t.SFFloat),new e(o.inputOutput,"displacements",new t.MFVec3f)]),getTypeName:function(){return"HAnimDisplacer"},getComponentName:function(){return"H-Anim"},getContainerField:function(){return"displacers"}});return s});t("x_ite/Components/H-Anim/HAnimHumanoid",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/Grouping/Group","x_ite/Components/Grouping/Transform","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Bits/TraverseType","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","standard/Math/Numbers/Matrix4","standard/Math/Numbers/Vector3"],function(t,e,n,i,o,s,r,a,d,u,l,p){"use strict";function c(t){i.call(this,t);r.call(this,t);this.addType(d.HAnimHumanoid);this.viewpointsNode=new o(t);this.skeletonNode=new o(t);this.skinNode=new o(t);this.transformNode=new s(t);this.jointNodes=[];this.skinNormalNode=null;this.skinCoordNode=null;this.restNormalNode=null;this.restCoordNode=null;this.getBBox=this.transformNode.getBBox.bind(this.transformNode)}c.prototype=Object.assign(Object.create(i.prototype),r.prototype,{constructor:c,fieldDefinitions:new n([new e(d.inputOutput,"metadata",new t.SFNode),new e(d.inputOutput,"name",new t.SFString),new e(d.inputOutput,"version",new t.SFString),new e(d.inputOutput,"info",new t.MFString),new e(d.inputOutput,"translation",new t.SFVec3f),new e(d.inputOutput,"rotation",new t.SFRotation),new e(d.inputOutput,"scale",new t.SFVec3f(1,1,1)),new e(d.inputOutput,"scaleOrientation",new t.SFRotation),new e(d.inputOutput,"center",new t.SFVec3f),new e(d.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new e(d.initializeOnly,"bboxCenter",new t.SFVec3f),new e(d.inputOutput,"viewpoints",new t.MFNode),new e(d.inputOutput,"sites",new t.MFNode),new e(d.inputOutput,"joints",new t.MFNode),new e(d.inputOutput,"segments",new t.MFNode),new e(d.inputOutput,"skeleton",new t.MFNode),new e(d.inputOutput,"skinNormal",new t.SFNode),new e(d.inputOutput,"skinCoord",new t.SFNode),new e(d.inputOutput,"skin",new t.MFNode)]),getTypeName:function(){return"HAnimHumanoid"},getComponentName:function(){return"H-Anim"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this);r.prototype.initialize.call(this);this.viewpointsNode.setAllowedTypes(d.HAnimSite);this.skeletonNode.setAllowedTypes(d.HAnimJoint,d.HAnimSite);this.viewpoints_.addFieldInterest(this.viewpointsNode.children_);this.skeleton_.addFieldInterest(this.skeletonNode.children_);this.skin_.addFieldInterest(this.skinNode.children_);this.viewpointsNode.children_=this.viewpoints_;this.skeletonNode.children_=this.skeleton_;this.skinNode.children_=this.skin_;this.viewpointsNode.setPrivate(true);this.skeletonNode.setPrivate(true);this.skinNode.setPrivate(true);this.translation_.addFieldInterest(this.transformNode.translation_);this.rotation_.addFieldInterest(this.transformNode.rotation_);this.scale_.addFieldInterest(this.transformNode.scale_);this.scaleOrientation_.addFieldInterest(this.transformNode.scaleOrientation_);this.center_.addFieldInterest(this.transformNode.center_);this.bboxSize_.addFieldInterest(this.transformNode.bboxSize_);this.bboxCenter_.addFieldInterest(this.transformNode.bboxCenter_);this.transformNode.translation_=this.translation_;this.transformNode.rotation_=this.rotation_;this.transformNode.scale_=this.scale_;this.transformNode.scaleOrientation_=this.scaleOrientation_;this.transformNode.center_=this.center_;this.transformNode.bboxSize_=this.bboxSize_;this.transformNode.bboxCenter_=this.bboxCenter_;this.transformNode.children_=[this.viewpointsNode,this.skeletonNode,this.skinNode];this.transformNode.isCameraObject_.addFieldInterest(this.isCameraObject_);this.viewpointsNode.setup();this.skeletonNode.setup();this.skinNode.setup();this.transformNode.setup();this.setCameraObject(this.transformNode.getCameraObject());this.joints_.addInterest("set_joints__",this);this.skinNormal_.addInterest("set_skinNormal__",this);this.skinCoord_.addInterest("set_skinCoord__",this);this.set_joints__();this.set_skinNormal__();this.set_skinCoord__()},set_joints__:function(){var t=this.jointNodes;t.length=0;for(var e=0,n=this.joints_.length;e<n;++e){var i=u(d.HAnimJoint,this.joints_[e]);if(i)t.push(i)}},set_skinNormal__:function(){this.restNormalNode=null;this.skinNormalNode=u(d.X3DNormalNode,this.skinNormal_);if(this.skinNormalNode)this.restNormalNode=this.skinNormalNode.flatCopy()},set_skinCoord__:function(){this.restCoordNode=null;this.skinCoordNode=u(d.X3DCoordinateNode,this.skinCoord_);if(this.skinCoordNode)this.restCoordNode=this.skinCoordNode.flatCopy()},traverse:function(t,e){this.transformNode.traverse(t,e);this.skinning(t,e)},skinning:function(){var t=new l,e=new p(0,0,0),n=new p(0,0,0),i=new p(0,0,0),o=new p(0,0,0);return function(s,r){try{if(s!==a.CAMERA)return;if(!this.skinCoordNode)return;var d=this.jointNodes,u=this.skinNormalNode,l=this.skinCoordNode,c=this.restNormalNode,m=this.restCoordNode;if(u)u.vector_.assign(c.vector_);l.point_.assign(m.point_);t.assign(this.transformNode.getMatrix()).multRight(r.getModelViewMatrix().get()).inverse();for(var h=0,w=d.length;h<w;++h){var _=d[h],f=_.skinCoordIndex_.length;if(f===0)continue;var N=_.getModelMatrix().multRight(t),F=_.getDisplacers();for(var g=0,O=F.length;g<O;++g){var C=F[g],x=C.coordIndex_.getValue(),S=C.coordIndex_.length,A=C.weight_.getValue(),y=C.displacements_.getValue(),b=C.displacements_.length;for(var H=0;H<S;++H){var M=H*3,k=x[H],v=H<b?o.set(y[M],y[M+1],y[M+2]):o.assign(p.Zero);l.get1Point(k,i);N.multDirMatrix(v).multiply(A).add(i);l.set1Point(k,v)}}var D=u?N.submatrix.transpose().inverse():null,V=_.skinCoordIndex_.getValue(),j=_.skinCoordWeight_.getValue(),I=_.skinCoordWeight_.length;for(var H=0;H<f;++H){var k=V[H],A=H<I?j[H]:1;if(u){n.assign(c.get1Vector(k,e));u.get1Vector(k,i);D.multVecMatrix(e).subtract(n).multiply(A).add(i);u.set1Vector(k,e)}n.assign(m.get1Point(k,o));l.get1Point(k,i);N.multVecMatrix(o).subtract(n).multiply(A).add(i);l.set1Point(k,o)}}}catch(t){console.log(t)}}}()});return c});t("x_ite/Components/H-Anim/HAnimJoint",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Components/Grouping/X3DTransformNode","x_ite/Bits/TraverseType","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","standard/Math/Numbers/Matrix4"],function(t,e,n,i,o,s,r,a,d){"use strict";function u(t){o.call(this,t);this.addType(r.HAnimJoint);this.setAllowedTypes(r.HAnimJoint,r.HAnimSegment,r.HAnimSite);this.displacerNodes=[];this.modelMatrix=new d}u.prototype=Object.assign(Object.create(o.prototype),{constructor:u,fieldDefinitions:new n([new e(r.inputOutput,"metadata",new t.SFNode),new e(r.inputOutput,"name",new t.SFString),new e(r.inputOutput,"translation",new t.SFVec3f),new e(r.inputOutput,"rotation",new t.SFRotation),new e(r.inputOutput,"scale",new t.SFVec3f(1,1,1)),new e(r.inputOutput,"scaleOrientation",new t.SFRotation),new e(r.inputOutput,"center",new t.SFVec3f),new e(r.inputOutput,"llimit",new t.MFFloat),new e(r.inputOutput,"ulimit",new t.MFFloat),new e(r.inputOutput,"limitOrientation",new t.SFRotation),new e(r.inputOutput,"stiffness",new t.MFFloat(0,0,0)),new e(r.inputOutput,"skinCoordIndex",new t.MFInt32),new e(r.inputOutput,"skinCoordWeight",new t.MFFloat),new e(r.inputOutput,"displacers",new t.MFNode),new e(r.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new e(r.initializeOnly,"bboxCenter",new t.SFVec3f),new e(r.inputOnly,"addChildren",new t.MFNode),new e(r.inputOnly,"removeChildren",new t.MFNode),new e(r.inputOutput,"children",new t.MFNode)]),getTypeName:function(){return"HAnimJoint"},getComponentName:function(){return"H-Anim"},getContainerField:function(){return"children"},initialize:function(){o.prototype.initialize.call(this);this.displacers_.addInterest("set_displacers__",this);this.set_displacers__()},setCameraObject:function(t){o.prototype.setCameraObject.call(this,t||Boolean(this.skinCoordIndex_.length))},getModelMatrix:function(){return this.modelMatrix},getDisplacers:function(){return this.displacerNodes},set_displacers__:function(){var t=this.displacerNodes;t.length=0;for(var e=0,n=this.displacers_.length;e<n;++e){var i=a(r.HAnimDisplacer,this.displacers_[e]);if(i)t.push(i)}},traverse:function(t,e){if(t===s.CAMERA&&this.skinCoordIndex_.length)this.modelMatrix.assign(this.getMatrix()).multRight(e.getModelViewMatrix().get());o.prototype.traverse.call(this,t,e)},groupTraverse:function(t,e){if(t===s.CAMERA&&this.skinCoordIndex_.length)this.modelMatrix.assign(e.getModelViewMatrix().get());i.prototype.traverse.call(this,t,e)}});return u});t("x_ite/Components/H-Anim/HAnimSegment",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Bits/X3DConstants"],function(t,e,n,i,o){"use strict";function s(t){i.call(this,t);this.addType(o.HAnimSegment)}s.prototype=Object.assign(Object.create(i.prototype),{constructor:s,fieldDefinitions:new n([new e(o.inputOutput,"metadata",new t.SFNode),new e(o.inputOutput,"name",new t.SFString),new e(o.inputOutput,"mass",new t.SFFloat),new e(o.inputOutput,"centerOfMass",new t.SFVec3f),new e(o.inputOutput,"momentsOfInertia",new t.MFFloat(0,0,0,0,0,0,0,0,0)),new e(o.inputOutput,"displacers",new t.MFNode),new e(o.inputOutput,"coord",new t.SFNode),new e(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new e(o.initializeOnly,"bboxCenter",new t.SFVec3f),new e(o.inputOnly,"addChildren",new t.MFNode),new e(o.inputOnly,"removeChildren",new t.MFNode),new e(o.inputOutput,"children",new t.MFNode)]),getTypeName:function(){return"HAnimSegment"},getComponentName:function(){return"H-Anim"},getContainerField:function(){return"children"}});return s});t("x_ite/Components/H-Anim/HAnimSite",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Grouping/X3DTransformNode","x_ite/Bits/X3DConstants"],function(t,e,n,i,o){"use strict";function s(t){i.call(this,t);this.addType(o.HAnimSite)}s.prototype=Object.assign(Object.create(i.prototype),{constructor:s,fieldDefinitions:new n([new e(o.inputOutput,"metadata",new t.SFNode),new e(o.inputOutput,"name",new t.SFString),new e(o.inputOutput,"translation",new t.SFVec3f),new e(o.inputOutput,"rotation",new t.SFRotation),new e(o.inputOutput,"scale",new t.SFVec3f(1,1,1)),new e(o.inputOutput,"scaleOrientation",new t.SFRotation),new e(o.inputOutput,"center",new t.SFVec3f),new e(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new e(o.initializeOnly,"bboxCenter",new t.SFVec3f),new e(o.inputOnly,"addChildren",new t.MFNode),new e(o.inputOnly,"removeChildren",new t.MFNode),new e(o.inputOutput,"children",new t.MFNode)]),getTypeName:function(){return"HAnimSite"},getComponentName:function(){return"H-Anim"},getContainerField:function(){return"children"}});return s});t(["x_ite/Components","x_ite/Components/H-Anim/HAnimDisplacer","x_ite/Components/H-Anim/HAnimHumanoid","x_ite/Components/H-Anim/HAnimJoint","x_ite/Components/H-Anim/HAnimSegment","x_ite/Components/H-Anim/HAnimSite"],function(t,e,n,i,o,s){"use strict";t.addComponent({name:"H-Anim",types:{HAnimDisplacer:e,HAnimHumanoid:n,HAnimJoint:i,HAnimSegment:o,HAnimSite:s},abstractTypes:{}})})})();
@@ -1,2 +0,0 @@
1
- (function(){var e=X3D.define,t=X3D.require;e("x_ite/Components/NURBS/Contour2D",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,r){"use strict";function o(e){n.call(this,e);this.addType(r.Contour2D)}o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOnly,"addChildren",new e.MFNode),new t(r.inputOnly,"removeChildren",new e.MFNode),new t(r.inputOutput,"children",new e.MFNode)]),getTypeName:function(){return"Contour2D"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"trimmingContour"}});return o});e("x_ite/Components/NURBS/X3DNurbsControlCurveNode",["x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants"],function(e,t){"use strict";function i(i){e.call(this,i);this.addType(t.X3DNurbsControlCurveNode)}i.prototype=Object.assign(Object.create(e.prototype),{constructor:i});return i});e("x_ite/Components/NURBS/ContourPolyline2D",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/NURBS/X3DNurbsControlCurveNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,r){"use strict";function o(e){n.call(this,e);this.addType(r.ContourPolyline2D);this.controlPoints=[]}o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"controlPoint",new e.MFVec2d)]),getTypeName:function(){return"ContourPolyline2D"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},tessellate:function(e){var t=this.controlPoint_.getValue(),i=this.controlPoints;if(e){for(var n=0,r=this.controlPoint_.length;n<r;++n){var o=n*2,s=n*3;i[s+0]=t[o+0];i[s+1]=0;i[s+2]=t[o+1]}i.length=r*3}else{for(var n=0,r=this.controlPoint_.length;n<r;++n){var o=n*2;i[o+0]=t[o+0];i[o+1]=t[o+1]}i.length=r*2}return i}});return o});e("x_ite/Components/NURBS/CoordinateDouble",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Rendering/X3DCoordinateNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,r){"use strict";function o(e){n.call(this,e);this.addType(r.CoordinateDouble)}o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"point",new e.MFVec3d)]),getTypeName:function(){return"CoordinateDouble"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"coord"}});return o});e("x_ite/Browser/NURBS/NURBS",["standard/Math/Numbers/Vector2","standard/Math/Numbers/Vector3","standard/Math/Numbers/Vector4"],function(e,t,i){"use strict";var n={getTessellation:function(e,t){if(e>0)return e+1;if(e<0)return-e*t+1;return 2*t+1},getClosed2D:function(e,t,i,n){var r=n.length,o=i.length===r;if(o){if(i[0]!==i[r-1])return false}if(!n[0].equals(n[r-1]))return false;if(!this.isPeriodic(e,r,t))return false;return true},getClosed:function(){var e=new t(0,0,0),i=new t(0,0,0);return function(t,n,r,o){var s=o.getSize(),u=r.length===s;if(u){if(r[0]!==r[s-1])return false}if(!o.get1Point(0,e).equals(o.get1Point(s-1,i)))return false;if(!this.isPeriodic(t,s,n))return false;return true}}(),getUClosed:function(){var e=new t(0,0,0),i=new t(0,0,0);return function(t,n,r,o,s,u){var a=s.length===u.getSize();for(var l=0,h=r;l<h;++l){var d=l*n,c=l*n+n-1;if(a){if(s[d]!==s[c])return false}if(!u.get1Point(d,e).equals(u.get1Point(c,i)))return false}if(!this.isPeriodic(t,n,o))return false;return true}}(),getVClosed:function(){var e=new t(0,0,0),i=new t(0,0,0);return function(t,n,r,o,s,u){var a=s.length===u.getSize();for(var l=0,h=n;l<h;++l){var d=l,c=(r-1)*n+l;if(a){if(s[d]!==s[c])return false}if(!u.get1Point(d,e).equals(u.get1Point(c,i)))return false}if(!this.isPeriodic(t,r,o))return false;return true}}(),isPeriodic:function(e,t,i){if(i.length===t+e){{var n=1;for(var r=1,o=e;r<o;++r){n+=i[r]===i[0]}if(n===e)return false}{var n=1;for(var r=i.length-e,o=i.length-1;r<o;++r){n+=i[r]===i[o]}if(n===e)return false}}return true},getKnots:function(e,t,i,n,r){var o=e||[];for(var s=0,u=r.length;s<u;++s)o[s]=r[s];o.length=r.length;var a=true;if(o.length===n+i){a=false;var l=0;for(var s=1,u=o.length;s<u;++s){if(o[s]==o[s-1])++l;else l=0;if(l>i-1)a=true;if(o[s-1]>o[s])a=true}}if(a){for(var s=0,u=n+i;s<u;++s)o[s]=s/(u-1)}if(t){for(var s=1,u=i-1;s<u;++s)o.push(o[o.length-1]+(o[s]-o[s-1]))}return o},getWeights:function(e,t,i,n,r){if(r.length!==n)return undefined;var o=e||[];for(var s=0;s<n;++s){o[s]=r[s]}o.length=n;if(t){for(var s=1,u=i-1;s<u;++s)o.push(o[s])}return o},getUVWeights:function(e,t,i,n,r,o,s,u){if(u.length!==o*s)return undefined;var a=e||[];for(var l=0;l<o;++l){var h=a[l];if(!h)h=a[l]=[];for(var d=0;d<s;++d){h[d]=u[d*o+l]}h.length=s;if(i){for(var c=1,f=r-1;c<f;++c)h.push(h[c])}}a.length=o;if(t){for(var c=1,f=n-1;c<f;++c)a.push(a[c])}return a},getControlPoints2D:function(t,i,n,r){var o=t||[],s=r.getValue(),u=r.length;for(var a=0;a<u;++a){var l=a*2,h=o[a]||new e(0,0);o[a]=h.set(s[l+0],s[l+1])}o.length=u;if(i){for(var a=1,d=n-1;a<d;++a)o.push(o[a])}return o},getControlPoints:function(e,i,n,r){var o=e||[],s=r.getSize();for(var u=0;u<s;++u){o[u]=r.get1Point(u,o[u]||new t(0,0,0))}o.length=s;if(i){for(var u=1,a=n-1;u<a;++u)o.push(o[u])}return o},getUVControlPoints:function(e,i,n,r,o,s,u,a){var l=e||[];for(var h=0;h<s;++h){var d=l[h];if(!d)d=l[h]=[];for(var c=0;c<u;++c){d[c]=a.get1Point(c*s+h,d[c]||new t(0,0,0))}d.length=u;if(n){for(var f=1,g=o-1;f<g;++f)d.push(d[f])}}l.length=s;if(i){for(var f=1,g=r-1;f<g;++f)l.push(l[f])}return l},getTexControlPoints:function(e,t,n,r,o,s,u,a){var l=e||[];for(var h=0;h<s;++h){var d=l[h];if(!d)d=l[h]=[];for(var c=0;c<u;++c){d[c]=a.get1Point(c*s+h,d[c]||new i(0,0,0,0))}d.length=u;if(n){for(var f=1,g=o-1;f<g;++f)d.push(d[f])}}l.length=s;if(t){for(var f=1,g=r-1;f<g;++f)l.push(l[f])}return l}};return n});e("x_ite/Components/NURBS/X3DParametricGeometryNode",["x_ite/Components/Rendering/X3DGeometryNode","x_ite/Bits/X3DConstants","x_ite/Browser/NURBS/NURBS"],function(e,t,i){"use strict";function n(i){e.call(this,i);this.addType(t.X3DParametricGeometryNode)}n.prototype=Object.assign(Object.create(e.prototype),{constructor:n,getKnots:function(e,t,n,r,o){return i.getKnots(e,t,n,r,o)}});return n});e("nurbs/src/utils/is-ndarray",[],function(){"use strict";return function(e){if(!e)return false;if(!e.dtype)return false;var t=new RegExp("function View[0-9]+d(:?"+e.dtype+")+");return t.test(String(e.constructor))}});e("nurbs/src/utils/is-ndarray-like",[],function(){"use strict";return function(e){if(!e)return false;return e.data!==undefined&&Array.isArray(e.shape)&&e.offset!==undefined&&e.stride!==undefined}});e("nurbs/src/utils/is-array-like",[],function(){"use strict";return function e(t){return Array.isArray(t)||ArrayBuffer.isView(t)||t.length!==undefined}});e("nurbs/src/utils/infer-type",["nurbs/src/utils/is-ndarray","nurbs/src/utils/is-ndarray-like","nurbs/src/utils/is-array-like"],function(e,t,i){"use strict";function n(r){if(!r)return undefined;if(e(r)||t(r)){if(r.dtype==="generic")return n.GENERIC_NDARRAY;return n.NDARRAY}else{if(i(r)){for(var o=r;i(o[0]);o=o[0]);if("x"in o)return n.ARRAY_OF_OBJECTS;return n.ARRAY_OF_ARRAYS}throw new Error("Unhandled data type. Got type: "+typeof r)}}n.ARRAY_OF_OBJECTS="Obj";n.ARRAY_OF_ARRAYS="Arr";n.NDARRAY="Nd";n.GENERIC_NDARRAY="GenNd";n.PACKED="PackArr";return n});e("nurbs/src/utils/cache-key",["nurbs/src/utils/is-array-like"],function(e){"use strict";function t(e){return e[0].toUpperCase()+e.slice(1)}return function(i,n,r,o,s,u){var a;var l=[];var h=false;for(a=0;a<i.splineDimension;a++){var d=e(i.knots)&&e(i.knots[a]);if(d)h=true;l.push("Deg"+i.degree[a]+(d?"":"Uniform")+t(i.boundary[a]))}var c=[[h?"NU":"",i.weights?"RBS":"BS"].join("")+i.dimension+"D",l.join("_")];if(o){c.push(o+"Pts")}if(s){c.push(s+"Wts")}if(u){c.push(u+"Kts")}if(n){c.push("debug")}if(r){c.push("chk")}return c.join("_")}});e("nurbs/src/utils/variable",[],function(){"use strict";var e=function e(t,i){return function(i,n){if(i!==undefined&&!Array.isArray(i))i=[i];var r=[];for(var o=0;o<i.length;o++){r.push(e.sum(i[o]))}if(n){for(i=0;i<r.length;i++){if(n[i]===undefined)continue;r[i]="("+r[i]+" + "+n[i]+") % "+n[i]}}return t+r.join("_")}};e.sum=function(e){e=Array.isArray(e)?e:[e];e=e.filter(function(e){return e!==undefined&&e!==0});if(e.length===0)e.push(0);return e.join(" + ")};return e});e("nurbs/src/utils/create-accessors",["nurbs/src/utils/infer-type","nurbs/src/utils/variable"],function(e,t){"use strict";var i=[".x",".y",".z",".w"];function n(e){return function(i,n){if(i!==undefined&&!Array.isArray(i))i=[i];var r=[];for(var o=0;o<i.length;o++)r.push(t.sum(i[o]));if(n){for(i=0;i<r.length;i++){if(n[i]===undefined)continue;r[i]="("+r[i]+" + "+n[i]+") % "+n[i]}}return e(r)}}function r(t,r){if(!r)return undefined;switch(e(r)){case e.ARRAY_OF_OBJECTS:{return n(function(e){var n=e.pop();return t+"["+e.join("][")+"]"+i[n]})}case e.ARRAY_OF_ARRAYS:{return n(function(e){return t+"["+e.join("][")+"]"})}case e.GENERIC_NDARRAY:{return n(function(e){return t+".get("+e.join(",")+")"})}case e.NDARRAY:{return n(function(e){var i=[t+"Offset"];for(var n=0;n<e.length;n++){i.push(t+"Stride"+n+" * ("+e[n]+")")}return t+"["+i.join(" + ")+"]"})}case e.PACKED:default:return undefined}}return function(e){var t={};var i=r("x",e.points);if(i)t.point=i;var i=r("w",e.weights);if(i)t.weight=i;var i=r("k",e.knots);if(i)t.knot=i;return t}});e("nurbs/src/numerical-derivative",[],function(){"use strict";var e=[];var t=[];return function i(n,r,o){if(r!==1){throw new Error("Numerical derivative not implemented for order n = "+r+".")}var s;var u=arguments[this.splineDimension+3]===undefined?1e-4:arguments[this.splineDimension+3];e.length=this.splineDimension;for(s=0;s<this.splineDimension;s++){e[s+1]=arguments[s+3]}var a=this.domain;var l=a[o][0];var h=a[o][1];var d,c,f;var g=e[o+1];var p=(h-l)*u;if(this.boundary[o]==="closed"){f=h-l;d=l+(g-l-p+f)%f;c=l+(g-l+p+f)%f;p*=2}else{d=Math.min(h,Math.max(l,g-p));c=Math.min(h,Math.max(l,g+p));p=c-d}e[o+1]=d;e[0]=t;this.evaluate.apply(null,e);e[o+1]=c;e[0]=n;this.evaluate.apply(null,e);for(s=0;s<this.dimension;s++){n[s]=(n[s]-t[s])/p}return n}});e("nurbs/src/utils/ndloop",[],function(){"use strict";return function e(t,i){for(var n=1,r=0,o=[];r<t.length;r++){n*=Array.isArray(t[r])?t[r][1]-t[r][0]:t[r];o[r]=Array.isArray(t[r])?t[r][0]:0}for(var s=0;s<n;s++){i(o.slice());for(r=t.length-1;r>=0;r--){if(o[r]===(Array.isArray(t[r])?t[r][1]:t[r])-1){o[r]=Array.isArray(t[r])?t[r][0]:0}else{o[r]++;break}}}}});e("nurbs/src/utils/accessor-preamble",["nurbs/src/utils/infer-type"],function(e){"use strict";return function(t,i,n,r){var o=[];switch(e(r)){case e.NDARRAY:{o.push(" var "+i+" = "+n+".data;");o.push(" var "+i+"Offset = "+n+".offset;");for(var s=0;s<r.dimension;s++){o.push(" var "+i+"Stride"+s+" = "+n+".stride["+s+"];")}break}case e.ARRAY_OF_OBJECTS:case e.ARRAY_OF_ARRAYS:o.push(" var "+i+" = "+n+";")}return o.join("\n")}});e("nurbs/src/utils/size-getter",["nurbs/src/utils/is-ndarray-like"],function(e){"use strict";return function(t,i,n){if(!t){return"this.size["+n+"]"}else if(e(t)){return i+".shape["+n+"]"}else{var r=i;for(var o=0;o<n;o++){r+="[0]"}return r+".length"}}});e("nurbs/src/evaluate",["nurbs/src/utils/ndloop","nurbs/src/utils/variable","nurbs/src/utils/accessor-preamble","nurbs/src/utils/infer-type","nurbs/src/utils/is-array-like","nurbs/src/utils/size-getter"],function(e,t,i,n,r,o){"use strict";var s={};var u={};return function(a,l,h,d,c,f,g){var p=l.splineDimension;var _,v,m,y,w,b;var N=l.points;var C=l.degree;var S=l.weights;var D=S!==undefined;var x=l.knots;var O=l.dimension;var F=l.boundary;if(g!==undefined&&g!==null){if(!Array.isArray(g)){g=[g]}var P=0;for(_=0;_<p;_++){if(g[_]===undefined)g[_]=0;P+=g[_]}if(D&&P>1){throw new Error("Analytical derivative not implemented for rational b-splines with order n = "+P+".")}}if(f)a="Basis"+a;if(g)a="Der"+g.join("_")+"_"+a;var R=s[a];if(d){var B=typeof d==="function"?d:console.log}if(R){if(d){B(u[a])}return R.bind(l)}var V=[];var z="evaluate"+a;var k=h.point;if(f){k=function(e,t){var i=[];for(var n=0;n<e.length;n++){var r=e[n];var o=[];for(var s=0;s<r.length;s++){if(r[s]!==0)o.push(r[s])}r=o.join(" + ");if(t[n]){r="("+r+" + "+t[n]+") % "+t[n]}i.push(r+" === "+X(n))}return"(("+i.join(" && ")+") ? 1 : 0)"}}var A=h.weight;var T=h.knot;var I=t("k");var j=t("x");var U=t("w");var X=t("i");var M=t("t");var K=d?"domain":"d";var G=t(d?"size":"s");var E=t(d?"knotIndex":"j");var q=true;for(w=0;w<p;w++){if(r(x)&&r(x[w])){q=false}}function Y(e){V.push(" "+(e||""))}function W(e){if(d)Y(e)}if(f){var J=[]}var L=[];for(_=0;_<p;_++){if(f){J.push(X([_]))}L.push(M([_]))}V.push("function "+z+" ("+(f?"":"out, ")+L.join(", ")+(f?", "+J.join(", "):"")+") {");Y("var h, m, a, b;");if(c){Y("var "+K+" = this.domain;");Y("for (var i = 0; i < this.splineDimension; i++) {");Y(" a = arguments[i + 1];");Y(" if (a < "+K+"[i][0] || a > "+K+"[i][1] || a === undefined || isNaN(a)) {");Y(" throw new Error('Invalid Spline parameter in dimension '+i+'. Valid domain is ['+"+K+"[i][0]+', '+"+K+"[i][1]+']. but got t'+i+' = '+arguments[i + 1]+'.');");Y(" }");Y("}")}for(w=0;w<p;w++){Y("var "+G(w)+" = "+o(N,"this.points",w)+";")}V.push(i(l,"x","this.points",N));if(D){V.push(i(l,"w","this.weights",S))}if(!q){V.push(i(l,"k","this.knots",x))}function Z(e,t,i){return"("+e+") ? ("+t+") : ("+i+")"}var H=[];for(w=0;w<p;w++){switch(n(x)){case n.NDARRAY:H[w]=true;break;case n.ARRAY_OF_ARRAYS:H[w]=r(x[w]);break}}for(w=0;w<p;w++){if(H[w]){W("\n // Bisect to locate the knot interval in dimension "+w+"\n");Y("var "+E(w)+" = 0;");Y("h = "+G(w)+";");Y("while(h > "+E(w)+" + 1) {");Y(" m = 0.5 * (h + "+E(w)+") | 0;");Y(" if ("+T([w,"m"])+" > "+M(w)+") h = m;");Y(" else "+E(w)+" = m;");Y("}");W("\n // Fetch knots for dimension "+w+"\n");for(_=-C[w]+1;_<=C[w];_++){if(F[w]==="closed"){if(_<0){Y("var "+I([w,_+C[w]-1])+" = "+Z(E(w)+" < "+-_,T([w,0])+" + "+T([w,[G(w),E(w),_]])+" - "+T([w,[G(w)]]),T([w,[E(w),_]]))+";")}else if(_>0){Y("var "+I([w,_+C[w]-1])+" = "+Z(E(w)+" + "+_+" > "+G(w),T([w,G(w)])+" + "+T([w,_+" + "+E(w)+" - "+G(w)])+" - "+T([w,0]),T([w,[E(w),_]]))+";")}else{Y("var "+I([w,_+C[w]-1])+" = "+T([w,[E(w),_]])+";")}}else{Y("var "+I([w,_+C[w]-1])+" = "+T([w,[E(w),_]])+";")}}}else{W("\n // Directly compute knot interval for dimension "+w+"\n");if(F[w]==="closed"){Y(E(w)+" = ("+M(w)+" | 0) % "+G(w)+";")}else{Y(E(w)+" = ("+M(w)+" | 0);");Y("if ("+E(w)+" < "+C[w]+") "+E(w)+" = "+C[w]+";");Y("if ("+E(w)+" > "+G(w)+" - 1) "+E(w)+" = "+G(w)+" - 1;")}W("\n // Compute and clamp knots for dimension "+w+"\n");for(_=-C[w]+1;_<=C[w];_++){b=I([w,_+C[w]-1]);Y("var "+b+" = "+E(w)+" + "+_+";")}if(F[w]==="clamped"){for(_=-C[w]+1;_<=C[w];_++){b=I([w,_+C[w]-1]);if(_<0){Y("if ("+b+" < "+C[w]+") "+b+" = "+C[w]+";")}if(_>0){Y("if ("+b+" > "+G(w)+") "+b+" = "+G(w)+";")}}}if(F[w]==="closed"){W("\n // Wrap the B-Spline parameter for closed boundary");Y(M(w)+" %= "+G(w)+";")}}}for(w=0,m=[];w<p;w++){m[w]=C[w]+1}if(D){W("\n // Fetch weights\n");e(m,function(e){var t=[];var i=[];for(var n=0;n<p;n++){t[n]=[E(n),e[n]-C[n]];if(F[n]==="closed"&&e[n]-C[n]<0)i[n]=G(n)}Y("var "+U(e)+" = "+A(t,i)+";")})}if(d){if(D){Y("\n // Fetch points and project into homogeneous (weighted) coordinates\n")}else{Y("\n // Fetch points\n")}}e(m,function(e){var t=[];var i=[];for(var n=0;n<p;n++){t[n]=[E(n),e[n]-C[n]];if(F[n]==="closed"&&e[n]-C[n]<0)i[n]=G(n)}if(f){if(D){Y("var "+j(e)+" = "+k(t,i)+" * "+U(e)+";")}else{Y("var "+j(e)+" = "+k(t,i)+";")}}else{for(n=0;n<O;n++){var r=e.concat(n);t[p]=n;if(D){Y("var "+j(r)+" = "+k(t,i)+" * "+U(e)+";")}else{Y("var "+j(r)+" = "+k(t,i)+";")}}}});W("\n");W("// Perform De Boor's algorithm");for(w=m.length-1;w>=0;w--){m[w]=[C[w],C[w]+1];for(_=0;_<C[w];_++){W("\n // Degree "+C[w]+" evaluation in dimension "+w+", step "+(_+1)+"\n");for(v=C[w];v>_;v--){var Q=g&&C[w]-_-g[w]<=0;if(Q){Y("m = 1 / ("+I([w,v-_+C[w]-1])+" - "+I([w,v-1])+");");if(D){Y("a = ("+M(w)+" - "+I([w,v-1])+") * m;");Y("b = 1 - a;")}}else{Y("a = ("+M(w)+" - "+I([w,v-1])+") / ("+I([w,v-_+C[w]-1])+" - "+I([w,v-1])+");");Y("b = 1 - a;")}if(D){e(m,function(e){var t=e.slice();var i=e.slice();t[w]=v;i[w]=v-1;if(Q&&D)Y("h = "+U(t)+";");Y(U(t)+" = b * "+U(i)+" + a * "+U(t)+";")})}e(m,function(e){var t,i,n;var r=e.slice();var o=e.slice();r[w]=v;o[w]=v-1;if(Q){var s=_+1;if(f){t=D?"h * "+U(o)+" / "+U(r)+" * ":"";i=j(r)+(D?" / h":"");n=j(o)+(D?" / "+U(o):"");Y(j(r)+" = "+s+" * "+t+"("+i+" - "+n+") * m;")}else{var u=r.slice();var a=o.slice();for(y=0;y<O;y++){u[p]=a[p]=y;t=D?"h * "+U(o)+" / "+U(r)+" * ":"";i=j(u)+(D?" / h":"");n=j(a)+(D?" / "+U(o):"");Y(j(u)+" = "+s+" * "+t+"("+i+" - "+n+") * m;")}}}else{if(f){Y(j(r)+" = b * "+j(o)+" + a * "+j(r)+";")}else{for(y=0;y<O;y++){r[p]=o[p]=y;Y(j(r)+" = b * "+j(o)+" + a * "+j(r)+";")}}}});W("\n")}}}if(d){if(D){Y("\n // Project back from homogeneous coordinates and return final output\n")}else{Y("\n // Return final output\n")}}if(f){if(D){Y("return "+j(C)+" / "+U(C)+";")}else{Y("return "+j(C)+";")}}else{for(w=0;w<O;w++){if(D){Y("out["+w+"] = "+j(C.concat([w]))+" / "+U(C)+";")}else{Y("out["+w+"] = "+j(C.concat([w]))+";")}}}if(!f){Y("return out;")}V.push("}");if(d){var $=V.join("\n");B($);u[a]=$}var ee=new Function([V.join("\n"),"; return ",z].join(""))();s[a]=ee;return ee.bind(l)}});e("nurbs/src/transform",["nurbs/src/utils/accessor-preamble","nurbs/src/utils/size-getter","nurbs/src/utils/variable"],function(e,t,i){"use strict";var n={};return function r(o,s,u,a){var l,h,d,c,f,g,p,_;var v=n[o];if(v){return v.bind(s)}var m=[];var y="transform"+o;m.push("function "+y+"(m) {");m.push("var i, w;");m.push(e(s,"x","this.points",s.points));var w=i(a?"size":"s");for(l=0;l<s.splineDimension;l++){m.push("var "+w(l)+" = "+t(s.points,"this.points",l)+";")}c=[];for(l=0;l<s.splineDimension;l++){d="i"+l;c.push(d);m.push("for ("+d+" = "+w(l)+"- 1; "+d+" >= 0; "+d+"--) {")}for(l=0;l<s.dimension;l++){m.push("x"+l+" = "+u.point(c.concat([l])))}f=[];for(l=0;l<s.dimension;l++){f.push("m["+((s.dimension+1)*(l+1)-1)+"] * x"+l)}f.push("m["+((s.dimension+1)*(s.dimension+1)-1)+"]");m.push("var w = ("+f.join(" + ")+") || 1.0;");for(l=0;l<s.dimension;l++){f=[];g=s.dimension;for(h=0;h<g;h++){f.push("m["+(h*(g+1)+l)+"] * x"+h)}f.push("m["+(h*(g+1)+l)+"]");_=u.point(c.concat([l]));p="("+f.join(" + ")+") / w";m.push(_+" = "+p+";")}for(l=s.splineDimension-1;l>=0;l--){m.push("}")}m.push("return this;");m.push("}");var b=new Function([m.join("\n"),"; return ",y].join(""))();if(a)console.log(m.join("\n"));n[o]=b;return b.bind(s)}});e("nurbs/src/support",["nurbs/src/utils/ndloop","nurbs/src/utils/variable","nurbs/src/utils/accessor-preamble","nurbs/src/utils/infer-type","nurbs/src/utils/is-array-like","nurbs/src/utils/size-getter"],function(e,t,i,n,r,o){"use strict";var s={};return function(u,a,l,h,d){var c=s[u];if(c){return c.bind(a)}var f=a.degree;var g=a.knots;var p=a.splineDimension;var _=a.boundary;var v,m,y;var w=[];var b="support"+u;var N=l.knot;var C=t("t");var S=h?"domain":"d";var D=t(h?"size":"s");var x=t(h?"knotIndex":"i");var O=true;for(y=0;y<p;y++){if(r(g)&&r(g[y])){O=false}}function F(e){w.push(" "+(e||""))}var P=[];for(v=0;v<p;v++){P.push(C([v]))}w.push("function "+b+" (out, "+P.join(", ")+") {");var R=0;function B(e,t){if(t===undefined){F("out["+R+++"] = "+e.join(" + ")+";")}else{F("out["+R+++"] = ("+e.join(" + ")+" + "+t+") % "+t+";")}}F("var h, m;");F("var c = 0;");if(d){F("var "+S+" = this.domain;");F("for (var i = 0; i < this.splineDimension; i++) {");F(" a = arguments[i + 1];");F(" if (a < "+S+"[i][0] || a > "+S+"[i][1] || a === undefined || isNaN(a)) {");F(" throw new Error('Invalid Spline parameter in dimension '+i+'. Valid domain is ['+"+S+"[i][0]+', '+"+S+"[i][1]+']. but got t'+i+' = '+arguments[i + 1]+'.');");F(" }");F("}")}for(y=0;y<p;y++){F("var "+D(y)+" = "+o(a.points,"this.points",y)+";")}if(!O){w.push(i(a,"k","this.knots",g))}var V=[];for(y=0;y<p;y++){switch(n(g)){case n.NDARRAY:V[y]=true;break;case n.ARRAY_OF_ARRAYS:V[y]=r(g[y]);break}}for(y=0;y<p;y++){if(V[y]){F("var "+x(y)+" = 0;");F("h = "+D(y)+";");F("while(h > "+x(y)+" + 1) {");F(" m = 0.5 * (h + "+x(y)+") | 0;");F(" if ("+N([y,"m"])+" > "+C(y)+") h = m;");F(" else "+x(y)+" = m;");F("}")}else{if(_[y]==="closed"){F(x(y)+" = ("+C(y)+" | 0) % "+D(y)+";")}else{F(x(y)+" = ("+C(y)+" | 0);");F("if ("+x(y)+" < "+f[y]+") "+x(y)+" = "+f[y]+";");F("if ("+x(y)+" > "+D(y)+" - 1) "+x(y)+" = "+D(y)+" - 1;")}}}for(y=0,m=[];y<p;y++){m[y]=f[y]+1}e(m,function(e){var t=[];var i=[];for(var n=0;n<p;n++){t[n]=[x(n),e[n]-f[n]];if(_[n]==="closed"&&e[n]-f[n]<0)i[n]=D(n)}for(n=0;n<p;n++){B(t[n],i[n])}});F("out.length = "+R+";");F("return out;");w.push("}");if(h)console.log(w.join("\n"));var z=new Function([w.join("\n"),"; return ",b].join(""))();s[u]=z;return z.bind(a)}});e("nurbs/extras/sample",[],function(){"use strict";function e(e,t){var i=t[0],n=t[1],r=t[2];var o=Math.sqrt(i*i+n*n+r*r);if(o>0){e[0]=t[0]/o;e[1]=t[1]/o;e[2]=t[2]/o}return e}function t(e,t,i){var n=t[0],r=t[1],o=t[2],s=i[0],u=i[1],a=i[2];e[0]=r*a-o*u;e[1]=o*s-n*a;e[2]=n*u-r*s;return e}var i=[],n=[];return function(r,o,s){r=r||{};s=s||{};var u=r.points=r.points||[],a=r.normals=r.normals||[],l=r.faces=r.faces||[];var h=o.dimension;if(Array.isArray(s.resolution)){var d=s.resolution}else{var c=s.resolution===undefined?31:s.resolution,d=new Array(o.splineDimension).fill(c)}var f=h===3&&(s.generateNormals!==undefined?s.generateNormals:true);switch(o.splineDimension){case 1:{var g=d[0],p=o.boundary[0]==="closed",_=g+!p,v=_*h,m=o.evaluator([1,0]),y=s.domain||o.domain,w=y[0],b=w[1]-w[0];for(var N=0;N<_;++N){var C=w[0]+b*N/g,S=N*h;o.evaluate(i,C);for(var D=0;D<h;++D)u[S+D]=i[D]}u.length=v;break}case 2:{var g=d[0],x=d[1],p=o.boundary[0]==="closed",O=o.boundary[1]==="closed",_=g+!p,F=x+!O,P=_*F*3,v=_*F*h,m=o.evaluator([1,0]),R=o.evaluator([0,1]),y=s.domain||o.domain,w=y[0],B=y[1],b=w[1]-w[0],V=B[1]-B[0];for(var N=0;N<_;++N){var C=w[0]+b*N/g;for(var z=0;z<F;++z){var k=B[0]+V*z/x,S=(N+_*z)*h;o.evaluate(i,C,k);for(var D=0;D<h;++D)u[S+D]=i[D];if(f){e(i,t(i,m(i,C,k),R(n,C,k)));a[S]=i[0];a[S+1]=i[1];a[S+2]=i[2]}}}a.length=P;u.length=v;var A=0;for(var N=0;N<g;++N){var T=N,I=N+1;if(p)I=I%g;for(var z=0;z<x;++z){var j=z;var U=z+1;if(O)U=U%x;l[A++]=T+_*j;l[A++]=I+_*j;l[A++]=I+_*U;l[A++]=T+_*j;l[A++]=I+_*U;l[A++]=T+_*U}}l.length=A;break}default:throw new Error("Can only sample curves and surfaces")}return r}});e("nurbs/nurbs",["nurbs/src/utils/infer-type","nurbs/src/utils/cache-key","nurbs/src/utils/is-ndarray","nurbs/src/utils/is-ndarray-like","nurbs/src/utils/create-accessors","nurbs/src/numerical-derivative","nurbs/src/utils/is-array-like","nurbs/src/evaluate","nurbs/src/transform","nurbs/src/support","nurbs/extras/sample"],function(e,t,i,n,r,o,s,u,a,l,h){"use strict";var d={open:"open",closed:"closed",clamped:"clamped"};function c(e){return e===undefined||e===null}function f(n,h,f,g,p,_){var v,m;if(n&&!s(n)&&!i(n)){_=n;this.debug=n.debug;this.checkBounds=!!n.checkBounds;this.weights=n.weights;this.knots=n.knots;this.degree=n.degree;this.boundary=n.boundary;this.points=n.points;Object.defineProperty(this,"size",{value:_.size,writable:true,configurable:true})}else{_=_||{};this.weights=g;this.knots=f;this.degree=h;this.points=n;this.boundary=p;this.debug=_.debug;this.checkBounds=!!_.checkBounds;Object.defineProperty(this,"size",{value:_.size,writable:true,configurable:true})}var y=e(this.points);var w=e(this.weights);var b=e(this.knots);if(this.points){switch(y){case e.GENERIC_NDARRAY:case e.NDARRAY:Object.defineProperties(this,{splineDimension:{value:this.points.shape.length-1,writable:false,configurable:true},dimension:{value:this.points.shape[this.points.shape.length-1],writable:false,configurable:true},size:{get:function(){return this.points.shape.slice(0,this.points.shape.length-1)},set:function(){throw new Error("Cannot assign to read only property 'size'")},configurable:true}});break;case e.ARRAY_OF_OBJECTS:case e.ARRAY_OF_ARRAYS:var N=0;var C=this.size||[];C.length=0;for(var S=this.points;s(S[0]);S=S[0]){N++;C.push(S.length)}if(N===0){throw new Error("Expected an array of points")}Object.defineProperties(this,{splineDimension:{value:N,writable:false,configurable:true},dimension:{value:S.length,writable:false,configurable:true},size:{get:function(){var e=[];e.length=0;for(var t=0,i=this.points;t<this.splineDimension;t++,i=i[0]){e[t]=i.length}return e},set:function(){throw new Error("Cannot assign to read only property 'size'")},configurable:true}});break;case e.PACKED:default:throw new Error("Expected either a packed array, array of arrays, or ndarray of points")}}else{if(this.size===undefined||this.size===null){throw new Error("Either points or a control hull size must be provided.")}if(!s(this.size)){Object.defineProperty(this,"size",{value:[this.size],writable:true,configurable:true})}if(this.size.length===0){throw new Error("`size` must be a number or an array of length at least one.")}Object.defineProperties(this,{splineDimension:{value:this.size.length,writable:false,configurable:true},dimension:{value:0,writable:false,configurable:true}})}if(s(this.degree)){for(v=0;v<this.splineDimension;v++){if(c(this.degree[v])){throw new Error("Missing degree in dimension "+(v+1))}}}else{var D=!c(this.degree);var x=c(this.degree)?2:this.degree;this.degree=[];for(v=0;v<this.splineDimension;v++){if(this.size[v]<=x){if(D){throw new Error("Expected at least "+(x+1)+" points for degree "+x+" spline in dimension "+(v+1)+" but got only "+this.size[v])}else{this.degree[v]=this.size[v]-1}}else{this.degree[v]=x}}}m=typeof this.boundary!=="string"?"open":this.boundary;if(!d[m]){throw new Error("Boundary type must be one of "+Object.keys(d)+". Got "+m)}this.boundary=s(this.boundary)?this.boundary:[];this.boundary.length=this.splineDimension;for(v=0;v<this.splineDimension;v++){this.boundary[v]=c(this.boundary[v])?m:this.boundary[v];if(!d[m]){throw new Error("Boundary type must be one of "+Object.keys(d)+". Got "+m+" for dimension "+(v+1))}}switch(b){case e.ARRAY_OF_ARRAYS:if(s(this.knots)&&this.knots.length>0&&!s(this.knots[0])){this.knots=[this.knots]}for(v=0;v<this.splineDimension;v++){if(this.size[v]<=this.degree[v]){throw new Error("Expected at least "+(this.degree[v]+1)+" points in dimension "+(v+1)+" but got "+this.size[v]+".")}if(s(this.knots[v])){if(this.boundary[v]!=="closed"&&this.knots[v].length!==this.degree[v]+this.size[v]+1){throw new Error("Expected "+(this.degree[v]+this.size[v]+1)+" knots in dimension "+(v+1)+" but got "+this.knots[v].length+".")}else if(this.boundary[v]==="closed"&&this.knots[v].length!==this.size[v]+1){var O=this.knots[v].length===this.size[v]+this.degree[v]+1;if(!O){throw new Error("Expected "+(this.size[v]+1)+" knots for closed spline in dimension "+(v+1)+" but got "+this.knots[v].length+".")}}}}break;case e.NDARRAY:break}var F=t(this,this.debug,this.checkBounds,y,w,b);if(F!==this.__cacheKey){this.__cacheKey=F;var P=r(this);this.evaluate=u(this.__cacheKey,this,P,this.debug,this.checkBounds,false);this.transform=a(this.__cacheKey,this,P,this.debug);this.support=l(this.__cacheKey,this,P,this.debug,this.checkBounds);this.evaluator=function(e,t){return u(this.__cacheKey,this,P,this.debug,this.checkBounds,t,e)}}this.numericalDerivative=o.bind(this);return this}function g(){var e;var t=[];var i=this.points;if(!i){e=this.size}else if(n(i)){e=i.shape}for(var r=0;r<this.splineDimension;r++){var o=e?e[r]:i.length;var s=this.degree[r];var u=this.boundary[r]==="closed";if(this.knots&&this.knots[r]){var a=this.knots[r];t[r]=[a[u?0:s],a[o]]}else{t[r]=[u?0:s,o]}if(i)i=i[0]}return t}function p(e,t,i,n,r,o){var s=function(e,t,i,n,r,o){u(e,t,i,n,r,o);return s};var u=f.bind(s);Object.defineProperty(s,"domain",{get:g});u(e,t,i,n,r,o);return s}p.sample=h;return p});e("nurbs",["nurbs/nurbs"],function(e){return e});e("x_ite/Components/NURBS/NurbsCurve",["x_ite/Bits/X3DCast","x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/NURBS/X3DParametricGeometryNode","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Bits/X3DConstants","x_ite/Browser/NURBS/NURBS","nurbs"],function(e,t,i,n,r,o,s,u,a){"use strict";function l(e){r.call(this,e);this.addType(s.NurbsCurve);this.setGeometryType(1);this.knots=[];this.weights=[];this.controlPoints=[];this.mesh={};this.sampleOptions={resolution:[]}}l.prototype=Object.assign(Object.create(r.prototype),o.prototype,{constructor:l,fieldDefinitions:new n([new i(s.inputOutput,"metadata",new t.SFNode),new i(s.inputOutput,"tessellation",new t.SFInt32),new i(s.initializeOnly,"closed",new t.SFBool),new i(s.initializeOnly,"order",new t.SFInt32(3)),new i(s.initializeOnly,"knot",new t.MFDouble),new i(s.inputOutput,"weight",new t.MFDouble),new i(s.inputOutput,"controlPoint",new t.SFNode)]),getTypeName:function(){return"NurbsCurve"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"geometry"},initialize:function(){r.prototype.initialize.call(this);this.controlPoint_.addInterest("set_controlPoint__",this);this.setPrimitiveMode(this.getBrowser().getContext().LINES);this.setSolid(false);this.set_controlPoint__()},set_controlPoint__:function(){if(this.controlPointNode)this.controlPointNode.removeInterest("requestRebuild",this);this.controlPointNode=e(s.X3DCoordinateNode,this.controlPoint_);if(this.controlPointNode)this.controlPointNode.addInterest("requestRebuild",this)},getTessellation:function(e){return u.getTessellation(this.tessellation_.getValue(),e-this.order_.getValue())},getClosed:function(e,t,i,n){if(!this.closed_.getValue())return false;return u.getClosed(e,t,i,n)},getWeights:function(e,t,i,n,r){return u.getWeights(e,t,i,n,r)},getControlPoints:function(e,t,i,n){return u.getControlPoints(e,t,i,n)},tessellate:function(){if(this.order_.getValue()<2)return[];if(!this.controlPointNode)return[];if(this.controlPointNode.getSize()<this.order_.getValue())return[];var e=this.getVertices(),t=[];if(e.length){for(var i=0,n=e.length;i<n;i+=8)t.push(e[i],e[i+1],e[i+2]);t.push(e[n-4],e[n-3],e[n-2])}return t},build:function(){if(this.order_.getValue()<2)return;if(!this.controlPointNode)return;if(this.controlPointNode.getSize()<this.order_.getValue())return;var e=this.getClosed(this.order_.getValue(),this.knot_,this.weight_,this.controlPointNode),t=this.getControlPoints(this.controlPoints,e,this.order_.getValue(),this.controlPointNode);var i=this.getKnots(this.knots,e,this.order_.getValue(),this.controlPointNode.getSize(),this.knot_),n=i[i.length-1]-i[0];var r=this.getWeights(this.weights,e,this.order_.getValue(),this.controlPointNode.getSize(),this.weight_);var o=this.order_.getValue()-1;var s=this.surface=(this.surface||a)({boundary:["open"],degree:[o],knots:[i],weights:r,points:t,debug:false});this.sampleOptions.resolution[0]=this.getTessellation(i.length);var u=a.sample(this.mesh,s,this.sampleOptions),l=u.points,h=this.getVertices();for(var d=3,c=l.length;d<c;d+=3){var f=d-3;h.push(l[f],l[f+1],l[f+2],1);h.push(l[d],l[d+1],l[d+2],1)}}});return l});e("x_ite/Components/NURBS/NurbsCurve2D",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/NURBS/X3DNurbsControlCurveNode","x_ite/Bits/X3DConstants","x_ite/Browser/NURBS/NURBS","nurbs"],function(e,t,i,n,r,o,s){"use strict";function u(e){n.call(this,e);this.addType(r.NurbsCurve2D);this.knots=[];this.weights=[];this.controlPoints=[];this.mesh={};this.sampleOptions={resolution:[]};this.array=[]}u.prototype=Object.assign(Object.create(n.prototype),{constructor:u,
2
- fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"tessellation",new e.SFInt32),new t(r.initializeOnly,"closed",new e.SFBool),new t(r.initializeOnly,"order",new e.SFInt32(3)),new t(r.initializeOnly,"knot",new e.MFDouble),new t(r.inputOutput,"weight",new e.MFDouble),new t(r.inputOutput,"controlPoint",new e.MFVec2d)]),getTypeName:function(){return"NurbsCurve2D"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},getTessellation:function(e){return o.getTessellation(this.tessellation_.getValue(),e-this.order_.getValue())},getClosed:function(e,t,i,n){if(!this.closed_.getValue())return false;return o.getClosed2D(e,t,i,n)},getKnots:function(e,t,i,n,r){return o.getKnots(e,t,i,n,r)},getWeights:function(e,t,i,n,r){return o.getWeights(e,t,i,n,r)},getControlPoints:function(e,t,i,n){return o.getControlPoints2D(e,t,i,n)},tessellate:function(e){var t=this.array;t.length=0;if(this.order_.getValue()<2)return t;if(this.controlPoint_.length<this.order_.getValue())return t;var i=this.getClosed(this.order_.getValue(),this.knot_,this.weight_,this.controlPoint_),n=this.getControlPoints(this.controlPoints,i,this.order_.getValue(),this.controlPoint_);var r=this.getKnots(this.knots,i,this.order_.getValue(),this.controlPoint_.length,this.knot_),o=r[r.length-1]-r[0];var u=this.getWeights(this.weights,i,this.order_.getValue(),this.controlPoint_.length,this.weight_);var a=this.order_.getValue()-1;var l=this.surface=(this.surface||s)({boundary:["open"],degree:[a],knots:[r],weights:u,points:n,debug:false});this.sampleOptions.resolution[0]=this.getTessellation(r.length);var h=s.sample(this.mesh,l,this.sampleOptions),d=h.points;if(e){for(var c=0,f=d.length;c<f;c+=2)t.push(d[c],0,d[c+1])}else{for(var c=0,f=d.length;c<f;c+=2)t.push(d[c],d[c+1])}return t}});return u});e("x_ite/Components/NURBS/NurbsOrientationInterpolator",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/Interpolation/OrientationInterpolator","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","x_ite/Browser/NURBS/NURBS","standard/Math/Numbers/Vector3","standard/Math/Numbers/Rotation4","nurbs"],function(e,t,i,n,r,o,s,u,a,l,h){"use strict";function d(t){n.call(this,t);this.addType(o.NurbsOrientationInterpolator);this.addChildObjects("rebuild",new e.SFTime);this.interpolator=new r(t);this.knots=[];this.weights=[];this.controlPoints=[];this.mesh={};this.sampleOptions={resolution:[128]}}d.prototype=Object.assign(Object.create(n.prototype),{constructor:d,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOutput,"order",new e.SFInt32(3)),new t(o.inputOutput,"knot",new e.MFDouble),new t(o.inputOutput,"weight",new e.MFDouble),new t(o.inputOutput,"controlPoint",new e.SFNode),new t(o.outputOnly,"value_changed",new e.SFRotation)]),getTypeName:function(){return"NurbsOrientationInterpolator"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);this.order_.addInterest("requestRebuild",this);this.knot_.addInterest("requestRebuild",this);this.weight_.addInterest("requestRebuild",this);this.controlPoint_.addInterest("set_controlPoint__",this);this.rebuild_.addInterest("build",this);this.set_fraction_.addFieldInterest(this.interpolator.set_fraction_);this.interpolator.value_changed_.addFieldInterest(this.value_changed_);this.interpolator.setup();this.set_controlPoint__()},set_controlPoint__:function(){if(this.controlPointNode)this.controlPointNode.removeInterest("requestRebuild",this);this.controlPointNode=s(o.X3DCoordinateNode,this.controlPoint_);if(this.controlPointNode)this.controlPointNode.addInterest("requestRebuild",this);this.requestRebuild()},getClosed:function(e,t,i,n){return false&&u.getClosed(e,t,i,n)},getKnots:function(e,t,i,n,r){return u.getKnots(e,t,i,n,r)},getWeights:function(e,t,i,n,r){return u.getWeights(e,t,i,n,r)},getControlPoints:function(e,t,i,n){return u.getControlPoints(e,t,i,n)},requestRebuild:function(){this.rebuild_.addEvent()},build:function(){if(this.order_.getValue()<2)return;if(!this.controlPointNode)return;if(this.controlPointNode.getSize()<this.order_.getValue())return;var e=this.getClosed(this.order_.getValue(),this.knot_,this.weight_,this.controlPointNode),t=this.getControlPoints(this.controlPoints,e,this.order_.getValue(),this.controlPointNode);var i=this.getKnots(this.knots,e,this.order_.getValue(),this.controlPointNode.getSize(),this.knot_),n=i[i.length-1]-i[0];var r=this.getWeights(this.weights,e,this.order_.getValue(),this.controlPointNode.getSize(),this.weight_);var o=this.order_.getValue()-1;var s=this.surface=(this.surface||h)({boundary:["open"],degree:[o],knots:[i],weights:r,points:t,debug:false});var u=h.sample(this.mesh,s,this.sampleOptions),d=u.points,c=this.interpolator;c.key_.length=0;c.keyValue_.length=0;for(var f=0,g=d.length-3;f<g;f+=3){var p=new a(d[f+3]-d[f+0],d[f+4]-d[f+1],d[f+5]-d[f+2]);c.key_.push(i[0]+f/(g-3+3*e)*n);c.keyValue_.push(new l(a.zAxis,p))}if(e){c.key_.push(i[0]+n);c.keyValue_.push(c.keyValue_[0])}}});return d});e("x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode",["x_ite/Components/NURBS/X3DParametricGeometryNode","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","x_ite/Browser/NURBS/NURBS","nurbs"],function(e,t,i,n,r){"use strict";function o(i){e.call(this,i);this.addType(t.X3DNurbsSurfaceGeometryNode);this.tessellationScale=1;this.uKnots=[];this.vKnots=[];this.weights=[];this.controlPoints=[];this.mesh={};this.sampleOptions={resolution:[]};this.textUKnots=[];this.textVKnots=[];this.textWeights=[];this.texControlPoints=[];this.texMesh={}}o.prototype=Object.assign(Object.create(e.prototype),{constructor:o,initialize:function(){e.prototype.initialize.call(this);this.texCoord_.addInterest("set_texCoord__",this);this.controlPoint_.addInterest("set_controlPoint__",this);this.set_texCoord__();this.set_controlPoint__()},set_texCoord__:function(){if(this.texCoordNode)this.texCoordNode.removeInterest("requestRebuild",this);if(this.nurbsTexCoordNode)this.nurbsTexCoordNode.removeInterest("requestRebuild",this);this.texCoordNode=i(t.X3DTextureCoordinateNode,this.texCoord_);this.nurbsTexCoordNode=i(t.NurbsTextureCoordinate,this.texCoord_);if(this.texCoordNode)this.texCoordNode.addInterest("requestRebuild",this);if(this.nurbsTexCoordNode)this.nurbsTexCoordNode.addInterest("requestRebuild",this)},set_controlPoint__:function(){if(this.controlPointNode)this.controlPointNode.removeInterest("requestRebuild",this);this.controlPointNode=i(t.X3DCoordinateNode,this.controlPoint_);if(this.controlPointNode)this.controlPointNode.addInterest("requestRebuild",this)},setTessellationScale:function(e){this.tessellationScale=e;this.requestRebuild()},getUTessellation:function(e){return Math.floor(n.getTessellation(this.uTessellation_.getValue(),e-this.uOrder_.getValue())*this.tessellationScale)},getVTessellation:function(e){return Math.floor(n.getTessellation(this.vTessellation_.getValue(),e-this.vOrder_.getValue())*this.tessellationScale)},getUClosed:function(e,t,i,r,o,s){if(this.uClosed_.getValue())return n.getUClosed(e,t,i,r,o,s);return false},getVClosed:function(e,t,i,r,o,s){if(this.vClosed_.getValue())return n.getVClosed(e,t,i,r,o,s);return false},getUVWeights:function(e,t,i,r,o,s,u,a){return n.getUVWeights(e,t,i,r,o,s,u,a)},getTexControlPoints:function(e,t,i,r,o,s,u,a){return n.getTexControlPoints(e,t,i,r,o,s,u,a)},getUVControlPoints:function(e,t,i,r,o,s,u,a){return n.getUVControlPoints(e,t,i,r,o,s,u,a)},build:function(){if(this.uOrder_.getValue()<2)return;if(this.vOrder_.getValue()<2)return;if(this.uDimension_.getValue()<this.uOrder_.getValue())return;if(this.vDimension_.getValue()<this.vOrder_.getValue())return;if(!this.controlPointNode)return;if(this.controlPointNode.getSize()!==this.uDimension_.getValue()*this.vDimension_.getValue())return;var e=this.getUClosed(this.uOrder_.getValue(),this.uDimension_.getValue(),this.vDimension_.getValue(),this.uKnot_,this.weight_,this.controlPointNode),t=this.getVClosed(this.vOrder_.getValue(),this.uDimension_.getValue(),this.vDimension_.getValue(),this.vKnot_,this.weight_,this.controlPointNode),i=this.getUVControlPoints(this.controlPoints,e,t,this.uOrder_.getValue(),this.vOrder_.getValue(),this.uDimension_.getValue(),this.vDimension_.getValue(),this.controlPointNode);var n=this.getKnots(this.uKnots,e,this.uOrder_.getValue(),this.uDimension_.getValue(),this.uKnot_),o=this.getKnots(this.vKnots,t,this.vOrder_.getValue(),this.vDimension_.getValue(),this.vKnot_),s=n[n.length-1]-n[0],u=o[o.length-1]-o[0];var a=this.getUVWeights(this.weights,e,t,this.uOrder_.getValue(),this.vOrder_.getValue(),this.uDimension_.getValue(),this.vDimension_.getValue(),this.weight_);var l=this.uOrder_.getValue()-1,h=this.vOrder_.getValue()-1;var d=this.surface=(this.surface||r)({boundary:["open","open"],degree:[l,h],knots:[n,o],weights:a,points:i,debug:false});var c=this.sampleOptions;c.resolution[0]=this.getUTessellation(n.length);c.resolution[1]=this.getVTessellation(o.length);c.generateNormals=true;c.domain=undefined;var f=r.sample(this.mesh,d,c),g=f.faces,p=f.normals,_=f.points,v=this.getNormals(),m=this.getVertices();for(var y=0,w=g.length;y<w;++y){var b=g[y]*3;v.push(p[b],p[b+1],p[b+2]);m.push(_[b],_[b+1],_[b+2],1)}this.buildNurbsTexCoords(e,t,this.uOrder_.getValue(),this.vOrder_.getValue(),n,o,this.uDimension_.getValue(),this.vDimension_.getValue(),d.domain);this.setSolid(this.solid_.getValue());this.setCCW(true)},buildNurbsTexCoords:function(){var e=[],t=[],i=[[[0,0,0,1],[0,1,0,1]],[[1,0,0,1],[1,1,0,1]]];function n(e,t){e[0]=e[1]=t[0];e[2]=e[3]=t[t.length-1];return e}return function(o,s,u,a,l,h,d,c,f){var g=this.sampleOptions;if(this.texCoordNode&&this.texCoordNode.getSize()===d*c){var p=u-1,_=a-1,v=l,m=h,y=undefined,w=this.getTexControlPoints(this.texControlPoints,o,s,u,a,d,c,this.texCoordNode)}else if(this.nurbsTexCoordNode&&this.nurbsTexCoordNode.isValid()){var b=this.nurbsTexCoordNode,p=b.uOrder_.getValue()-1,_=b.vOrder_.getValue()-1,v=this.getKnots(this.texUKnots,false,b.uOrder_.getValue(),b.uDimension_.getValue(),b.uKnot_),m=this.getKnots(this.texVKnots,false,b.vOrder_.getValue(),b.vDimension_.getValue(),b.vKnot_),y=this.getUVWeights(this.texWeights,false,false,b.uOrder_.getValue(),b.vOrder_.getValue(),b.uDimension_.getValue(),b.vDimension_.getValue(),b.weight_);w=b.getControlPoints()}else{var p=1,_=1,v=n(e,l),m=n(t,h),y=undefined,w=i;g.domain=f}var N=this.texSurface=(this.texSurface||r)({boundary:["open","open"],degree:[p,_],knots:[v,m],weights:y,points:w});g.generateNormals=false;var C=r.sample(this.texMesh,N,g),S=C.faces,D=C.points,x=this.getTexCoords();for(var O=0,F=S.length;O<F;++O){var P=S[O]*4;x.push(D[P],D[P+1],D[P+2],D[P+3])}this.getMultiTexCoords().push(this.getTexCoords())}}()});return o});e("x_ite/Components/NURBS/NurbsPatchSurface",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,r){"use strict";function o(e){n.call(this,e);this.addType(r.NurbsPatchSurface)}o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"solid",new e.SFBool(true)),new t(r.inputOutput,"uTessellation",new e.SFInt32),new t(r.inputOutput,"vTessellation",new e.SFInt32),new t(r.initializeOnly,"uClosed",new e.SFBool),new t(r.initializeOnly,"vClosed",new e.SFBool),new t(r.initializeOnly,"uOrder",new e.SFInt32(3)),new t(r.initializeOnly,"vOrder",new e.SFInt32(3)),new t(r.initializeOnly,"uDimension",new e.SFInt32),new t(r.initializeOnly,"vDimension",new e.SFInt32),new t(r.initializeOnly,"uKnot",new e.MFDouble),new t(r.initializeOnly,"vKnot",new e.MFDouble),new t(r.inputOutput,"weight",new e.MFDouble),new t(r.inputOutput,"texCoord",new e.SFNode),new t(r.inputOutput,"controlPoint",new e.SFNode)]),getTypeName:function(){return"NurbsPatchSurface"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"geometry"}});return o});e("x_ite/Components/NURBS/NurbsPositionInterpolator",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/Interpolation/PositionInterpolator","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","x_ite/Browser/NURBS/NURBS","nurbs"],function(e,t,i,n,r,o,s,u,a){"use strict";function l(t){n.call(this,t);this.addType(o.NurbsPositionInterpolator);this.addChildObjects("rebuild",new e.SFTime);this.interpolator=new r(t);this.knots=[];this.weights=[];this.controlPoints=[];this.mesh={};this.sampleOptions={resolution:[128]}}l.prototype=Object.assign(Object.create(n.prototype),{constructor:l,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOutput,"order",new e.SFInt32(3)),new t(o.inputOutput,"knot",new e.MFDouble),new t(o.inputOutput,"weight",new e.MFDouble),new t(o.inputOutput,"controlPoint",new e.SFNode),new t(o.outputOnly,"value_changed",new e.SFVec3f)]),getTypeName:function(){return"NurbsPositionInterpolator"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);this.order_.addInterest("requestRebuild",this);this.knot_.addInterest("requestRebuild",this);this.weight_.addInterest("requestRebuild",this);this.controlPoint_.addInterest("set_controlPoint__",this);this.rebuild_.addInterest("build",this);this.set_fraction_.addFieldInterest(this.interpolator.set_fraction_);this.interpolator.value_changed_.addFieldInterest(this.value_changed_);this.interpolator.setup();this.set_controlPoint__()},set_controlPoint__:function(){if(this.controlPointNode)this.controlPointNode.removeInterest("requestRebuild",this);this.controlPointNode=s(o.X3DCoordinateNode,this.controlPoint_);if(this.controlPointNode)this.controlPointNode.addInterest("requestRebuild",this);this.requestRebuild()},getClosed:function(e,t,i,n){return false&&u.getClosed(e,t,i,n)},getKnots:function(e,t,i,n,r){return u.getKnots(e,t,i,n,r)},getWeights:function(e,t,i,n,r){return u.getWeights(e,t,i,n,r)},getControlPoints:function(e,t,i,n){return u.getControlPoints(e,t,i,n)},requestRebuild:function(){this.rebuild_.addEvent()},build:function(){if(this.order_.getValue()<2)return;if(!this.controlPointNode)return;if(this.controlPointNode.getSize()<this.order_.getValue())return;var t=this.getClosed(this.order_.getValue(),this.knot_,this.weight_,this.controlPointNode),i=this.getControlPoints(this.controlPoints,t,this.order_.getValue(),this.controlPointNode);var n=this.getKnots(this.knots,t,this.order_.getValue(),this.controlPointNode.getSize(),this.knot_),r=n[n.length-1]-n[0];var o=this.getWeights(this.weights,t,this.order_.getValue(),this.controlPointNode.getSize(),this.weight_);var s=this.order_.getValue()-1;var u=this.surface=(this.surface||a)({boundary:["open"],degree:[s],knots:[n],weights:o,points:i,debug:false});var l=a.sample(this.mesh,u,this.sampleOptions),h=l.points,d=this.interpolator;d.key_.length=0;d.keyValue_.length=0;for(var c=0,f=h.length;c<f;c+=3){d.key_.push(n[0]+c/(f-3)*r);d.keyValue_.push(new e.SFVec3f(h[c],h[c+1],h[c+2]))}}});return l});e("x_ite/Components/NURBS/NurbsSet",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast"],function(e,t,i,n,r,o,s){"use strict";function u(e,t,i,n,r,o){var s={};for(var u=r;u<o;++u)s[getId(n[u])]=true;function a(e){return s[getId(e)]}return e.remove(t,i,a)}function a(e){n.call(this,e);r.call(this,e);this.addType(o.NurbsSet);this.geometryNodes=[]}a.prototype=Object.assign(Object.create(n.prototype),r.prototype,{constructor:a,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOutput,"tessellationScale",new e.SFFloat(1)),new t(o.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(o.initializeOnly,"bboxCenter",new e.SFVec3f),new t(o.inputOnly,"addGeometry",new e.MFNode),new t(o.inputOnly,"removeGeometry",new e.MFNode),new t(o.inputOutput,"geometry",new e.MFNode)]),getTypeName:function(){return"NurbsSet"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this);r.prototype.initialize.call(this);this.tessellationScale_.addInterest("set_tessellationScale__",this);this.addGeometry_.addInterest("set_addGeometry__",this);this.removeGeometry_.addInterest("set_removeGeometry__",this);this.geometry_.addInterest("set_geometry__",this);this.set_geometry__()},set_tessellationScale__:function(){var e=Math.max(0,this.tessellationScale_.getValue());for(var t=0,i=this.geometryNodes.length;t<i;++t)this.geometryNodes[t].setTessellationScale(e)},set_addGeometry__:function(){this.addGeometry_.setTainted(true);this.addGeometry_.erase(u(this.addGeometry_,0,this.addGeometry_.length,this.geometry_,0,this.geometry_.length),this.addGeometry_.length);for(var e=0,t=this.addGeometry_.length;e<t;++e)this.geometry_.push(this.addGeometry_[e]);this.addGeometry_.setTainted(false)},set_removeGeometry__:function(){this.geometry_.erase(u(this.geometry_,0,this.geometry_.length,this.removeGeometry_,0,this.removeGeometry_.length),this.geometry__.length)},set_geometry__:function(){for(var e=0,t=this.geometryNodes.length;e<t;++e)this.geometryNodes[e].setTessellationScale(1);this.geometryNodes.length=0;for(var e=0,t=this.geometry_.length;e<t;++e){var i=s(o.X3DNurbsSurfaceGeometryNode,this.geometry_[e]);if(i)this.geometryNodes.push(i)}this.set_tessellationScale__()}});return a});e("standard/Math/Geometry/Triangle2",[],function(){"use strict";return{isPointInTriangle:function(e,t,i,n){var r=(t.y-i.y)*(e.x-i.x)+(i.x-t.x)*(e.y-i.y);if(r==0)return false;var o=((t.y-i.y)*(n.x-i.x)+(i.x-t.x)*(n.y-i.y))/r;if(o<0||o>1)return false;var s=((i.y-e.y)*(n.x-i.x)+(e.x-i.x)*(n.y-i.y))/r;if(s<0||s>1)return false;var u=1-o-s;if(u<0||u>1)return false;return true}}});e("x_ite/Components/NURBS/NurbsSurfaceInterpolator",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Components/NURBS/NurbsPatchSurface","x_ite/Bits/X3DConstants","standard/Math/Geometry/Line3","standard/Math/Geometry/Triangle2","standard/Math/Numbers/Vector3"],function(e,t,i,n,r,o,s,u,a){"use strict";function l(e){n.call(this,e);this.addType(o.NurbsSurfaceInterpolator);this.geometry=new r(e)}l.prototype=Object.assign(Object.create(n.prototype),{constructor:l,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFVec2f),new t(o.initializeOnly,"uOrder",new e.SFInt32(3)),new t(o.initializeOnly,"vOrder",new e.SFInt32(3)),new t(o.initializeOnly,"uDimension",new e.SFInt32),new t(o.initializeOnly,"vDimension",new e.SFInt32),new t(o.initializeOnly,"uKnot",new e.MFDouble),new t(o.initializeOnly,"vKnot",new e.MFDouble),new t(o.inputOutput,"weight",new e.MFDouble),new t(o.inputOutput,"controlPoint",new e.SFNode),new t(o.outputOnly,"normal_changed",new e.SFVec3f),new t(o.outputOnly,"position_changed",new e.SFVec3f)]),getTypeName:function(){return"NurbsSurfaceInterpolator"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"children"},initialize:function(){this.set_fraction_.addInterest("set_fraction__",this);this.uOrder_.addFieldInterest(this.geometry.uOrder_);this.vOrder_.addFieldInterest(this.geometry.vOrder_);this.uDimension_.addFieldInterest(this.geometry.uDimension_);this.vDimension_.addFieldInterest(this.geometry.vDimension_);this.uKnot_.addFieldInterest(this.geometry.uKnot_);this.vKnot_.addFieldInterest(this.geometry.vKnot_);this.weight_.addFieldInterest(this.geometry.weight_);this.controlPoint_.addFieldInterest(this.geometry.controlPoint_);this.geometry.uTessellation_=128;this.geometry.vTessellation_=128;this.geometry.uOrder_=this.uOrder_;this.geometry.vOrder_=this.vOrder_;this.geometry.uDimension_=this.uDimension_;this.geometry.vDimension_=this.vDimension_;this.geometry.uKnot_=this.uKnot_;this.geometry.vKnot_=this.vKnot_;this.geometry.weight_=this.weight_;this.geometry.controlPoint_=this.controlPoint_;this.geometry.setup()},set_fraction__:function(){var e=new a(0,0,0),t=new a(0,0,0),i=new a(0,0,0),n=new a(0,0,0),r=new s(a.Zero,a.zAxis),o={};return function(){var s=this.set_fraction_.getValue(),l=this.geometry.getTexCoords(),h=this.geometry.getNormals(),d=this.geometry.getVertices();for(var c=0,f=0,g=l.length;c<g;c+=12,f+=9){e.set(l[c+0],l[c+1],0);t.set(l[c+4],l[c+5],0);i.set(l[c+7],l[c+9],0);if(u.isPointInTriangle(e,t,i,s)){r.set(n.set(s.x,s.y,0),a.zAxis);if(r.intersectsTriangle(e,t,i,o)){var p=o.u,_=o.v,v=o.t;var m=new a(v*h[f+0]+p*h[f+3]+_*h[f+6],v*h[f+1]+p*h[f+4]+_*h[f+7],v*h[f+2]+p*h[f+5]+_*h[f+8]);var y=new a(v*d[c+0]+p*d[c+4]+_*d[c+8],v*d[c+1]+p*d[c+5]+_*d[c+9],v*d[c+2]+p*d[c+6]+_*d[c+10]);this.normal_changed_=m;this.position_changed_=y}}}}}()});return l});e("x_ite/Components/NURBS/NurbsSweptSurface",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Geometry3D/Extrusion","x_ite/Components/NURBS/X3DParametricGeometryNode","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast"],function(e,t,i,n,r,o,s){"use strict";function u(e){r.call(this,e);this.addType(o.NurbsSweptSurface);this.extrusion=new n(e)}u.prototype=Object.assign(Object.create(r.prototype),{constructor:u,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"solid",new e.SFBool(true)),new t(o.initializeOnly,"ccw",new e.SFBool(true)),new t(o.inputOutput,"crossSectionCurve",new e.SFNode),new t(o.inputOutput,"trajectoryCurve",new e.SFNode)]),getTypeName:function(){return"NurbsSweptSurface"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"geometry"},initialize:function(){r.prototype.initialize.call(this);this.crossSectionCurve_.addInterest("set_crossSectionCurve__",this);this.trajectoryCurve_.addInterest("set_trajectoryCurve__",this);var e=this.extrusion;e.beginCap_=false;e.endCap_=false;e.solid_=true;e.ccw_=true;e.convex_=true;e.creaseAngle_=Math.PI;e.setup();e.crossSection_.setTainted(true);e.spine_.setTainted(true);this.set_crossSectionCurve__();this.set_trajectoryCurve__()},set_crossSectionCurve__:function(){if(this.crossSectionCurveNode)this.crossSectionCurveNode.removeInterest("requestRebuild",this);this.crossSectionCurveNode=s(o.X3DNurbsControlCurveNode,this.crossSectionCurve_);if(this.crossSectionCurveNode)this.crossSectionCurveNode.addInterest("requestRebuild",this)},set_trajectoryCurve__:function(){if(this.trajectoryCurveNode)this.trajectoryCurveNode.rebuild_.removeInterest("requestRebuild",this);this.trajectoryCurveNode=s(o.NurbsCurve,this.trajectoryCurve_);if(this.trajectoryCurveNode)this.trajectoryCurveNode.rebuild_.addInterest("requestRebuild",this)},build:function(){if(!this.crossSectionCurveNode)return;if(!this.trajectoryCurveNode)return;var e=this.extrusion;e.crossSection_=this.crossSectionCurveNode.tessellate();e.spine_=this.trajectoryCurveNode.tessellate();e.rebuild();this.getColors().assign(e.getColors());this.getTexCoords().assign(e.getTexCoords());this.getNormals().assign(e.getNormals());this.getVertices().assign(e.getVertices());this.getMultiTexCoords().push(this.getTexCoords());if(!this.ccw_.getValue()){var t=this.getNormals();for(var i=0,n=t.length;i<n;++i)t[i]=-t[i]}this.setSolid(this.solid_.getValue());this.setCCW(this.ccw_.getValue())}});return u});e("x_ite/Components/NURBS/NurbsSwungSurface",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Geometry3D/Extrusion","x_ite/Components/NURBS/X3DParametricGeometryNode","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast"],function(e,t,i,n,r,o,s){"use strict";function u(e){r.call(this,e);this.addType(o.NurbsSwungSurface);this.extrusion=new n(e)}u.prototype=Object.assign(Object.create(r.prototype),{constructor:u,fieldDefinitions:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"solid",new e.SFBool(true)),new t(o.initializeOnly,"ccw",new e.SFBool(true)),new t(o.inputOutput,"profileCurve",new e.SFNode),new t(o.inputOutput,"trajectoryCurve",new e.SFNode)]),getTypeName:function(){return"NurbsSwungSurface"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"geometry"},initialize:function(){r.prototype.initialize.call(this);this.profileCurve_.addInterest("set_profileCurve__",this);this.trajectoryCurve_.addInterest("set_trajectoryCurve__",this);var e=this.extrusion;e.beginCap_=false;e.endCap_=false;e.solid_=true;e.ccw_=true;e.convex_=true;e.creaseAngle_=Math.PI;e.setup();e.crossSection_.setTainted(true);e.spine_.setTainted(true);this.set_profileCurve__();this.set_trajectoryCurve__()},set_profileCurve__:function(){if(this.profileCurveNode)this.profileCurveNode.removeInterest("requestRebuild",this);this.profileCurveNode=s(o.X3DNurbsControlCurveNode,this.profileCurve_);if(this.profileCurveNode)this.profileCurveNode.addInterest("requestRebuild",this)},set_trajectoryCurve__:function(){if(this.trajectoryCurveNode)this.trajectoryCurveNode.removeInterest("requestRebuild",this);this.trajectoryCurveNode=s(o.X3DNurbsControlCurveNode,this.trajectoryCurve_);if(this.trajectoryCurveNode)this.trajectoryCurveNode.addInterest("requestRebuild",this)},build:function(){if(!this.profileCurveNode)return;if(!this.trajectoryCurveNode)return;var e=this.extrusion;e.crossSection_=this.profileCurveNode.tessellate();e.spine_=this.trajectoryCurveNode.tessellate(true);e.rebuild();this.getColors().assign(e.getColors());this.getTexCoords().assign(e.getTexCoords());this.getNormals().assign(e.getNormals());this.getVertices().assign(e.getVertices());this.getMultiTexCoords().push(this.getTexCoords());if(!this.ccw_.getValue()){var t=this.getNormals();for(var i=0,n=t.length;i<n;++i)t[i]=-t[i]}this.setSolid(this.solid_.getValue());this.setCCW(this.ccw_.getValue())}});return u});e("x_ite/Components/NURBS/NurbsTextureCoordinate",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector4"],function(e,t,i,n,r,o){"use strict";function s(e){n.call(this,e);this.addType(r.NurbsTextureCoordinate);this.constrolPoints=[]}s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"uOrder",new e.SFInt32(3)),new t(r.initializeOnly,"vOrder",new e.SFInt32(3)),new t(r.initializeOnly,"uDimension",new e.SFInt32),new t(r.initializeOnly,"vDimension",new e.SFInt32),new t(r.initializeOnly,"uKnot",new e.MFDouble),new t(r.initializeOnly,"vKnot",new e.MFDouble),new t(r.inputOutput,"weight",new e.MFFloat),new t(r.inputOutput,"controlPoint",new e.MFVec2f)]),getTypeName:function(){return"NurbsTextureCoordinate"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"texCoord"},initialize:function(){n.prototype.initialize.call(this)},getControlPoints:function(){var e=this.controlPoint_.getValue(),t=this.constrolPoints;for(var i=0,n=this.uDimension_.getValue();i<n;++i){var r=t[i];if(!r)r=t[i]=[];for(var s=0,u=this.vDimension_.getValue();s<u;++s){var a=r[s]||new o,l=(s*n+i)*2;r[s]=a.set(e[l],e[l+1],0,1)}}return t},isValid:function(){if(this.uOrder_.getValue()<2)return false;if(this.vOrder_.getValue()<2)return false;if(this.uDimension_.getValue()<this.uOrder_.getValue())return false;if(this.vDimension_.getValue()<this.vOrder_.getValue())return false;if(this.controlPoint_.length!==this.uDimension_.getValue()*this.vDimension_.getValue())return false;return true}});return s});e("x_ite/Components/NURBS/NurbsTrimmedSurface",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode","x_ite/Bits/X3DConstants"],function(e,t,i,n,r){"use strict";function o(e){n.call(this,e);this.addType(r.NurbsTrimmedSurface)}o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"solid",new e.SFBool(true)),new t(r.inputOutput,"uTessellation",new e.SFInt32),new t(r.inputOutput,"vTessellation",new e.SFInt32),new t(r.initializeOnly,"uClosed",new e.SFBool),new t(r.initializeOnly,"vClosed",new e.SFBool),new t(r.initializeOnly,"uOrder",new e.SFInt32(3)),new t(r.initializeOnly,"vOrder",new e.SFInt32(3)),new t(r.initializeOnly,"uDimension",new e.SFInt32),new t(r.initializeOnly,"vDimension",new e.SFInt32),new t(r.initializeOnly,"uKnot",new e.MFDouble),new t(r.initializeOnly,"vKnot",new e.MFDouble),new t(r.inputOutput,"weight",new e.MFDouble),new t(r.inputOutput,"texCoord",new e.SFNode),new t(r.inputOutput,"controlPoint",new e.SFNode),new t(r.inputOnly,"addTrimmingContour",new e.MFNode),new t(r.inputOnly,"removeTrimmingContour",new e.MFNode),new t(r.inputOutput,"trimmingContour",new e.MFNode)]),getTypeName:function(){return"NurbsTrimmedSurface"},getComponentName:function(){return"NURBS"},getContainerField:function(){return"geometry"}});return o});e(["x_ite/Components","x_ite/Components/NURBS/Contour2D","x_ite/Components/NURBS/ContourPolyline2D","x_ite/Components/NURBS/CoordinateDouble","x_ite/Components/NURBS/NurbsCurve","x_ite/Components/NURBS/NurbsCurve2D","x_ite/Components/NURBS/NurbsOrientationInterpolator","x_ite/Components/NURBS/NurbsPatchSurface","x_ite/Components/NURBS/NurbsPositionInterpolator","x_ite/Components/NURBS/NurbsSet","x_ite/Components/NURBS/NurbsSurfaceInterpolator","x_ite/Components/NURBS/NurbsSweptSurface","x_ite/Components/NURBS/NurbsSwungSurface","x_ite/Components/NURBS/NurbsTextureCoordinate","x_ite/Components/NURBS/NurbsTrimmedSurface","x_ite/Components/NURBS/X3DNurbsControlCurveNode","x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode","x_ite/Components/NURBS/X3DParametricGeometryNode"],function(e,t,i,n,r,o,s,u,a,l,h,d,c,f,g,p,_,v){"use strict";e.addComponent({name:"NURBS",types:{Contour2D:t,ContourPolyline2D:i,CoordinateDouble:n,NurbsCurve:r,NurbsCurve2D:o,NurbsOrientationInterpolator:s,NurbsPatchSurface:u,NurbsPositionInterpolator:a,NurbsSet:l,NurbsSurfaceInterpolator:h,NurbsSweptSurface:d,NurbsSwungSurface:c,NurbsTextureCoordinate:f,NurbsTrimmedSurface:g},abstractTypes:{X3DNurbsControlCurveNode:p,X3DNurbsSurfaceGeometryNode:_,X3DParametricGeometryNode:v}})})})();
@@ -1,2 +0,0 @@
1
- (function(){var e=X3D.define,t=X3D.require;e("x_ite/Components/ParticleSystems/X3DParticleEmitterNode",["x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Numbers/Rotation4","standard/Math/Geometry/Line3","standard/Math/Geometry/Plane3","standard/Math/Algorithm","standard/Math/Algorithms/QuickSort"],function(e,t,i,s,r,n,a,o){"use strict";var l=new i(0,0,0),h=new i(0,0,0),c=new r(i.Zero,i.zAxis),d=new n(i.Zero,i.zAxis);function u(e,t){return d.getDistanceToPoint(e)<d.getDistanceToPoint(t)}function m(e,t){return e<d.getDistanceToPoint(t)}function f(i){e.call(this,i);this.addType(t.X3DParticleEmitterNode);this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.rotations=[];this.intersections=[];this.intersectionNormals=[];this.sorter=new o(this.intersections,u)}f.prototype=Object.assign(Object.create(e.prototype),{constructor:f,initialize:function(){e.prototype.initialize.call(this);this.speed_.addInterest("set_speed__",this);this.variation_.addInterest("set_variation__",this);this.mass_.addInterest("set_mass__",this);this.set_speed__();this.set_variation__();this.set_mass__()},set_speed__:function(){this.speed=this.speed_.getValue()},set_variation__:function(){this.variation=this.variation_.getValue()},set_mass__:function(){this.mass=this.mass_.getValue()},isExplosive:function(){return false},getMass:function(){return this.mass},getRandomLifetime:function(e,t){var i=e*t,s=Math.max(0,e-i),r=e+i;return Math.random()*(r-s)+s},getRandomSpeed:function(){var e=this.speed,t=e*this.variation,i=Math.max(0,e-t),s=e+t;return Math.random()*(s-i)+i},getSphericalRandomVelocity:function(e){return this.getRandomNormal(e).multiply(this.getRandomSpeed())},getRandomValue:function(e,t){return Math.random()*(t-e)+e},getRandomNormal:function(e){var t=this.getRandomValue(-1,1)*Math.PI,i=this.getRandomValue(-1,1),s=Math.acos(i),r=Math.sin(s);return e.set(Math.sin(t)*r,Math.cos(t)*r,i)},getRandomNormalWithAngle:function(e,t){var i=(Math.random()*2-1)*Math.PI,s=this.getRandomValue(Math.cos(e),1),r=Math.acos(s),n=Math.sin(r);return t.set(Math.sin(i)*n,Math.cos(i)*n,s)},getRandomNormalWithDirectionAndAngle:function(e,t,s){rotation.setFromToVec(i.zAxis,e);return rotation.multVecRot(this.getRandomNormalWithAngle(t,s))},getRandomSurfaceNormal:function(e){var t=this.getRandomValue(-1,1)*Math.PI,i=Math.pow(Math.random(),1/3),s=Math.acos(i),r=Math.sin(s);return e.set(Math.sin(t)*r,Math.cos(t)*r,i)},animate:function(e,t){var r=e.particles,n=e.numParticles,a=e.createParticles,o=e.particleLifetime,c=e.lifetimeVariation,d=e.speeds,u=e.velocities,m=e.turbulences,f=this.rotations,p=e.numForces,_=e.boundedVertices.length,y=e.boundedVolume;for(var g=f.length;g<p;++g)f[g]=new s(0,0,1,0);for(var g=0;g<p;++g)f[g].setFromToVec(i.zAxis,u[g]);for(var g=0;g<n;++g){var A=r[g],x=A.elapsedTime+t;if(x>A.lifetime){A.lifetime=this.getRandomLifetime(o,c);A.elapsedTime=0;if(a){++A.life;this.getRandomPosition(A.position);this.getRandomVelocity(A.velocity)}else A.position.set(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)}else{var F=A.position,w=A.velocity;for(var R=0;R<p;++R){w.add(f[R].multVecRot(this.getRandomNormalWithAngle(m[R],l)).multiply(d[R]))}if(_){h.x=F.x;h.y=F.y;h.z=F.z;F.x+=w.x*t;F.y+=w.y*t;F.z+=w.z*t;this.bounce(y,h,F,w)}else{F.x+=w.x*t;F.y+=w.y*t;F.z+=w.z*t}A.elapsedTime=x}}if(e.colorMaterial)this.getColors(r,e.colorKeys,e.colorRamp,n)},bounce:function(e,t,i,s){l.assign(s).normalize();c.set(t,l);var r=this.intersections,n=this.intersectionNormals,o=e.intersectsLine(c,r,n);if(o){for(var h=0;h<o;++h)r[h].index=h;d.set(t,l);this.sorter.sort(0,o);var u=a.upperBound(r,0,o,0,m);if(u<o){var f=r[u],p=n[f.index];d.set(f,p);if(d.getDistanceToPoint(t)*d.getDistanceToPoint(i)<0){var _=2*p.dot(s);s.x-=p.x*_;s.y-=p.y*_;s.z-=p.z*_;l.assign(s).normalize();var y=f.distance(t);i.x=f.x+l.x*y;i.y=f.y+l.y*y;i.z=f.z+l.z*y}}}},getColors:function(e,t,i,s){var r=t.length,n=0,o=0,l=0;for(var h=0;h<s;++h){var c=e[h],d=c.elapsedTime/c.lifetime,u=c.color;if(r==1||d<=t[0]){n=0;o=0;l=0}else if(d>=t[r-1]){n=r-2;o=r-1;l=1}else{var m=a.upperBound(t,0,r,d,a.less);if(m<r){o=m;n=m-1;var f=t[n],p=t[o];l=a.clamp((d-f)/(p-f),0,1)}else{n=0;o=0;l=0}}var _=i[n],y=i[o];u.x=_.x+l*(y.x-_.x);u.y=_.y+l*(y.y-_.y);u.z=_.z+l*(y.z-_.z);u.w=_.w+l*(y.w-_.w)}}});return f});e("x_ite/Components/ParticleSystems/PointEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3"],function(e,t,i,s,r,n){"use strict";function a(e){s.call(this,e);this.addType(r.PointEmitter);this.position_.setUnit("length");this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.direction=new n(0,0,0)}a.prototype=Object.assign(Object.create(s.prototype),{constructor:a,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"position",new e.SFVec3f),new t(r.inputOutput,"direction",new e.SFVec3f(0,1,0)),new t(r.inputOutput,"speed",new e.SFFloat),new t(r.inputOutput,"variation",new e.SFFloat(.25)),new t(r.initializeOnly,"mass",new e.SFFloat),new t(r.initializeOnly,"surfaceArea",new e.SFFloat)]),getTypeName:function(){return"PointEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.position_.addInterest("set_position__",this);this.direction_.addInterest("set_direction__",this);this.set_position__();this.set_direction__()},set_position__:function(){this.position=this.position_.getValue()},set_direction__:function(){this.direction.assign(this.direction_.getValue()).normalize();if(this.direction.equals(n.Zero))this.getRandomVelocity=this.getSphericalRandomVelocity;else delete this.getRandomVelocity},getRandomPosition:function(e){return e.assign(this.position)},getRandomVelocity:function(e){var t=this.direction,i=this.getRandomSpeed();e.x=t.x*i;e.y=t.y*i;e.z=t.z*i;return e}});return a});e("x_ite/Browser/ParticleSystems/X3DParticleSystemsContext",["x_ite/Components/ParticleSystems/PointEmitter"],function(e){"use strict";function t(){}t.prototype={getDefaultEmitter:function(){if(!this.defaultEmitter){this.defaultEmitter=new e(this.getPrivateScene());this.defaultEmitter.setup()}return this.defaultEmitter}};return t});e("x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode",["x_ite/Components/Core/X3DNode","x_ite/Bits/X3DConstants"],function(e,t){"use strict";function i(i){e.call(this,i);this.addType(t.X3DParticlePhysicsModelNode)}i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,addForce:function(){}});return i});e("x_ite/Components/ParticleSystems/BoundedPhysicsModel",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast"],function(e,t,i,s,r,n){"use strict";function a(e){s.call(this,e);this.addType(r.BoundedPhysicsModel)}a.prototype=Object.assign(Object.create(s.prototype),{constructor:a,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"enabled",new e.SFBool(true)),new t(r.inputOutput,"geometry",new e.SFNode)]),getTypeName:function(){return"BoundedPhysicsModel"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"physics"},initialize:function(){s.prototype.initialize.call(this);this.geometry_.addInterest("set_geometry__",this);this.set_geometry__()},set_geometry__:function(){if(this.geometryNode)this.geometryNode.removeInterest("addNodeEvent",this);this.geometryNode=n(r.X3DGeometryNode,this.geometry_);if(this.geometryNode)this.geometryNode.addInterest("addNodeEvent",this)},addGeometry:function(e,t){if(this.geometryNode){var i=this.geometryNode.getNormals().getValue(),s=this.geometryNode.getVertices().getValue();for(var r=0,n=i.length;r<n;++r)e.push(i[r]);for(var r=0,n=s.length;r<n;++r)t.push(s[r])}}});return a});e("x_ite/Components/ParticleSystems/ConeEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Numbers/Rotation4"],function(e,t,i,s,r,n,a){"use strict";function o(e){s.call(this,e);this.addType(r.ConeEmitter);this.position_.setUnit("length");this.angle_.setUnit("angle");this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.rotation=new a(0,0,1,0)}o.prototype=Object.assign(Object.create(s.prototype),{constructor:o,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"position",new e.SFVec3f),new t(r.inputOutput,"direction",new e.SFVec3f(0,1,0)),new t(r.inputOutput,"angle",new e.SFFloat(.7854)),new t(r.inputOutput,"speed",new e.SFFloat),new t(r.inputOutput,"variation",new e.SFFloat(.25)),new t(r.initializeOnly,"mass",new e.SFFloat),new t(r.initializeOnly,"surfaceArea",new e.SFFloat)]),getTypeName:function(){return"ConeEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.position_.addInterest("set_position__",this);this.direction_.addInterest("set_direction__",this);this.angle_.addInterest("set_angle__",this);this.set_position__();this.set_direction__();this.set_angle__()},set_position__:function(){this.position=this.position_.getValue()},set_direction__:function(){var e=this.direction_.getValue();this.rotation.setFromToVec(n.zAxis,e);if(e.equals(n.Zero))this.getRandomVelocity=this.getSphericalRandomVelocity;else delete this.getRandomVelocity},set_angle__:function(){this.angle=this.angle_.getValue()},getRandomPosition:function(e){return e.assign(this.position)},getRandomVelocity:function(e){return this.rotation.multVecRot(this.getRandomNormalWithAngle(this.angle,e).multiply(this.getRandomSpeed()))}});return o});e("x_ite/Components/ParticleSystems/ExplosionEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Bits/X3DConstants"],function(e,t,i,s,r){"use strict";function n(e){s.call(this,e);this.addType(r.ExplosionEmitter);this.position_.setUnit("length");this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.getRandomVelocity=this.getSphericalRandomVelocity}n.prototype=Object.assign(Object.create(s.prototype),{constructor:n,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"position",new e.SFVec3f),new t(r.inputOutput,"speed",new e.SFFloat),new t(r.inputOutput,"variation",new e.SFFloat(.25)),new t(r.initializeOnly,"mass",new e.SFFloat),new t(r.initializeOnly,"surfaceArea",new e.SFFloat)]),getTypeName:function(){return"ExplosionEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.position_.addInterest("set_position__",this);this.set_position__()},set_position__:function(){this.position=this.position_.getValue()},isExplosive:function(){return true},getRandomPosition:function(e){return e.assign(this.position)}});return n});e("x_ite/Components/ParticleSystems/ForcePhysicsModel",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode","x_ite/Bits/X3DConstants"],function(e,t,i,s,r){"use strict";function n(e){s.call(this,e);this.addType(r.ForcePhysicsModel);this.force_.setUnit("force")}n.prototype=Object.assign(Object.create(s.prototype),{constructor:n,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"enabled",new e.SFBool(true)),new t(r.inputOutput,"force",new e.SFVec3f(0,-9.8,0))]),getTypeName:function(){return"ForcePhysicsModel"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"physics"},addForce:function(e,t,i,s){if(this.enabled_.getValue()){i[e].assign(this.force_.getValue());s[e]=0}}});return n});e("standard/Math/Utility/BVH",["standard/Math/Numbers/Vector3","standard/Math/Geometry/Plane3","standard/Math/Algorithms/QuickSort"],function(e,t,i){"use strict";var s=new e(0,0,0),r=new e(0,0,0),n=new e(0,0,0),a={u:0,v:0,t:0};var o=[new e(0,0,1),new e(0,0,-1),new e(0,1,0),new e(0,-1,0),new e(1,0,0)];function l(e,t){function i(e,s){var r=i.vertices;t=i.axis;return Math.min(r[e+t],r[e+4+t],r[e+8+t])<Math.min(r[s+t],r[s+4+t],r[s+8+t])}i.vertices=e;i.axis=t;return i}function h(e,t){this.vertices=e.vertices;this.normals=e.normals;this.i4=t*12;this.i3=t*9}h.prototype={intersectsLine:function(t,i,o){var l=this.vertices,h=this.normals,c=this.i4,d=this.i3;s.x=l[c];s.y=l[c+1];s.z=l[c+2];r.x=l[c+4];r.y=l[c+5];r.z=l[c+6];n.x=l[c+8];n.y=l[c+9];n.z=l[c+10];if(t.intersectsTriangle(s,r,n,a)){var u=a.u,m=a.v,f=1-u-m;var p=i.size++;if(p>=i.length)i.push(new e(0,0,0));i[p].set(f*l[c]+u*l[c+4]+m*l[c+8],f*l[c+1]+u*l[c+5]+m*l[c+9],f*l[c+2]+u*l[c+6]+m*l[c+10]);if(o){if(p>=o.length)o.push(new e(0,0,0));o[p].set(f*h[d]+u*h[d+3]+m*h[d+6],f*h[d+1]+u*h[d+4]+m*h[d+7],f*h[d+2]+u*h[d+5]+m*h[d+8])}}}};function c(i,a,l,d){this.min=new e(0,0,0);this.max=new e(0,0,0);this.planes=[];this.intersection=new e(0,0,0);var u=i.vertices,m=this.min,f=this.max,p=l+d,_=a[l]*12;m.set(u[_],u[_+1],u[_+2]);f.assign(m);for(var y=l;y<p;++y){_=a[y]*12;s.set(u[_],u[_+1],u[_+2]);r.set(u[_+4],u[_+5],u[_+6]);n.set(u[_+8],u[_+9],u[_+10]);m.min(s,r,n);f.max(s,r,n)}for(var y=0;y<5;++y)this.planes[y]=new t(y%2?m:f,o[y]);if(d>2){i.sorter.compare.axis=this.getLongestAxis(m,f);i.sorter.sort(l,p);var g=d>>>1}else var g=1;var A=d-g;if(g>1)this.left=new c(i,a,l,g);else this.left=new h(i,a[l]);if(A>1)this.right=new c(i,a,l+g,A);else this.right=new h(i,a[l+g])}c.prototype={intersectsLine:function(e,t,i){if(this.intersectsBBox(e)){this.left.intersectsLine(e,t,i);this.right.intersectsLine(e,t,i)}},intersectsBBox:function(e){var t=this.planes,i=this.min,s=this.max,r=i.x,n=s.x,a=i.y,o=s.y,l=i.z,h=s.z,c=this.intersection;if(t[0].intersectsLine(e,c)){if(c.x>=r&&c.x<=n&&c.y>=a&&c.y<=o)return true}if(t[1].intersectsLine(e,c)){if(c.x>=r&&c.x<=n&&c.y>=a&&c.y<=o)return true}if(t[2].intersectsLine(e,c)){if(c.x>=r&&c.x<=n&&c.z>=l&&c.z<=h)return true}if(t[3].intersectsLine(e,c)){if(c.x>=r&&c.x<=n&&c.z>=l&&c.z<=h)return true}if(t[4].intersectsLine(e,c)){if(c.y>=a&&c.y<=o&&c.z>=l&&c.z<=h)return true}return false},getLongestAxis:function(e,t){var i=t.x-e.x,s=t.y-e.y,r=t.z-e.z;if(i<s){if(s<r)return 2;return 1}else{if(i<r)return 2;return 0}}};function d(e,t){this.vertices=e;this.normals=t;var s=e.length/12;switch(s){case 0:{this.root=null;break}case 1:{this.root=new h(this,0);break}default:{var r=[];for(var n=0;n<s;++n)r.push(n);this.sorter=new i(r,l(e,0));this.root=new c(this,r,0,s);break}}}d.prototype={constructor:d,intersectsLine:function(e,t,i){t.size=0;if(this.root){this.root.intersectsLine(e,t,i);return t.size}return 0}};return d});e("x_ite/Components/ParticleSystems/ParticleSystem",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/Shape/X3DShapeNode","x_ite/Bits/TraverseType","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","standard/Math/Numbers/Color4","standard/Math/Numbers/Vector3","standard/Math/Numbers/Vector4","standard/Math/Numbers/Matrix4","standard/Math/Numbers/Matrix3","standard/Math/Algorithms/QuickSort","standard/Math/Algorithm","standard/Math/Utility/BVH"],function(e,t,i,s,r,n,a,o,l,h,c,d,u,m,f){"use strict";var p=0,_=p++,y=p++,g=p++,A=p++,x=p++,F=p++;var w={POINT:_,LINE:y,TRIANGLE:g,QUAD:A,GEOMETRY:x,SPRITE:F};var R=new c,v=new l(0,0,0),b=new l(0,0,0),P=new l(0,0,0),S=new l(0,0,0),B=new l(0,0,0),N=new l(0,0,0),C=new l(0,0,0),T=new l(0,0,0),V=new l(0,0,0),D=new l(0,0,0);function M(e,t){return e.distance<t.distance}function z(e){s.call(this,e);this.addType(n.ParticleSystem);this.particleSize_.setUnit("length");this.createParticles=true;this.particles=[];this.velocities=[];this.speeds=[];this.turbulences=[];this.geometryType=_;this.maxParticles=0;this.numParticles=0;this.particleLifetime=0;this.lifetimeVariation=0;this.emitterNode=null;this.forcePhysicsModelNodes=[];this.boundedPhysicsModelNodes=[];this.boundedNormals=[];this.boundedVertices=[];this.boundedVolume=null;this.creationTime=0;this.pauseTime=0;this.deltaTime=0;this.numForces=0;this.colorKeys=[];this.colorRamppNode=null;this.colorRamp=[];this.colorMaterial=false;this.texCoordKeys=[];this.texCoordRampNode=null;this.texCoordRamp=[];this.texCoordAnim=false;this.vertexCount=0;this.shaderNode=this.getBrowser().getPointShader();this.rotation=new d;this.particleSorter=new u(this.particles,M);this.sortParticles=false}z.prototype=Object.assign(Object.create(s.prototype),{constructor:z,fieldDefinitions:new i([new t(n.inputOutput,"metadata",new e.SFNode),new t(n.inputOutput,"enabled",new e.SFBool(true)),new t(n.inputOutput,"createParticles",new e.SFBool(true)),new t(n.initializeOnly,"geometryType",new e.SFString("QUAD")),new t(n.inputOutput,"maxParticles",new e.SFInt32(200)),new t(n.inputOutput,"particleLifetime",new e.SFFloat(5)),new t(n.inputOutput,"lifetimeVariation",new e.SFFloat(.25)),new t(n.inputOutput,"particleSize",new e.SFVec2f(.02,.02)),new t(n.initializeOnly,"emitter",new e.SFNode),new t(n.initializeOnly,"physics",new e.MFNode),new t(n.initializeOnly,"colorKey",new e.MFFloat),new t(n.initializeOnly,"colorRamp",new e.SFNode),new t(n.initializeOnly,"texCoordKey",new e.MFFloat),new t(n.initializeOnly,"texCoordRamp",new e.SFNode),new t(n.outputOnly,"isActive",new e.SFBool),new t(n.initializeOnly,"bboxSize",new e.SFVec3f(-1,-1,-1)),new t(n.initializeOnly,"bboxCenter",new e.SFVec3f),new t(n.inputOutput,"appearance",new e.SFNode),new t(n.inputOutput,"geometry",new e.SFNode)]),getTypeName:function(){return"ParticleSystem"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"children"},initialize:function(){s.prototype.initialize.call(this);var e=this.getBrowser().getContext();this.isLive().addInterest("set_live__",this);this.getBrowser().getBrowserOptions().Shading_.addInterest("set_shader__",this);this.enabled_.addInterest("set_enabled__",this);this.createParticles_.addInterest("set_createParticles__",this);this.geometryType_.addInterest("set_geometryType__",this);this.maxParticles_.addInterest("set_enabled__",this);this.particleLifetime_.addInterest("set_particleLifetime__",this);this.lifetimeVariation_.addInterest("set_lifetimeVariation__",this);this.emitter_.addInterest("set_emitter__",this);this.physics_.addInterest("set_physics__",this);this.colorKey_.addInterest("set_color__",this);this.colorRamp_.addInterest("set_colorRamp__",this);this.texCoordKey_.addInterest("set_texCoord__",this);this.texCoordRamp_.addInterest("set_texCoordRamp__",this);this.idBuffer=e.createBuffer();this.positionBuffer=e.createBuffer();this.elapsedTimeBuffer=e.createBuffer();this.lifeBuffer=e.createBuffer();this.colorBuffer=e.createBuffer();this.texCoordBuffers=[e.createBuffer()];this.normalBuffer=e.createBuffer();this.vertexBuffer=e.createBuffer();this.idArray=new Float32Array;this.positionArray=new Float32Array;this.elapsedTimeArray=new Float32Array;this.lifeArray=new Float32Array;this.colorArray=new Float32Array;this.texCoordArray=new Float32Array;this.normalArray=new Float32Array;this.vertexArray=new Float32Array;this.primitiveMode=e.TRIANGLES;this.set_emitter__();this.set_enabled__();this.set_createParticles__();this.set_particleLifetime__();this.set_lifetimeVariation__();this.set_physics__();this.set_colorRamp__();this.set_texCoordRamp__()},set_bbox__:function(){if(this.bboxSize_.getValue().equals(this.defaultBBoxSize))this.bbox.set();else this.bbox.set(this.bboxSize_.getValue(),this.bboxCenter_.getValue());this.bboxSize=this.bbox.size;this.bboxCenter=this.bbox.center},set_transparent__:function(){switch(this.geometryType){case _:{this.setTransparent(true);break}default:{this.setTransparent(this.getAppearance()&&this.getAppearance().transparent_.getValue()||this.colorRampNode&&this.colorRampNode.isTransparent()||this.geometryType===x&&this.geometryNode&&this.geometryNode.transparent_.getValue());break}}},set_live__:function(){if(this.isLive().getValue()){if(this.isActive_.getValue()&&this.maxParticles_.getValue()){this.getBrowser().sensorEvents().addInterest("animateParticles",this);if(this.pauseTime){this.creationTime+=performance.now()/1e3-this.pauseTime;this.pauseTime=0}}}else{if(this.isActive_.getValue()&&this.maxParticles_.getValue()){this.getBrowser().sensorEvents().removeInterest("animateParticles",this);if(this.pauseTime===0)this.pauseTime=performance.now()/1e3}}},set_enabled__:function(){if(this.enabled_.getValue()&&this.maxParticles_.getValue()){if(!this.isActive_.getValue()){if(this.isLive().getValue()){this.getBrowser().sensorEvents().addInterest("animateParticles",this);this.pauseTime=0}else this.pauseTime=performance.now()/1e3;this.isActive_=true}}else{if(this.isActive_.getValue()){if(this.isLive().getValue()){this.getBrowser().sensorEvents().removeInterest("animateParticles",this)}this.isActive_=false;this.numParticles=0}}this.set_maxParticles__()},set_createParticles__:function(){this.createParticles=this.createParticles_.getValue()},set_geometryType__:function(){var e=this.getBrowser().getContext(),t=this.maxParticles;this.geometryType=w[this.geometryType_.getValue()];if(!this.geometryType)this.geometryType=_;switch(this.geometryType){case _:{this.idArray=new Float32Array(t);this.positionArray=new Float32Array(3*t);this.elapsedTimeArray=new Float32Array(t);this.lifeArray=new Float32Array(t);this.colorArray=new Float32Array(4*t);this.texCoordArray=new Float32Array;this.normalArray=new Float32Array;this.vertexArray=new Float32Array(4*t);for(var i=0,s=this.idArray,r=s.length;i<r;++i)s[i]=i;this.colorArray.fill(1);this.vertexArray.fill(1);this.primitiveMode=e.POINTS;this.texCoordCount=0;this.vertexCount=1;break}case y:{this.idArray=new Float32Array(2*t);this.positionArray=new Float32Array(2*3*t);this.elapsedTimeArray=new Float32Array(2*t);this.lifeArray=new Float32Array(2*t);this.colorArray=new Float32Array(2*4*t);this.texCoordArray=new Float32Array;this.normalArray=new Float32Array;this.vertexArray=new Float32Array(2*4*t);for(var i=0,s=this.idArray,r=s.length;i<r;++i)s[i]=Math.floor(i/2);this.colorArray.fill(1);this.vertexArray.fill(1);this.primitiveMode=e.LINES;this.texCoordCount=2;this.vertexCount=2;break}case g:case A:case F:{this.idArray=new Float32Array(6*t);this.positionArray=new Float32Array(6*3*t);this.elapsedTimeArray=new Float32Array(6*t);this.lifeArray=new Float32Array(6*t);this.colorArray=new Float32Array(6*4*t);this.texCoordArray=new Float32Array(6*4*t);this.normalArray=new Float32Array(6*3*t);this.vertexArray=new Float32Array(6*4*t);for(var i=0,s=this.idArray,r=s.length;i<r;++i)s[i]=Math.floor(i/6);this.colorArray.fill(1);this.vertexArray.fill(1);var n=this.texCoordArray,a=this.normalArray;for(var i=0,o=6*3*t;i<o;i+=3){a[i]=0;a[i+1]=0;a[i+2]=1}e.bindBuffer(e.ARRAY_BUFFER,this.normalBuffer);e.bufferData(e.ARRAY_BUFFER,this.normalArray,e.STATIC_DRAW);for(var i=0;i<t;++i){var l=i*24;n[l]=n[l+12]=0;n[l+1]=n[l+13]=0;n[l+2]=n[l+14]=0;n[l+3]=n[l+15]=1;n[l+4]=1;n[l+5]=0;n[l+6]=0;n[l+7]=1;n[l+8]=n[l+16]=1;n[l+9]=n[l+17]=1;n[l+10]=n[l+18]=0;n[l+11]=n[l+19]=1;n[l+20]=0;n[l+21]=1;n[l+22]=0;n[l+23]=1}e.bindBuffer(e.ARRAY_BUFFER,this.texCoordBuffers[0]);e.bufferData(e.ARRAY_BUFFER,this.texCoordArray,e.STATIC_DRAW);this.primitiveMode=e.TRIANGLES;this.texCoordCount=4;this.vertexCount=6;break}case x:{this.texCoordCount=0;this.vertexCount=0;break}}e.bindBuffer(e.ARRAY_BUFFER,this.idBuffer);e.bufferData(e.ARRAY_BUFFER,this.idArray,e.STATIC_DRAW);this.set_shader__();this.set_transparent__()},set_shader__:function(){switch(this.geometryType){case _:{this.shaderGeometryType=0;this.shaderNode=this.getBrowser().getPointShader();break}case y:{this.shaderGeometryType=1;this.shaderNode=this.getBrowser().getLineShader();break}case g:case A:case F:{this.shaderGeometryType=3;this.shaderNode=this.getBrowser().getDefaultShader();break}case x:{this.shaderGeometryType=3;this.shaderNode=this.getBrowser().getDefaultShader();break}}},set_maxParticles__:function(){var e=this.particles,t=Math.max(0,this.maxParticles_.getValue());for(var i=this.numParticles,s=Math.min(e.length,t);i<s;++i){e[i].life=1;e[i].lifetime=-1}for(var i=e.length,s=t;i<s;++i){e[i]={life:1,lifetime:-1,elapsedTime:0,position:new l(0,0,0),velocity:new l(0,0,0),color:new h(1,1,1,1),distance:0}}this.maxParticles=t;this.numParticles=Math.min(this.numParticles,t);if(!this.emitterNode.isExplosive())this.creationTime=performance.now()/1e3;this.set_geometryType__()},set_particleLifetime__:function(){this.particleLifetime=this.particleLifetime_.getValue()},set_lifetimeVariation__:function(){this.lifetimeVariation=this.lifetimeVariation_.getValue()},set_emitter__:function(){this.emitterNode=a(n.X3DParticleEmitterNode,this.emitter_);if(!this.emitterNode)this.emitterNode=this.getBrowser().getDefaultEmitter();this.createParticles=this.createParticles_.getValue()},set_physics__:function(){var e=this.physics_.getValue(),t=this.forcePhysicsModelNodes,i=this.boundedPhysicsModelNodes;for(var s=0,r=i.length;s<r;++s)i[s].removeInterest("set_boundedPhysics__",this);t.length=0;i.length=0;for(var s=0,r=e.length;s<r;++s){try{var a=e[s].getValue().getInnerNode(),o=a.getType();for(var l=o.length-1;l>=0;--l){switch(o[l]){case n.ForcePhysicsModel:case n.WindPhysicsModel:{t.push(a);break}case n.BoundedPhysicsModel:{a.addInterest("set_boundedPhysics__",this);i.push(a);break}default:continue}break}}catch(e){}}this.set_boundedPhysics__()},set_boundedPhysics__:function(){var e=this.boundedPhysicsModelNodes,t=this.boundedNormals,i=this.boundedVertices;t.length=0;i.length=0;for(var s=0,r=e.length;s<r;++s){e[s].addGeometry(t,i)}this.boundedVolume=new f(i,t)},set_colorRamp__:function(){if(this.colorRampNode)this.colorRampNode.removeInterest("set_color__",this);this.colorRampNode=a(n.X3DColorNode,this.colorRamp_);if(this.colorRampNode)this.colorRampNode.addInterest("set_color__",this);this.set_color__();this.set_transparent__()},set_color__:function(){var e=this.colorKey_,t=this.colorKeys,i=this.colorRamp;for(var s=0,r=e.length;s<r;++s)t[s]=e[s];t.length=r;if(this.colorRampNode)this.colorRampNode.getVectors(this.colorRamp);for(var s=i.length,r=e.length;s<r;++s)i[s]=new h(1,1,1,1);i.length=r;this.colorMaterial=Boolean(t.length&&this.colorRampNode)},set_texCoordRamp__:function(){if(this.texCoordRampNode)this.texCoordRampNode.removeInterest("set_texCoord__",this);this.texCoordRampNode=a(n.X3DTextureCoordinateNode,this.texCoordRamp_);if(this.texCoordRampNode)this.texCoordRampNode.addInterest("set_texCoord__",this);this.set_texCoord__()},set_texCoord__:function(){var e=this.texCoordKey_,t=this.texCoordKeys,i=this.texCoordRamp;for(var s=0,r=e.length;s<r;++s)t[s]=e[s];t.length=r;if(this.texCoordRampNode)this.texCoordRampNode.getTexCoord(i);for(var s=i.length,r=e.length*this.texCoordCount;s<r;++s)i[s]=new h(0,0,0,0);i.length=r;this.texCoordAnim=Boolean(t.length&&this.texCoordRampNode)},intersectsBox:function(e,t){},animateParticles:function(){var e=this.emitterNode;var t=15,i=1/Math.max(10,this.getBrowser().getCurrentFrameRate());var s=this.deltaTime=((t-1)*this.deltaTime+i)/t;if(e.isExplosive()){var r=performance.now()/1e3,n=this.particleLifetime+this.particleLifetime*this.lifetimeVariation;if(this.numParticles===0||r-this.creationTime>n){this.creationTime=r;this.numParticles=this.maxParticles;this.createParticles=this.createParticles_.getValue();s=Number.POSITIVE_INFINITY}else this.createParticles=false}else{if(this.numParticles<this.maxParticles){var r=performance.now()/1e3,a=Math.max(0,Math.floor((r-this.creationTime)*this.maxParticles/this.particleLifetime));if(a)this.creationTime=r;this.numParticles=Math.floor(Math.min(this.maxParticles,this.numParticles+a))}}if(e.getMass()){var o=this.forcePhysicsModelNodes,h=this.velocities,c=this.speeds,d=this.turbulences,u=this.deltaTime/e.getMass();for(var m=h.length,f=o.length;m<f;++m)h[m]=new l(0,0,0);for(var m=0,f=o.length;m<f;++m)o[m].addForce(m,e,h,d);for(var m=0,f=h.length;m<f;++m){h[m].multiply(u);c[m]=h[m].abs()}this.numForces=f}else{this.numForces=0}e.animate(this,s);this.updateGeometry(null);this.getBrowser().addBrowserEvent()},updateGeometry:function(e){switch(this.geometryType){case _:if(!e)this.updatePoint();break;case y:if(!e)this.updateLine();break;case g:case A:case F:this.updateQuad(e);break;case x:break}},updatePoint:function(){var e=this.getBrowser().getContext(),t=this.particles,i=this.numParticles,s=this.positionArray,r=this.elapsedTimeArray,n=this.lifeArray,a=this.colorArray,o=this.vertexArray;if(this.colorMaterial){for(var l=0;l<i;++l){var h=t[l].color,c=l*4;a[c]=h.x;a[c+1]=h.y;a[c+2]=h.z;a[c+3]=h.w}e.bindBuffer(e.ARRAY_BUFFER,this.colorBuffer);e.bufferData(e.ARRAY_BUFFER,this.colorArray,e.STATIC_DRAW)}for(var l=0;l<i;++l){var d=t[l].position,u=t[l].elapsedTime/t[l].lifetime,m=l*3,c=l*4;s[m]=d.x;s[m+1]=d.y;s[m+2]=d.z;r[l]=u;n[l]=t[l].life;o[c]=d.x;o[c+1]=d.y;o[c+2]=d.z}e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer);e.bufferData(e.ARRAY_BUFFER,this.positionArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.elapsedTimeBuffer);e.bufferData(e.ARRAY_BUFFER,this.elapsedTimeArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.lifeBuffer);e.bufferData(e.ARRAY_BUFFER,this.lifeArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer);e.bufferData(e.ARRAY_BUFFER,this.vertexArray,e.STATIC_DRAW)},updateLine:function(){var e=this.getBrowser().getContext(),t=this.particles,i=this.numParticles,s=this.positionArray,r=this.elapsedTimeArray,n=this.lifeArray,a=this.colorArray,o=this.vertexArray,l=this.particleSize_.y/2;if(this.colorMaterial){for(var h=0;h<i;++h){var c=t[h].color,d=h*8;a[d]=c.x;a[d+1]=c.y;a[d+2]=c.z;a[d+3]=c.w;a[d+4]=c.x;a[d+5]=c.y;a[d+6]=c.z;a[d+7]=c.w}e.bindBuffer(e.ARRAY_BUFFER,this.colorBuffer);e.bufferData(e.ARRAY_BUFFER,this.colorArray,e.STATIC_DRAW)}for(var h=0;h<i;++h){var u=t[h],m=u.position,f=t[h].elapsedTime/t[h].lifetime,p=t[h].life,_=m.x,y=m.y,g=m.z,A=h*2,x=h*6,d=h*8;s[x]=_;s[x+1]=y;s[x+2]=g;s[x+3]=_;s[x+4]=y;s[x+5]=g;r[A]=f;r[A+1]=f;n[A]=p;n[A+1]=p;S.assign(u.velocity).normalize().multiply(l);o[d]=_-S.x;o[d+1]=y-S.y;o[d+2]=g-S.z;o[d+4]=_+S.x;o[d+5]=y+S.y;o[d+6]=g+S.z}e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer);e.bufferData(e.ARRAY_BUFFER,this.positionArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.elapsedTimeBuffer);e.bufferData(e.ARRAY_BUFFER,this.elapsedTimeArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.lifeBuffer);e.bufferData(e.ARRAY_BUFFER,this.lifeArray,e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer);e.bufferData(e.ARRAY_BUFFER,this.vertexArray,e.STATIC_DRAW)},updateQuad:function(e){try{var t=this.getBrowser().getContext(),i=this.particles,s=this.maxParticles,r=this.numParticles,n=this.positionArray,a=this.elapsedTimeArray,o=this.lifeArray,l=this.colorArray,h=this.texCoordArray,c=this.normalArray,d=this.vertexArray,u=this.particleSize_.x/2,f=this.particleSize_.y/2;if(!e){if(this.colorMaterial){for(var p=0;p<s;++p){var _=i[p].color,y=p*24;l[y]=l[y+4]=l[y+8]=l[y+12]=l[y+16]=l[y+20]=_.x;l[y+1]=l[y+5]=l[y+9]=l[y+13]=l[y+17]=l[y+21]=_.y;l[y+2]=l[y+6]=l[y+10]=l[y+14]=l[y+18]=l[y+22]=_.z;l[y+3]=l[y+7]=l[y+11]=l[y+15]=l[y+19]=l[y+23]=_.w}t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer);t.bufferData(t.ARRAY_BUFFER,this.colorArray,t.STATIC_DRAW)}if(this.texCoordAnim&&this.texCoordArray.length){var g=this.texCoordKeys,A=this.texCoordRamp;var x=g.length,w=0;for(var p=0;p<s;++p){var R=i[p],v=R.elapsedTime/R.lifetime;if(x==1||v<=g[0]){w=0}else if(v>=g[x-1]){w=x-2}else{var b=m.upperBound(g,0,x,v,m.less);if(b<x)w=b-1;else w=0}
2
- w*=this.texCoordCount;var V=A[w],D=A[w+1],M=A[w+2],z=A[w+3],y=p*24;h[y]=h[y+12]=V.x;h[y+1]=h[y+13]=V.y;h[y+2]=h[y+14]=V.z;h[y+3]=h[y+15]=V.w;h[y+4]=D.x;h[y+5]=D.y;h[y+6]=D.z;h[y+7]=D.w;h[y+8]=h[y+16]=M.x;h[y+9]=h[y+17]=M.y;h[y+10]=h[y+18]=M.z;h[y+11]=h[y+19]=M.w;h[y+20]=z.x;h[y+21]=z.y;h[y+22]=z.z;h[y+23]=z.w}t.bindBuffer(t.ARRAY_BUFFER,this.texCoordBuffers[0]);t.bufferData(t.ARRAY_BUFFER,this.texCoordArray,t.STATIC_DRAW)}}if(this.geometryType===F){if(e){var I=this.getScreenAlignedRotation(e);S.set(I[0],I[1],I[2]).cross(P.set(I[3],I[4],I[5])).normalize();var E=S.x,O=S.y,U=S.z;for(var p=0,x=6*3*s;p<x;p+=3){c[p]=E;c[p+1]=O;c[p+2]=U}t.bindBuffer(t.ARRAY_BUFFER,this.normalBuffer);t.bufferData(t.ARRAY_BUFFER,this.normalArray,t.STATIC_DRAW);B.set(-u,-f,0);N.set(u,-f,0);C.set(u,f,0);T.set(-u,f,0);I.multVecMatrix(B);I.multVecMatrix(N);I.multVecMatrix(C);I.multVecMatrix(T);for(var p=0;p<r;++p){var Y=i[p].position,L=i[p].elapsedTime/i[p].lifetime,X=Y.x,W=Y.y,k=Y.z,G=p*6,j=p*18,y=p*24;n[j]=n[j+3]=n[j+6]=n[j+9]=n[j+12]=n[j+15]=X;n[j+1]=n[j+4]=n[j+7]=n[j+10]=n[j+13]=n[j+16]=W;n[j+2]=n[j+5]=n[j+8]=n[j+11]=n[j+14]=n[j+17]=k;a[G]=a[G+1]=a[G+2]=a[G+3]=a[G+4]=a[G+5]=L;o[G]=o[G+1]=o[G+2]=o[G+3]=o[G+4]=o[G+5]=i[p].life;d[y]=d[y+12]=X+B.x;d[y+1]=d[y+13]=W+B.y;d[y+2]=d[y+14]=k+B.z;d[y+4]=X+N.x;d[y+5]=W+N.y;d[y+6]=k+N.z;d[y+8]=d[y+16]=X+C.x;d[y+9]=d[y+17]=W+C.y;d[y+10]=d[y+18]=k+C.z;d[y+20]=X+T.x;d[y+21]=W+T.y;d[y+22]=k+T.z}t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer);t.bufferData(t.ARRAY_BUFFER,this.positionArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.elapsedTimeBuffer);t.bufferData(t.ARRAY_BUFFER,this.elapsedTimeArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.lifeBuffer);t.bufferData(t.ARRAY_BUFFER,this.lifeArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer);t.bufferData(t.ARRAY_BUFFER,this.vertexArray,t.STATIC_DRAW)}}else{if(!e){for(var p=0;p<r;++p){var Y=i[p].position,L=i[p].elapsedTime/i[p].lifetime,X=Y.x,W=Y.y,k=Y.z,G=p*6,j=p*18,y=p*24;n[j]=n[j+3]=n[j+6]=n[j+9]=n[j+12]=n[j+15]=X;n[j+1]=n[j+4]=n[j+7]=n[j+10]=n[j+13]=n[j+16]=W;n[j+2]=n[j+5]=n[j+8]=n[j+11]=n[j+14]=n[j+17]=k;a[G]=a[G+1]=a[G+2]=a[G+3]=a[G+4]=a[G+5]=L;o[G]=o[G+1]=o[G+2]=o[G+3]=o[G+4]=o[G+5]=i[p].life;d[y]=d[y+12]=X-u;d[y+1]=d[y+13]=W-f;d[y+2]=d[y+14]=k;d[y+4]=X+u;d[y+5]=W-f;d[y+6]=k;d[y+8]=d[y+16]=X+u;d[y+9]=d[y+17]=W+f;d[y+10]=d[y+18]=k;d[y+20]=X-u;d[y+21]=W+f;d[y+22]=k}t.bindBuffer(t.ARRAY_BUFFER,this.positionBuffer);t.bufferData(t.ARRAY_BUFFER,this.positionArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.elapsedTimeBuffer);t.bufferData(t.ARRAY_BUFFER,this.elapsedTimeArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.lifeBuffer);t.bufferData(t.ARRAY_BUFFER,this.lifeArray,t.STATIC_DRAW);t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer);t.bufferData(t.ARRAY_BUFFER,this.vertexArray,t.STATIC_DRAW)}}}catch(e){console.log(e)}},traverse:function(e,t){if(!this.isActive_.getValue())return;switch(e){case r.POINTER:{break}case r.COLLISION:{break}case r.DEPTH:{t.addDepthShape(this);break}case r.DISPLAY:{if(t.addDisplayShape(this))this.getAppearance().traverse(e,t);break}}if(this.geometryType===x){if(this.getGeometry())this.getGeometry().traverse(e,t)}},depth:function(e,t,i){this.updateGeometry(t.modelViewMatrix);if(this.geometryType===x){var s=this.getGeometry();if(s)s.displayParticlesDepth(e,t,i,this.particles,this.numParticles)}else{if(this.numParticles<=0)return;i.enableFloatAttrib(e,"x3d_ParticleId",this.idBuffer,1);i.enableFloatAttrib(e,"x3d_ParticlePosition",this.positionBuffer,3);i.enableFloatAttrib(e,"x3d_ParticleElapsedTime",this.elapsedTimeBuffer,1);i.enableFloatAttrib(e,"x3d_ParticleLife",this.lifeBuffer,1);i.enableVertexAttribute(e,this.vertexBuffer);e.drawArrays(this.primitiveMode,0,this.numParticles*this.vertexCount);i.disableFloatAttrib(e,"x3d_ParticleId");i.disableFloatAttrib(e,"x3d_ParticlePosition");i.disableFloatAttrib(e,"x3d_ParticleElapsedTime");i.disableFloatAttrib(e,"x3d_ParticleLife")}},display:function(e,t){try{if(this.numParticles<=0)return;this.getAppearance().enable(e,t);this.updateGeometry(t.modelViewMatrix);if(this.geometryType===x){var i=this.getGeometry();if(i)i.displayParticles(e,t,this.particles,this.numParticles)}else{var s=t.renderer.getBrowser(),r=t.shaderNode;if(r===s.getDefaultShader())r=this.shaderNode;t.geometryType=this.shaderGeometryType;t.colorMaterial=this.colorMaterial;r.enable(e);r.setLocalUniforms(e,t);r.enableFloatAttrib(e,"x3d_ParticleId",this.idBuffer,1);r.enableFloatAttrib(e,"x3d_ParticlePosition",this.positionBuffer,3);r.enableFloatAttrib(e,"x3d_ParticleElapsedTime",this.elapsedTimeBuffer,1);r.enableFloatAttrib(e,"x3d_ParticleLife",this.lifeBuffer,1);if(this.colorMaterial)r.enableColorAttribute(e,this.colorBuffer);if(this.texCoordArray.length)r.enableTexCoordAttribute(e,this.texCoordBuffers);if(this.normalArray.length)r.enableNormalAttribute(e,this.normalBuffer);r.enableVertexAttribute(e,this.vertexBuffer);var n=false;switch(this.geometryType){case _:case y:break;case g:case A:case F:n=true;break;case x:break}if(r.wireframe&&n){for(var a=0,o=this.numParticles*this.vertexCount;a<o;a+=3)e.drawArrays(r.primitiveMode,a,3)}else{var l=c.prototype.determinant3.call(t.modelViewMatrix)>0;e.frontFace(l?e.CCW:e.CW);e.enable(e.CULL_FACE);e.cullFace(e.BACK);e.drawArrays(this.primitiveMode,0,this.numParticles*this.vertexCount)}r.disableFloatAttrib(e,"x3d_ParticleId");r.disableFloatAttrib(e,"x3d_ParticlePosition");r.disableFloatAttrib(e,"x3d_ParticleElapsedTime");r.disableFloatAttrib(e,"x3d_ParticleLife");r.disableColorAttribute(e);r.disableTexCoordAttribute(e);r.disableNormalAttribute(e);r.disable(e)}this.getAppearance().disable(e,t)}catch(e){console.log(e)}},getScreenAlignedRotation:function(e){R.assign(e).inverse();R.multDirMatrix(v.assign(l.zAxis));R.multDirMatrix(b.assign(l.yAxis));V.assign(b).cross(v);D.assign(v).cross(V);var t=v;V.normalize();D.normalize();t.normalize();return this.rotation.set(V.x,V.y,V.z,D.x,D.y,D.z,t.x,t.y,t.z)}});return z});e("x_ite/Components/ParticleSystems/PolylineEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Components/Rendering/IndexedLineSet","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t,i,s,r,n,a,o){"use strict";var l=new a(0,0,0),h=new a(0,0,0);function c(e){s.call(this,e);this.addType(n.PolylineEmitter);this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.direction=new a(0,0,0);this.polylineNode=new r(e);this.polylines=[];this.lengthSoFarArray=[0]}c.prototype=Object.assign(Object.create(s.prototype),{constructor:c,fieldDefinitions:new i([new t(n.inputOutput,"metadata",new e.SFNode),new t(n.inputOutput,"direction",new e.SFVec3f(0,1,0)),new t(n.inputOutput,"speed",new e.SFFloat),new t(n.inputOutput,"variation",new e.SFFloat(.25)),new t(n.initializeOnly,"mass",new e.SFFloat),new t(n.initializeOnly,"surfaceArea",new e.SFFloat),new t(n.inputOutput,"coordIndex",new e.MFInt32(-1)),new t(n.inputOutput,"coord",new e.SFNode)]),getTypeName:function(){return"PolylineEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.direction_.addInterest("set_direction__",this);this.coordIndex_.addFieldInterest(this.polylineNode.coordIndex_);this.coord_.addFieldInterest(this.polylineNode.coord_);this.polylineNode.coordIndex_=this.coordIndex_;this.polylineNode.coord_=this.coord_;this.polylineNode.rebuild_.addInterest("set_polyline",this);this.polylineNode.setPrivate(true);this.polylineNode.setup();this.set_direction__();this.set_polyline()},set_direction__:function(){this.direction.assign(this.direction_.getValue()).normalize();if(this.direction.equals(a.Zero))this.getRandomVelocity=this.getSphericalRandomVelocity;else delete this.getRandomVelocity},set_polyline:function(){var e=this.vertices=this.polylineNode.getVertices().getValue();if(e.length){delete this.getRandomPosition;var t=0,i=this.lengthSoFarArray;i.length=1;for(var s=0,r=e.length;s<r;s+=8){l.set(e[s],e[s+1],e[s+2]);h.set(e[s+4],e[s+5],e[s+6]);t+=h.subtract(l).abs();i.push(t)}}else{this.getRandomPosition=d}},getRandomPosition:function(e){var t=this.lengthSoFarArray,i=t.length,s=Math.random()*t[i-1],r=0,n=0,a=0;if(i==1||s<=t[0]){r=0;a=0}else if(s>=t[i-1]){r=i-2;a=1}else{var c=o.upperBound(t,0,i,s,o.less);if(c<i){n=c;r=c-1;var d=t[r],u=t[n];a=o.clamp((s-d)/(u-d),0,1)}else{r=0;a=0}}r*=8;n=r+4;var m=this.vertices;l.set(m[r],m[r+1],m[r+2]);h.set(m[n],m[n+1],m[n+2]);e.x=l.x+a*(h.x-l.x);e.y=l.y+a*(h.y-l.y);e.z=l.z+a*(h.z-l.z);return e},getRandomVelocity:function(e){var t=this.direction,i=this.getRandomSpeed();e.x=t.x*i;e.y=t.y*i;e.z=t.z*i;return e}});function d(e){return e.set(0,0,0)}return c});e("x_ite/Components/ParticleSystems/SurfaceEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Bits/X3DConstants","x_ite/Bits/X3DCast","standard/Math/Geometry/Triangle3","standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t,i,s,r,n,a,o,l){"use strict";var h=new o(0,0,0),c=new o(0,0,0),d=new o(0,0,0),u=new o(0,0,0);function m(e){s.call(this,e);this.addType(r.SurfaceEmitter);this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.surfaceNode=null;this.areaSoFarArray=[0]}m.prototype=Object.assign(Object.create(s.prototype),{constructor:m,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"speed",new e.SFFloat),new t(r.inputOutput,"variation",new e.SFFloat(.25)),new t(r.initializeOnly,"mass",new e.SFFloat),new t(r.initializeOnly,"surfaceArea",new e.SFFloat),new t(r.initializeOnly,"surface",new e.SFNode)]),getTypeName:function(){return"SurfaceEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.surface_.addInterest("set_surface__",this);this.set_surface__()},set_surface__:function(){if(this.surfaceNode)this.surfaceNode.rebuild_.removeInterest("set_geometry__",this);this.surfaceNode=n(r.X3DGeometryNode,this.surface_);if(this.surfaceNode)this.surfaceNode.rebuild_.addInterest("set_geometry__",this);this.set_geometry__()},set_geometry__:function(){if(this.surfaceNode){delete this.getRandomPosition;delete this.getRandomVelocity;var e=0,t=this.areaSoFarArray,i=this.surfaceNode.getVertices().getValue();this.normals=this.surfaceNode.getNormals().getValue();this.vertices=i;t.length=1;for(var s=0,r=i.length;s<r;s+=12){h.set(i[s],i[s+1],i[s+2]);c.set(i[s+4],i[s+5],i[s+6]);d.set(i[s+8],i[s+9],i[s+10]);e+=a.area(h,c,d);t.push(e)}}else{this.getRandomPosition=f;this.getRandomVelocity=this.getSphericalRandomVelocity;u.set(0,0,0)}},getRandomPosition:function(e){var t=this.areaSoFarArray,i=t.length,s=Math.random()*t[i-1],r=0;if(i==1||s<=t[0]){r=0}else if(s>=t[i-1]){r=i-2}else{var n=l.upperBound(t,0,i,s,l.less);if(n<i){r=n-1}else{r=0}}var a=Math.random(),o=Math.random();if(a+o>1){a=1-a;o=1-o}var h=r*12,c=this.vertices;var d=1-a-o;e.x=a*c[h]+o*c[h+4]+d*c[h+8];e.y=a*c[h+1]+o*c[h+5]+d*c[h+9];e.z=a*c[h+2]+o*c[h+6]+d*c[h+10];var h=r*9,m=this.normals;u.x=a*m[h]+o*m[h+3]+d*m[h+6];u.y=a*m[h+1]+o*m[h+4]+d*m[h+7];u.z=a*m[h+2]+o*m[h+5]+d*m[h+8];return e},getRandomVelocity:function(e){var t=this.getRandomSpeed();e.x=u.x*t;e.y=u.y*t;e.z=u.z*t;return e}});function f(e){return e.set(0,0,0)}return m});e("x_ite/Components/ParticleSystems/VolumeEmitter",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Components/Geometry3D/IndexedFaceSet","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Numbers/Rotation4","standard/Math/Geometry/Line3","standard/Math/Geometry/Plane3","standard/Math/Geometry/Triangle3","standard/Math/Algorithm","standard/Math/Utility/BVH","standard/Math/Algorithms/QuickSort"],function(e,t,i,s,r,n,a,o,l,h,c,d,u,m){"use strict";var f=new a(0,0,0),p=new a(0,0,0),_=new a(0,0,0),y=new a(0,0,0),g=new a(0,0,0),A=new o(0,0,1,0),x=new l(a.Zero,a.zAxis),F=new h(a.Zero,a.zAxis);function w(e,t){return F.getDistanceToPoint(e)<F.getDistanceToPoint(t)}function R(e){s.call(this,e);this.addType(n.VolumeEmitter);this.speed_.setUnit("speed");this.mass_.setUnit("mass");this.surfaceArea_.setUnit("area");this.direction=new a(0,0,0);this.volumeNode=new r(e);this.areaSoFarArray=[0];this.intersections=[];this.sorter=new m(this.intersections,w)}R.prototype=Object.assign(Object.create(s.prototype),{constructor:R,fieldDefinitions:new i([new t(n.inputOutput,"metadata",new e.SFNode),new t(n.initializeOnly,"internal",new e.SFBool(true)),new t(n.inputOutput,"direction",new e.SFVec3f(0,1,0)),new t(n.inputOutput,"speed",new e.SFFloat),new t(n.inputOutput,"variation",new e.SFFloat(.25)),new t(n.initializeOnly,"mass",new e.SFFloat),new t(n.initializeOnly,"surfaceArea",new e.SFFloat),new t(n.inputOutput,"coordIndex",new e.MFInt32(-1)),new t(n.inputOutput,"coord",new e.SFNode)]),getTypeName:function(){return"VolumeEmitter"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"emitter"},initialize:function(){s.prototype.initialize.call(this);this.direction_.addInterest("set_direction__",this);this.coordIndex_.addFieldInterest(this.volumeNode.coordIndex_);this.coord_.addFieldInterest(this.volumeNode.coord_);this.volumeNode.creaseAngle_=Math.PI;this.volumeNode.convex_=false;this.volumeNode.coordIndex_=this.coordIndex_;this.volumeNode.coord_=this.coord_;this.volumeNode.rebuild_.addInterest("set_geometry__",this);this.volumeNode.setPrivate(true);this.volumeNode.setup();this.set_direction__();this.set_geometry__()},set_direction__:function(){this.direction.assign(this.direction_.getValue()).normalize();if(this.direction.equals(a.Zero))this.getRandomVelocity=this.getSphericalRandomVelocity;else delete this.getRandomVelocity},set_geometry__:function(){var e=0,t=this.areaSoFarArray,i=this.volumeNode.getNormals().getValue(),s=this.volumeNode.getVertices().getValue();this.normals=i;this.vertices=s;t.length=1;for(var r=0,n=s.length;r<n;r+=12){f.set(s[r],s[r+1],s[r+2]);p.set(s[r+4],s[r+5],s[r+6]);_.set(s[r+8],s[r+9],s[r+10]);e+=c.area(f,p,_);t.push(e)}this.bvh=new u(s,i)},getRandomPosition:function(e){var t=this.areaSoFarArray,i=t.length,s=Math.random()*t[i-1],r=0;if(i==1||s<=t[0]){r=0}else if(s>=t[i-1]){r=i-2}else{var n=d.upperBound(t,0,i,s,d.less);if(n<i){r=n-1}else{r=0}}var o=Math.random(),l=Math.random();if(o+l>1){o=1-o;l=1-l}var h=1-o-l;var c=r*12,u=this.vertices;y.x=o*u[c]+l*u[c+4]+h*u[c+8];y.y=o*u[c+1]+l*u[c+5]+h*u[c+9];y.z=o*u[c+2]+l*u[c+6]+h*u[c+10];var c=r*9,m=this.normals;g.x=o*m[c]+l*m[c+3]+h*m[c+6];g.y=o*m[c+1]+l*m[c+4]+h*m[c+7];g.z=o*m[c+2]+l*m[c+5]+h*m[c+8];A.setFromToVec(a.zAxis,g);A.multVecRot(this.getRandomSurfaceNormal(g));x.set(y,g);F.set(y,g);var f=this.intersections,p=this.bvh.intersectsLine(x,f);p-=p%2;if(p){this.sorter.sort(0,p);var n=Math.round(this.getRandomValue(0,p/2-1))*2,_=f[n],w=f[n+1],h=Math.random();e.x=_.x+(w.x-_.x)*h;e.y=_.y+(w.y-_.y)*h;e.z=_.z+(w.z-_.z)*h;return e}return e.set(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY)},getRandomVelocity:function(e){var t=this.direction,i=this.getRandomSpeed();e.x=t.x*i;e.y=t.y*i;e.z=t.z*i;return e}});return R});e("x_ite/Components/ParticleSystems/WindPhysicsModel",["x_ite/Fields","x_ite/Basic/X3DFieldDefinition","x_ite/Basic/FieldDefinitionArray","x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode","x_ite/Bits/X3DConstants","standard/Math/Numbers/Vector3","standard/Math/Algorithm"],function(e,t,i,s,r,n,a){"use strict";var o=new n(0,0,0);function l(e){s.call(this,e);this.addType(r.WindPhysicsModel);this.speed_.setUnit("speed")}l.prototype=Object.assign(Object.create(s.prototype),{constructor:l,fieldDefinitions:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.inputOutput,"enabled",new e.SFBool(true)),new t(r.inputOutput,"direction",new e.SFVec3f),new t(r.inputOutput,"speed",new e.SFFloat(.1)),new t(r.inputOutput,"gustiness",new e.SFFloat(.1)),new t(r.inputOutput,"turbulence",new e.SFFloat)]),getTypeName:function(){return"WindPhysicsModel"},getComponentName:function(){return"ParticleSystems"},getContainerField:function(){return"physics"},getRandomSpeed:function(e){var t=Math.max(0,this.speed_.getValue()),i=t*Math.max(0,this.gustiness_.getValue());return e.getRandomValue(Math.max(0,t-i),t+i)},addForce:function(e,t,i,s){var r=t.surfaceArea_.getValue();if(this.enabled_.getValue()){var l=this.getRandomSpeed(t),h=Math.pow(10,2*Math.log(l))*.64615;if(this.direction_.getValue().equals(n.Zero))t.getRandomNormal(o);else o.assign(this.direction_.getValue()).normalize();i[e].assign(o.multiply(r*h));s[e]=Math.PI*a.clamp(this.turbulence_.getValue(),0,1)}}});return l});e(["x_ite/Components","x_ite/Browser/ParticleSystems/X3DParticleSystemsContext","x_ite/Components/ParticleSystems/BoundedPhysicsModel","x_ite/Components/ParticleSystems/ConeEmitter","x_ite/Components/ParticleSystems/ExplosionEmitter","x_ite/Components/ParticleSystems/ForcePhysicsModel","x_ite/Components/ParticleSystems/ParticleSystem","x_ite/Components/ParticleSystems/PointEmitter","x_ite/Components/ParticleSystems/PolylineEmitter","x_ite/Components/ParticleSystems/SurfaceEmitter","x_ite/Components/ParticleSystems/VolumeEmitter","x_ite/Components/ParticleSystems/WindPhysicsModel","x_ite/Components/ParticleSystems/X3DParticleEmitterNode","x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode"],function(e,t,i,s,r,n,a,o,l,h,c,d,u,m){"use strict";e.addComponent({name:"ParticleSystems",types:{BoundedPhysicsModel:i,ConeEmitter:s,ExplosionEmitter:r,ForcePhysicsModel:n,ParticleSystem:a,PointEmitter:o,PolylineEmitter:l,SurfaceEmitter:h,VolumeEmitter:c,WindPhysicsModel:d},abstractTypes:{X3DParticleEmitterNode:u,X3DParticlePhysicsModelNode:m},browser:t.prototype})})})();