x_ite 4.0.5 → 4.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1007) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  2. package/.vscode/settings.json +15 -0
  3. package/.vscode/tasks.json +25 -0
  4. package/Makefile +55 -15
  5. package/README.md +13 -130
  6. package/build/bin/dist.pl +156 -0
  7. package/build/bin/version-number.pl +25 -0
  8. package/build/{version.pl → bin/version.pl} +64 -21
  9. package/build/components/annotation.build.js +15 -0
  10. package/build/components/cad-geometry.build.js +15 -0
  11. package/build/components/cube-map-texturing.build.js +15 -0
  12. package/build/components/dis.build.js +15 -0
  13. package/build/components/event-utilities.build.js +15 -0
  14. package/build/components/geometry2d.build.js +15 -0
  15. package/build/components/geospatial.build.js +15 -0
  16. package/build/components/h-anim.build.js +15 -0
  17. package/build/components/key-device-sensor.build.js +15 -0
  18. package/build/components/layout.build.js +15 -0
  19. package/build/components/nurbs.build.js +15 -0
  20. package/build/components/particle-systems.build.js +15 -0
  21. package/build/components/picking.build.js +15 -0
  22. package/build/components/projective-texture-mapping.build.js +15 -0
  23. package/build/components/rigid-body-physics.build.js +15 -0
  24. package/build/components/scripting.build.js +15 -0
  25. package/build/components/texturing-3d.build.js +15 -0
  26. package/build/components/volume-rendering.build.js +15 -0
  27. package/build/components/x_ite.build.js +15 -0
  28. package/build/parts/default.end.frag +2 -0
  29. package/build/parts/default.start.frag +6 -0
  30. package/build/parts/x_ite.end.frag +23 -0
  31. package/build/parts/x_ite.start.frag +8 -0
  32. package/build/x_ite.build.js +18 -0
  33. package/dist/LICENSE.txt +49 -0
  34. package/dist/assets/components/annotation.js +813 -0
  35. package/dist/assets/components/annotation.min.js +1 -0
  36. package/dist/assets/components/cad-geometry.js +1037 -0
  37. package/dist/assets/components/cad-geometry.min.js +1 -0
  38. package/dist/assets/components/cube-map-texturing.js +1212 -0
  39. package/dist/assets/components/cube-map-texturing.min.js +1 -0
  40. package/dist/assets/components/dis.js +908 -0
  41. package/dist/assets/components/dis.min.js +1 -0
  42. package/dist/assets/components/event-utilities.js +1114 -0
  43. package/dist/assets/components/event-utilities.min.js +1 -0
  44. package/dist/assets/components/geometry2d.js +2190 -0
  45. package/dist/assets/components/geometry2d.min.js +1 -0
  46. package/dist/assets/components/geospatial.js +3850 -0
  47. package/dist/assets/components/geospatial.min.js +2 -0
  48. package/dist/assets/components/h-anim.js +1084 -0
  49. package/dist/assets/components/h-anim.min.js +1 -0
  50. package/dist/assets/components/key-device-sensor.js +850 -0
  51. package/dist/assets/components/key-device-sensor.min.js +1 -0
  52. package/dist/assets/components/layout.js +2008 -0
  53. package/dist/assets/components/layout.min.js +1 -0
  54. package/dist/assets/components/nurbs.js +5388 -0
  55. package/dist/assets/components/nurbs.min.js +2 -0
  56. package/dist/assets/components/particle-systems.js +4216 -0
  57. package/dist/assets/components/particle-systems.min.js +2 -0
  58. package/dist/assets/components/picking.js +2481 -0
  59. package/dist/assets/components/picking.min.js +1 -0
  60. package/dist/assets/components/projective-texture-mapping.js +813 -0
  61. package/dist/assets/components/projective-texture-mapping.min.js +1 -0
  62. package/dist/assets/components/rigid-body-physics.js +4569 -0
  63. package/dist/assets/components/rigid-body-physics.min.js +59 -0
  64. package/dist/assets/components/scripting.js +801 -0
  65. package/dist/assets/components/scripting.min.js +1 -0
  66. package/dist/assets/components/texturing-3d.js +10054 -0
  67. package/dist/assets/components/texturing-3d.min.js +48 -0
  68. package/dist/assets/components/volume-rendering.js +3966 -0
  69. package/dist/assets/components/volume-rendering.min.js +3 -0
  70. package/dist/assets/components/x_ite.js +285 -0
  71. package/dist/assets/components/x_ite.min.js +1 -0
  72. package/{fonts → dist/assets/fonts}/DroidSerif-Bold.ttf +0 -0
  73. package/{fonts → dist/assets/fonts}/DroidSerif-BoldItalic.ttf +0 -0
  74. package/{fonts → dist/assets/fonts}/DroidSerif-Italic.ttf +0 -0
  75. package/{fonts → dist/assets/fonts}/DroidSerif-Regular.ttf +0 -0
  76. package/{fonts → dist/assets/fonts}/Ubuntu-B.ttf +0 -0
  77. package/{fonts → dist/assets/fonts}/Ubuntu-BI.ttf +0 -0
  78. package/{fonts → dist/assets/fonts}/Ubuntu-R.ttf +0 -0
  79. package/{fonts → dist/assets/fonts}/Ubuntu-RI.ttf +0 -0
  80. package/{fonts → dist/assets/fonts}/UbuntuMono-B.ttf +0 -0
  81. package/{fonts → dist/assets/fonts}/UbuntuMono-BI.ttf +0 -0
  82. package/{fonts → dist/assets/fonts}/UbuntuMono-R.ttf +0 -0
  83. package/{fonts → dist/assets/fonts}/UbuntuMono-RI.ttf +0 -0
  84. package/dist/assets/hatching/0.png +0 -0
  85. package/dist/assets/hatching/1.png +0 -0
  86. package/dist/assets/hatching/10.png +0 -0
  87. package/dist/assets/hatching/11.png +0 -0
  88. package/dist/assets/hatching/12.png +0 -0
  89. package/dist/assets/hatching/13.png +0 -0
  90. package/dist/assets/hatching/14.png +0 -0
  91. package/dist/assets/hatching/15.png +0 -0
  92. package/dist/assets/hatching/16.png +0 -0
  93. package/dist/assets/hatching/17.png +0 -0
  94. package/dist/assets/hatching/18.png +0 -0
  95. package/dist/assets/hatching/19.png +0 -0
  96. package/dist/assets/hatching/2.png +0 -0
  97. package/dist/assets/hatching/3.png +0 -0
  98. package/dist/assets/hatching/4.png +0 -0
  99. package/dist/assets/hatching/5.png +0 -0
  100. package/dist/assets/hatching/6.png +0 -0
  101. package/dist/assets/hatching/7.png +0 -0
  102. package/dist/assets/hatching/8.png +0 -0
  103. package/dist/assets/hatching/9.png +0 -0
  104. package/dist/{images → assets/images}/ExamineViewer.png +0 -0
  105. package/dist/{images → assets/images}/FlyViewer.png +0 -0
  106. package/dist/{images → assets/images}/NoneViewer.png +0 -0
  107. package/dist/{images → assets/images}/PlaneViewer.png +0 -0
  108. package/dist/{images → assets/images}/PrimitiveQuality.png +0 -0
  109. package/dist/{images → assets/images}/TextureQuality.png +0 -0
  110. package/dist/{images → assets/images}/Time.png +0 -0
  111. package/dist/{images → assets/images}/Viewpoint.png +0 -0
  112. package/dist/{images → assets/images}/WalkViewer.png +0 -0
  113. package/dist/assets/images/go-next.png +0 -0
  114. package/dist/{images → assets/images}/gtk-fullscreen.png +0 -0
  115. package/dist/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  116. package/dist/{images → assets/images}/gtk-zoom-fit.png +0 -0
  117. package/dist/{images → assets/images}/gtk-zoom-in.png +0 -0
  118. package/dist/{images → assets/images}/help-about.png +0 -0
  119. package/dist/{images → assets/images}/icon.bw.png +0 -0
  120. package/dist/{images → assets/images}/icon.png +0 -0
  121. package/dist/assets/images/logo.128.png +0 -0
  122. package/dist/{images → assets/images}/logo.bw.png +0 -0
  123. package/dist/{images → assets/images}/logo.png +0 -0
  124. package/dist/assets/linetype/0.png +0 -0
  125. package/dist/assets/linetype/1.png +0 -0
  126. package/dist/assets/linetype/10.png +0 -0
  127. package/dist/assets/linetype/11.png +0 -0
  128. package/dist/assets/linetype/12.png +0 -0
  129. package/dist/assets/linetype/13.png +0 -0
  130. package/dist/assets/linetype/14.png +0 -0
  131. package/dist/assets/linetype/15.png +0 -0
  132. package/dist/assets/linetype/16.png +0 -0
  133. package/dist/assets/linetype/2.png +0 -0
  134. package/dist/assets/linetype/3.png +0 -0
  135. package/dist/assets/linetype/4.png +0 -0
  136. package/dist/assets/linetype/5.png +0 -0
  137. package/dist/assets/linetype/6.png +0 -0
  138. package/dist/assets/linetype/7.png +0 -0
  139. package/dist/assets/linetype/8.png +0 -0
  140. package/dist/assets/linetype/9.png +0 -0
  141. package/dist/assets/shaders/webgl1/Background.fs +23 -0
  142. package/dist/assets/shaders/webgl1/Background.vs +16 -0
  143. package/dist/assets/shaders/webgl1/Depth.fs +60 -0
  144. package/dist/assets/shaders/webgl1/Depth.vs +13 -0
  145. package/dist/assets/shaders/webgl1/Fallback.fs +28 -0
  146. package/dist/assets/shaders/webgl1/Fallback.vs +24 -0
  147. package/dist/assets/shaders/webgl1/FallbackUnlit.fs +16 -0
  148. package/dist/assets/shaders/webgl1/FallbackUnlit.vs +18 -0
  149. package/dist/assets/shaders/webgl1/Gouraud.fs +529 -0
  150. package/dist/assets/shaders/webgl1/Gouraud.vs +108 -0
  151. package/dist/assets/shaders/webgl1/Phong.fs +838 -0
  152. package/dist/assets/shaders/webgl1/Phong.vs +52 -0
  153. package/dist/assets/shaders/webgl1/PointSet.fs +541 -0
  154. package/dist/assets/shaders/webgl1/PointSet.vs +48 -0
  155. package/dist/assets/shaders/webgl1/Unlit.fs +541 -0
  156. package/dist/assets/shaders/webgl1/Unlit.vs +52 -0
  157. package/dist/assets/shaders/webgl1/Wireframe.fs +93 -0
  158. package/dist/assets/shaders/webgl1/Wireframe.vs +47 -0
  159. package/dist/assets/shaders/webgl2/Background.fs +25 -0
  160. package/dist/assets/shaders/webgl2/Background.vs +17 -0
  161. package/dist/assets/shaders/webgl2/Depth.fs +62 -0
  162. package/dist/assets/shaders/webgl2/Depth.vs +14 -0
  163. package/dist/assets/shaders/webgl2/Gouraud.fs +684 -0
  164. package/dist/assets/shaders/webgl2/Gouraud.vs +109 -0
  165. package/dist/assets/shaders/webgl2/Phong.fs +1014 -0
  166. package/dist/assets/shaders/webgl2/Phong.vs +53 -0
  167. package/dist/assets/shaders/webgl2/PointSet.fs +696 -0
  168. package/dist/assets/shaders/webgl2/PointSet.vs +49 -0
  169. package/dist/assets/shaders/webgl2/Unlit.fs +696 -0
  170. package/dist/assets/shaders/webgl2/Unlit.vs +53 -0
  171. package/dist/assets/shaders/webgl2/Wireframe.fs +102 -0
  172. package/dist/assets/shaders/webgl2/Wireframe.vs +48 -0
  173. package/dist/example.html +8 -7
  174. package/dist/x_ite.css +180 -59
  175. package/dist/x_ite.js +74696 -68048
  176. package/dist/x_ite.min.js +42 -41
  177. package/dist/x_ite.zip +0 -0
  178. package/docs/404.md +5 -0
  179. package/docs/Accessing-the-External-Browser.md +290 -0
  180. package/docs/Browser-Support.md +47 -0
  181. package/docs/Custom-Shaders.md +905 -0
  182. package/docs/Features.md +49 -0
  183. package/docs/Glossary.md +339 -0
  184. package/docs/How-To-Configure-Your-Web-Server.md +56 -0
  185. package/docs/Supported-Nodes.md +370 -0
  186. package/docs/What's-New.md +1240 -0
  187. package/docs/XHTML-DOM-Integration.md +82 -0
  188. package/docs/_config.yml +140 -0
  189. package/docs/_data/navigation.yml +137 -0
  190. package/docs/assets/css/main.scss +100 -0
  191. package/docs/assets/images/logo.png +0 -0
  192. package/docs/google3696ee938394d7b6.html +1 -0
  193. package/docs/index.md +1026 -0
  194. package/docs/reference/Browser-Services.md +333 -0
  195. package/docs/reference/Constants-Services.md +376 -0
  196. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +128 -0
  197. package/docs/reference/Field-Services-and-Objects.md +1006 -0
  198. package/docs/reference/Prototype-Services.md +121 -0
  199. package/docs/reference/Route-Services.md +49 -0
  200. package/docs/reference/Scene-Services.md +360 -0
  201. package/docs/reference/Script-Node-Authoring-Interface.md +334 -0
  202. package/docs/tutorials/Adding-backgrounds.md +268 -0
  203. package/docs/tutorials/Adding-fog.md +67 -0
  204. package/docs/tutorials/Adding-sound.md +326 -0
  205. package/docs/tutorials/Animating-transforms.md +385 -0
  206. package/docs/tutorials/Basic-Nodes.md +317 -0
  207. package/docs/tutorials/Building-a-X3D-world.md +152 -0
  208. package/docs/tutorials/Building-elevation-grids.md +170 -0
  209. package/docs/tutorials/Building-extruded-shapes.md +145 -0
  210. package/docs/tutorials/Building-primitive-shapes.md +204 -0
  211. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +311 -0
  212. package/docs/tutorials/Controlling-appearance-with-materials.md +186 -0
  213. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +208 -0
  214. package/docs/tutorials/Controlling-detail.md +130 -0
  215. package/docs/tutorials/Controlling-how-textures-are-mapped.md +277 -0
  216. package/docs/tutorials/Controlling-navigation.md +70 -0
  217. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +180 -0
  218. package/docs/tutorials/Controlling-the-viewpoint.md +49 -0
  219. package/docs/tutorials/Creating-new-node-types.md +313 -0
  220. package/docs/tutorials/Grouping-nodes.md +237 -0
  221. package/docs/tutorials/Hello,-World!.md +204 -0
  222. package/docs/tutorials/Improving-Performance.md +227 -0
  223. package/docs/tutorials/Increasing-Rendering-Speed.md +110 -0
  224. package/docs/tutorials/Introducing-X3D.md +94 -0
  225. package/docs/tutorials/Introducing-animation.md +211 -0
  226. package/docs/tutorials/Introducing-script-use.md +127 -0
  227. package/docs/tutorials/Lighting-your-world.md +139 -0
  228. package/docs/tutorials/Mapping-textures.md +212 -0
  229. package/docs/tutorials/Naming-nodes.md +161 -0
  230. package/docs/tutorials/Providing-information-about-your-world.md +30 -0
  231. package/docs/tutorials/Sensing-the-viewer.md +205 -0
  232. package/docs/tutorials/Sensing-viewer-actions.md +214 -0
  233. package/docs/tutorials/Transforming-Shapes.md +270 -0
  234. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +631 -0
  235. package/docs/tutorials/index.md +78 -0
  236. package/meta/logo/logo.png +0 -0
  237. package/meta/logo/logo.svg +216 -217
  238. package/meta/web3d.html +76 -54
  239. package/package.json +41 -24
  240. package/src/assets/components/annotation.js +87 -0
  241. package/src/assets/components/cad-geometry.js +88 -0
  242. package/src/assets/components/cube-map-texturing.js +78 -0
  243. package/src/assets/components/dis.js +84 -0
  244. package/src/assets/components/event-utilities.js +93 -0
  245. package/src/assets/components/geometry2d.js +93 -0
  246. package/src/assets/components/geospatial.js +102 -0
  247. package/src/assets/components/h-anim.js +83 -0
  248. package/src/assets/components/key-device-sensor.js +78 -0
  249. package/src/assets/components/layout.js +87 -0
  250. package/src/assets/components/nurbs.js +118 -0
  251. package/src/assets/components/particle-systems.js +105 -0
  252. package/src/assets/components/picking.js +87 -0
  253. package/src/assets/components/projective-texture-mapping.js +75 -0
  254. package/src/assets/components/rigid-body-physics.js +123 -0
  255. package/src/assets/components/scripting.js +72 -0
  256. package/src/assets/components/texturing-3d.js +91 -0
  257. package/src/assets/components/volume-rendering.js +118 -0
  258. package/src/assets/components/x_ite.js +69 -0
  259. package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
  260. package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
  261. package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
  262. package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
  263. package/src/assets/fonts/Ubuntu-B.ttf +0 -0
  264. package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
  265. package/src/assets/fonts/Ubuntu-R.ttf +0 -0
  266. package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
  267. package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
  268. package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
  269. package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
  270. package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
  271. package/src/assets/hatching/0.png +0 -0
  272. package/src/assets/hatching/1.png +0 -0
  273. package/src/assets/hatching/10.png +0 -0
  274. package/src/assets/hatching/11.png +0 -0
  275. package/src/assets/hatching/12.png +0 -0
  276. package/src/assets/hatching/13.png +0 -0
  277. package/src/assets/hatching/14.png +0 -0
  278. package/src/assets/hatching/15.png +0 -0
  279. package/src/assets/hatching/16.png +0 -0
  280. package/src/assets/hatching/17.png +0 -0
  281. package/src/assets/hatching/18.png +0 -0
  282. package/src/assets/hatching/19.png +0 -0
  283. package/src/assets/hatching/2.png +0 -0
  284. package/src/assets/hatching/3.png +0 -0
  285. package/src/assets/hatching/4.png +0 -0
  286. package/src/assets/hatching/5.png +0 -0
  287. package/src/assets/hatching/6.png +0 -0
  288. package/src/assets/hatching/7.png +0 -0
  289. package/src/assets/hatching/8.png +0 -0
  290. package/src/assets/hatching/9.png +0 -0
  291. package/src/{images → assets/images}/ExamineViewer.png +0 -0
  292. package/src/{images → assets/images}/FlyViewer.png +0 -0
  293. package/src/{images → assets/images}/NoneViewer.png +0 -0
  294. package/src/{images → assets/images}/PlaneViewer.png +0 -0
  295. package/src/{images → assets/images}/PrimitiveQuality.png +0 -0
  296. package/src/{images → assets/images}/TextureQuality.png +0 -0
  297. package/src/{images → assets/images}/Time.png +0 -0
  298. package/src/{images → assets/images}/Viewpoint.png +0 -0
  299. package/src/{images → assets/images}/WalkViewer.png +0 -0
  300. package/src/assets/images/go-next.png +0 -0
  301. package/src/{images → assets/images}/gtk-fullscreen.png +0 -0
  302. package/src/{images → assets/images}/gtk-leave-fullscreen.png +0 -0
  303. package/src/{images → assets/images}/gtk-zoom-fit.png +0 -0
  304. package/src/{images → assets/images}/gtk-zoom-in.png +0 -0
  305. package/src/{images → assets/images}/help-about.png +0 -0
  306. package/src/{images → assets/images}/icon.bw.png +0 -0
  307. package/src/{images → assets/images}/icon.png +0 -0
  308. package/src/assets/images/logo.128.png +0 -0
  309. package/src/{images → assets/images}/logo.bw.png +0 -0
  310. package/src/{images → assets/images}/logo.png +0 -0
  311. package/src/assets/linetype/0.png +0 -0
  312. package/src/assets/linetype/1.png +0 -0
  313. package/src/assets/linetype/10.png +0 -0
  314. package/src/assets/linetype/11.png +0 -0
  315. package/src/assets/linetype/12.png +0 -0
  316. package/src/assets/linetype/13.png +0 -0
  317. package/src/assets/linetype/14.png +0 -0
  318. package/src/assets/linetype/15.png +0 -0
  319. package/src/assets/linetype/16.png +0 -0
  320. package/src/assets/linetype/2.png +0 -0
  321. package/src/assets/linetype/3.png +0 -0
  322. package/src/assets/linetype/4.png +0 -0
  323. package/src/assets/linetype/5.png +0 -0
  324. package/src/assets/linetype/6.png +0 -0
  325. package/src/assets/linetype/7.png +0 -0
  326. package/src/assets/linetype/8.png +0 -0
  327. package/src/assets/linetype/9.png +0 -0
  328. package/src/assets/shaders/Types.glsl +102 -0
  329. package/src/assets/shaders/webgl1/Background.fs +16 -0
  330. package/src/assets/shaders/webgl1/Background.vs +22 -0
  331. package/src/assets/shaders/webgl1/Depth.fs +16 -0
  332. package/src/assets/shaders/webgl1/Depth.vs +20 -0
  333. package/src/assets/shaders/webgl1/Fallback.fs +38 -0
  334. package/src/assets/shaders/webgl1/Fallback.vs +30 -0
  335. package/src/assets/shaders/webgl1/FallbackUnlit.fs +22 -0
  336. package/src/assets/shaders/webgl1/FallbackUnlit.vs +24 -0
  337. package/src/assets/shaders/webgl1/Gouraud.fs +66 -0
  338. package/src/assets/shaders/webgl1/Gouraud.vs +148 -0
  339. package/src/assets/shaders/webgl1/Phong.fs +173 -0
  340. package/src/assets/shaders/webgl1/Phong.vs +67 -0
  341. package/src/assets/shaders/webgl1/PointSet.fs +100 -0
  342. package/src/assets/shaders/webgl1/PointSet.vs +70 -0
  343. package/src/assets/shaders/webgl1/Unlit.fs +89 -0
  344. package/src/assets/shaders/webgl1/Unlit.vs +67 -0
  345. package/src/assets/shaders/webgl1/Wireframe.fs +74 -0
  346. package/src/assets/shaders/webgl1/Wireframe.vs +63 -0
  347. package/src/assets/shaders/webgl1/include/ClipPlanes.glsl +16 -0
  348. package/src/assets/shaders/webgl1/include/Fog.glsl +38 -0
  349. package/src/assets/shaders/webgl1/include/Hatch.glsl +18 -0
  350. package/src/assets/shaders/webgl1/include/Pack.glsl +51 -0
  351. package/src/assets/shaders/webgl1/include/Perlin.glsl +40 -0
  352. package/src/assets/shaders/webgl1/include/Shadow.glsl +310 -0
  353. package/src/assets/shaders/webgl1/include/Texture.glsl +488 -0
  354. package/src/assets/shaders/webgl2/Background.fs +19 -0
  355. package/src/assets/shaders/webgl2/Background.vs +23 -0
  356. package/src/assets/shaders/webgl2/Depth.fs +19 -0
  357. package/src/assets/shaders/webgl2/Depth.vs +21 -0
  358. package/src/assets/shaders/webgl2/Gouraud.fs +64 -0
  359. package/src/assets/shaders/webgl2/Gouraud.vs +149 -0
  360. package/src/assets/shaders/webgl2/Phong.fs +171 -0
  361. package/src/assets/shaders/webgl2/Phong.vs +68 -0
  362. package/src/assets/shaders/webgl2/PointSet.fs +99 -0
  363. package/src/assets/shaders/webgl2/PointSet.vs +71 -0
  364. package/src/assets/shaders/webgl2/Unlit.fs +88 -0
  365. package/src/assets/shaders/webgl2/Unlit.vs +68 -0
  366. package/src/assets/shaders/webgl2/Wireframe.fs +73 -0
  367. package/src/assets/shaders/webgl2/Wireframe.vs +64 -0
  368. package/src/assets/shaders/webgl2/include/ClipPlanes.glsl +16 -0
  369. package/src/assets/shaders/webgl2/include/Fog.glsl +46 -0
  370. package/src/assets/shaders/webgl2/include/Hatch.glsl +18 -0
  371. package/src/assets/shaders/webgl2/include/Pack.glsl +51 -0
  372. package/src/assets/shaders/webgl2/include/Perlin.glsl +40 -0
  373. package/src/assets/shaders/webgl2/include/Shadow.glsl +324 -0
  374. package/src/assets/shaders/webgl2/include/Texture.glsl +623 -0
  375. package/src/bookmarks.js +83 -164
  376. package/src/dummy.js +1 -0
  377. package/src/example.html +8 -7
  378. package/src/examples.js +150 -0
  379. package/src/lib/ammojs/AmmoJS.js +58 -0
  380. package/src/lib/ammojs/Makefile +26 -0
  381. package/src/lib/ammojs/ammo.idl +1031 -0
  382. package/src/lib/ammojs/ammo.js +40 -0
  383. package/src/lib/jpeg/jpeg.js +1019 -0
  384. package/src/lib/nurbs/extras/sample.js +242 -0
  385. package/src/lib/nurbs/nurbs.js +342 -0
  386. package/src/lib/nurbs/src/evaluate.js +413 -0
  387. package/src/lib/nurbs/src/numerical-derivative.js +54 -0
  388. package/src/lib/nurbs/src/support.js +151 -0
  389. package/src/lib/nurbs/src/transform.js +78 -0
  390. package/src/lib/nurbs/src/utils/accessor-preamble.js +33 -0
  391. package/src/lib/nurbs/src/utils/bisection-search.js +28 -0
  392. package/src/lib/nurbs/src/utils/cache-key.js +57 -0
  393. package/src/lib/nurbs/src/utils/create-accessors.js +110 -0
  394. package/src/lib/nurbs/src/utils/infer-type.js +52 -0
  395. package/src/lib/nurbs/src/utils/is-array-like.js +10 -0
  396. package/src/lib/nurbs/src/utils/is-ndarray-like.js +18 -0
  397. package/src/lib/nurbs/src/utils/is-ndarray.js +21 -0
  398. package/src/lib/nurbs/src/utils/ndloop.js +23 -0
  399. package/src/lib/nurbs/src/utils/size-getter.js +22 -0
  400. package/src/lib/nurbs/src/utils/variable.js +31 -0
  401. package/src/locale/de.po +8 -3
  402. package/src/locale/fr.po +9 -4
  403. package/src/locale/gettext.js +3 -3
  404. package/src/spinner.css +21 -8
  405. package/src/standard/Geospatial/Geodetic.js +48 -48
  406. package/src/standard/Geospatial/ReferenceEllipsoids.js +1 -1
  407. package/src/standard/Geospatial/UniversalTransverseMercator.js +43 -43
  408. package/src/standard/Math/Algorithm.js +25 -41
  409. package/src/standard/Math/Algorithms/Bezier.js +147 -0
  410. package/src/standard/Math/Algorithms/MergeSort.js +2 -2
  411. package/src/standard/Math/Algorithms/PartialSort.js +97 -0
  412. package/src/standard/Math/Algorithms/QuickSort.js +8 -6
  413. package/src/standard/Math/Algorithms/SAT.js +4 -8
  414. package/src/standard/Math/Algorithms/eigendecomposition.js +37 -33
  415. package/src/standard/Math/Geometry/Box2.js +84 -56
  416. package/src/standard/Math/Geometry/Box3.js +457 -284
  417. package/src/standard/Math/Geometry/Camera.js +24 -15
  418. package/src/standard/Math/Geometry/Cylinder3.js +13 -13
  419. package/src/standard/Math/Geometry/Line3.js +61 -53
  420. package/src/standard/Math/Geometry/Plane3.js +16 -16
  421. package/src/standard/Math/Geometry/Sphere3.js +122 -105
  422. package/src/standard/Math/Geometry/Spheroid3.js +1 -1
  423. package/src/standard/Math/Geometry/Triangle2.js +6 -6
  424. package/src/standard/Math/Geometry/Triangle3.js +80 -88
  425. package/src/standard/Math/Geometry/ViewVolume.js +315 -116
  426. package/src/standard/Math/Numbers/Color3.js +45 -29
  427. package/src/standard/Math/Numbers/Color4.js +25 -14
  428. package/src/standard/Math/Numbers/Complex.js +15 -22
  429. package/src/standard/Math/Numbers/Matrix2.js +37 -17
  430. package/src/standard/Math/Numbers/Matrix3.js +181 -212
  431. package/src/standard/Math/Numbers/Matrix4.js +204 -262
  432. package/src/standard/Math/Numbers/Quaternion.js +60 -147
  433. package/src/standard/Math/Numbers/Rotation4.js +197 -129
  434. package/src/standard/Math/Numbers/Vector2.js +53 -109
  435. package/src/standard/Math/Numbers/Vector3.js +75 -144
  436. package/src/standard/Math/Numbers/Vector4.js +85 -155
  437. package/src/standard/Math/Utility/BVH.js +35 -30
  438. package/src/standard/Math/Utility/MatrixStack.js +6 -9
  439. package/src/standard/Networking/BinaryTransport.js +8 -8
  440. package/src/standard/Time/MicroTime.js +79 -0
  441. package/src/standard/Utility/DataStorage.js +40 -17
  442. package/src/standard/Utility/MapUtilities.js +69 -0
  443. package/src/standard/Utility/ObjectCache.js +2 -3
  444. package/src/standard/Utility/Shuffle.js +5 -6
  445. package/src/tests.js +386 -0
  446. package/src/x_ite/Base/Events.js +22 -30
  447. package/src/x_ite/Base/X3DChildObject.js +35 -19
  448. package/src/x_ite/Base/X3DEventObject.js +10 -12
  449. package/src/x_ite/Base/X3DObject.js +63 -43
  450. package/src/x_ite/Basic/FieldDefinitionArray.js +16 -10
  451. package/src/x_ite/Basic/X3DArrayField.js +3 -430
  452. package/src/x_ite/Basic/X3DBaseNode.js +551 -288
  453. package/src/x_ite/Basic/X3DField.js +133 -96
  454. package/src/x_ite/Basic/X3DFieldDefinition.js +0 -4
  455. package/src/x_ite/Basic/X3DObjectArrayField.js +545 -0
  456. package/src/x_ite/Basic/X3DTypedArrayField.js +839 -0
  457. package/src/x_ite/Bits/TraverseType.js +2 -5
  458. package/src/x_ite/Bits/X3DConstants.js +12 -322
  459. package/src/x_ite/Browser/Core/BrowserOptions.js +205 -77
  460. package/src/x_ite/Browser/Core/BrowserProperties.js +2 -4
  461. package/src/x_ite/Browser/Core/BrowserTimings.js +16 -15
  462. package/src/x_ite/Browser/Core/ContextMenu.js +202 -80
  463. package/src/x_ite/Browser/Core/Notification.js +14 -6
  464. package/src/x_ite/Browser/Core/PrimitiveQuality.js +3 -7
  465. package/src/x_ite/Browser/Core/RenderingProperties.js +10 -11
  466. package/src/x_ite/Browser/Core/Shading.js +66 -0
  467. package/src/x_ite/Browser/Core/TextureQuality.js +3 -7
  468. package/src/x_ite/Browser/Core/X3DCoreContext.js +495 -48
  469. package/src/x_ite/Browser/Core/X3DCoreContext.js.~1~ +714 -0
  470. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +17 -23
  471. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +12 -20
  472. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +82 -34
  473. package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +3 -5
  474. package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +3 -5
  475. package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +12 -9
  476. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +60 -42
  477. package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +16 -20
  478. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +51 -12
  479. package/src/x_ite/Browser/Geometry3D/BoxOptions.js +17 -21
  480. package/src/x_ite/Browser/Geometry3D/ConeOptions.js +2 -4
  481. package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +2 -4
  482. package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +2 -4
  483. package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +3 -5
  484. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -9
  485. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +98 -0
  486. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +12 -12
  487. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +2 -4
  488. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +2 -4
  489. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +22 -200
  490. package/src/x_ite/Browser/Layout/ScreenText.js +287 -295
  491. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +15 -12
  492. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +18 -12
  493. package/src/x_ite/Browser/NURBS/NURBS.js +481 -0
  494. package/src/x_ite/Browser/Navigation/ExamineViewer.js +587 -127
  495. package/src/x_ite/Browser/Navigation/FlyViewer.js +23 -5
  496. package/src/x_ite/Browser/Navigation/LookAtViewer.js +402 -18
  497. package/src/x_ite/Browser/Navigation/NoneViewer.js +13 -3
  498. package/src/x_ite/Browser/Navigation/PlaneViewer.js +46 -28
  499. package/src/x_ite/Browser/Navigation/WalkViewer.js +45 -17
  500. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +414 -207
  501. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +65 -48
  502. package/src/x_ite/Browser/Navigation/X3DViewer.js +99 -45
  503. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +39 -38
  504. package/src/x_ite/Browser/Networking/urls.js +34 -5
  505. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +7 -9
  506. package/src/x_ite/Browser/Picking/IntersectionType.js +63 -0
  507. package/src/x_ite/Browser/Picking/MatchCriterion.js +64 -0
  508. package/src/x_ite/Browser/Picking/SortOrder.js +65 -0
  509. package/src/x_ite/Browser/Picking/VolumePicker.js +197 -0
  510. package/src/x_ite/Browser/Picking/X3DPickingContext.js +130 -0
  511. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +89 -30
  512. package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +1 -3
  513. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +33 -15
  514. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +39 -151
  515. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +70 -0
  516. package/src/x_ite/Browser/Shaders/Shader.js +150 -50
  517. package/src/x_ite/Browser/Shaders/ShaderSource.js +140 -0
  518. package/src/x_ite/Browser/Shaders/ShaderTest.js +94 -77
  519. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +220 -5
  520. package/src/x_ite/Browser/Shape/AlphaMode.js +65 -0
  521. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
  522. package/src/x_ite/Browser/Shape/X3DShapeContext.js +108 -4
  523. package/src/x_ite/Browser/Sound/X3DSoundContext.js +1 -20
  524. package/src/x_ite/Browser/Text/PolygonText.js +165 -359
  525. package/src/x_ite/Browser/Text/TextAlignment.js +3 -7
  526. package/src/x_ite/Browser/Text/X3DTextContext.js +38 -30
  527. package/src/x_ite/Browser/Text/X3DTextGeometry.js +58 -84
  528. package/src/x_ite/Browser/Texturing/MultiTextureFunctionType.js +64 -0
  529. package/src/x_ite/Browser/Texturing/MultiTextureModeType.js +81 -0
  530. package/src/x_ite/Browser/Texturing/MultiTextureSourceType.js +65 -0
  531. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +73 -0
  532. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +148 -41
  533. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1126 -0
  534. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +686 -0
  535. package/src/x_ite/Browser/Time/X3DTimeContext.js +20 -17
  536. package/src/x_ite/Browser/VERSION.js +2 -2
  537. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs +120 -0
  538. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs +28 -0
  539. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +114 -0
  540. package/src/x_ite/Browser/X3DBrowser.js +282 -182
  541. package/src/x_ite/Browser/X3DBrowserContext.js +77 -43
  542. package/src/x_ite/Components/Annotation/AnnotationLayer.js +108 -0
  543. package/src/x_ite/Components/Annotation/AnnotationTarget.js +101 -0
  544. package/src/x_ite/Components/{PointingDeviceSensor/TouchGroup.js → Annotation/GroupAnnotation.js} +30 -24
  545. package/src/x_ite/Components/Annotation/IconAnnotation.js +110 -0
  546. package/src/x_ite/Components/Annotation/TextAnnotation.js +102 -0
  547. package/src/x_ite/Components/Annotation/URLAnnotation.js +101 -0
  548. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +76 -0
  549. package/src/x_ite/Components/CADGeometry/CADAssembly.js +6 -8
  550. package/src/x_ite/Components/CADGeometry/CADFace.js +137 -33
  551. package/src/x_ite/Components/CADGeometry/CADLayer.js +5 -18
  552. package/src/x_ite/Components/CADGeometry/CADPart.js +6 -12
  553. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +20 -36
  554. package/src/x_ite/Components/CADGeometry/QuadSet.js +11 -24
  555. package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +2 -4
  556. package/src/x_ite/Components/Core/MetadataBoolean.js +2 -4
  557. package/src/x_ite/Components/Core/MetadataDouble.js +2 -4
  558. package/src/x_ite/Components/Core/MetadataFloat.js +2 -4
  559. package/src/x_ite/Components/Core/MetadataInteger.js +2 -4
  560. package/src/x_ite/Components/Core/MetadataSet.js +2 -4
  561. package/src/x_ite/Components/Core/MetadataString.js +2 -4
  562. package/src/x_ite/Components/Core/WorldInfo.js +18 -10
  563. package/src/x_ite/Components/Core/X3DBindableNode.js +5 -36
  564. package/src/x_ite/Components/Core/X3DChildNode.js +16 -5
  565. package/src/x_ite/Components/Core/X3DInfoNode.js +2 -4
  566. package/src/x_ite/Components/Core/X3DMetadataObject.js +1 -3
  567. package/src/x_ite/Components/Core/X3DNode.js +2 -64
  568. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +190 -210
  569. package/src/x_ite/Components/Core/X3DSensorNode.js +2 -4
  570. package/src/x_ite/Components/Core.js +111 -0
  571. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +42 -50
  572. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +41 -42
  573. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +44 -59
  574. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +48 -46
  575. package/src/x_ite/Components/DIS/DISEntityManager.js +2 -4
  576. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +2 -4
  577. package/src/x_ite/Components/DIS/EspduTransform.js +13 -9
  578. package/src/x_ite/Components/DIS/ReceiverPdu.js +13 -9
  579. package/src/x_ite/Components/DIS/SignalPdu.js +13 -9
  580. package/src/x_ite/Components/DIS/TransmitterPdu.js +13 -9
  581. package/src/x_ite/Components/EnvironmentalEffects/Background.js +2 -4
  582. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +15 -18
  583. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +59 -7
  584. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +12 -10
  585. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +2 -4
  586. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +149 -143
  587. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +61 -22
  588. package/src/x_ite/Components/EnvironmentalEffects.js +90 -0
  589. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +121 -121
  590. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +173 -53
  591. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +33 -31
  592. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +19 -11
  593. package/src/x_ite/Components/EnvironmentalSensor.js +81 -0
  594. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +2 -4
  595. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +2 -4
  596. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +2 -4
  597. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +2 -4
  598. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +2 -4
  599. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +2 -4
  600. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +2 -4
  601. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +2 -4
  602. package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +2 -4
  603. package/src/x_ite/Components/Followers/ColorChaser.js +3 -7
  604. package/src/x_ite/Components/Followers/ColorDamper.js +3 -7
  605. package/src/x_ite/Components/Followers/CoordinateChaser.js +3 -11
  606. package/src/x_ite/Components/Followers/CoordinateDamper.js +2 -10
  607. package/src/x_ite/Components/Followers/OrientationChaser.js +9 -7
  608. package/src/x_ite/Components/Followers/OrientationDamper.js +9 -7
  609. package/src/x_ite/Components/Followers/PositionChaser.js +3 -7
  610. package/src/x_ite/Components/Followers/PositionChaser2D.js +3 -7
  611. package/src/x_ite/Components/Followers/PositionDamper.js +3 -7
  612. package/src/x_ite/Components/Followers/PositionDamper2D.js +3 -7
  613. package/src/x_ite/Components/Followers/ScalarChaser.js +7 -7
  614. package/src/x_ite/Components/Followers/ScalarDamper.js +3 -7
  615. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +3 -11
  616. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +3 -11
  617. package/src/x_ite/Components/Followers/X3DChaserNode.js +26 -26
  618. package/src/x_ite/Components/Followers/X3DDamperNode.js +6 -10
  619. package/src/x_ite/Components/Followers/X3DFollowerNode.js +11 -11
  620. package/src/x_ite/Components/Followers.js +120 -0
  621. package/src/x_ite/Components/Geometry2D/Arc2D.js +28 -30
  622. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +95 -93
  623. package/src/x_ite/Components/Geometry2D/Circle2D.js +16 -15
  624. package/src/x_ite/Components/Geometry2D/Disk2D.js +80 -88
  625. package/src/x_ite/Components/Geometry2D/Polyline2D.js +13 -19
  626. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +12 -18
  627. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +13 -13
  628. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +31 -30
  629. package/src/x_ite/Components/Geometry3D/Box.js +12 -12
  630. package/src/x_ite/Components/Geometry3D/Cone.js +34 -36
  631. package/src/x_ite/Components/Geometry3D/Cylinder.js +52 -54
  632. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +90 -52
  633. package/src/x_ite/Components/Geometry3D/Extrusion.js +472 -388
  634. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +193 -163
  635. package/src/x_ite/Components/Geometry3D/Sphere.js +17 -19
  636. package/src/x_ite/Components/Geometry3D.js +90 -0
  637. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +124 -61
  638. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +54 -36
  639. package/src/x_ite/Components/Geospatial/GeoLOD.js +190 -98
  640. package/src/x_ite/Components/Geospatial/GeoLocation.js +8 -10
  641. package/src/x_ite/Components/Geospatial/GeoMetadata.js +2 -4
  642. package/src/x_ite/Components/Geospatial/GeoOrigin.js +2 -4
  643. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +4 -4
  644. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +10 -7
  645. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +4 -4
  646. package/src/x_ite/Components/Geospatial/GeoTransform.js +13 -13
  647. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +131 -78
  648. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +7 -9
  649. package/src/x_ite/Components/Grouping/Group.js +5 -7
  650. package/src/x_ite/Components/Grouping/StaticGroup.js +194 -22
  651. package/src/x_ite/Components/Grouping/Switch.js +174 -25
  652. package/src/x_ite/Components/Grouping/Transform.js +5 -7
  653. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +70 -16
  654. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +442 -151
  655. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +53 -29
  656. package/src/x_ite/Components/Grouping/X3DTransformNode.js +6 -9
  657. package/src/x_ite/Components/Grouping.js +93 -0
  658. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimDisplacer.js +8 -10
  659. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +360 -0
  660. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimJoint.js +108 -23
  661. package/src/x_ite/Components/HAnim/HAnimMotion.js +113 -0
  662. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSegment.js +14 -14
  663. package/src/x_ite/Components/{H-Anim → HAnim}/HAnimSite.js +14 -16
  664. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +13 -11
  665. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +21 -13
  666. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +19 -11
  667. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +8 -8
  668. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +28 -14
  669. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +27 -16
  670. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +10 -8
  671. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +10 -8
  672. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +2 -4
  673. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +7 -9
  674. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +7 -9
  675. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +7 -9
  676. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +10 -11
  677. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +2 -4
  678. package/src/x_ite/Components/Interpolation.js +111 -0
  679. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +72 -8
  680. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +65 -4
  681. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +5 -29
  682. package/src/x_ite/Components/Layering/Layer.js +14 -6
  683. package/src/x_ite/Components/Layering/LayerSet.js +6 -10
  684. package/src/x_ite/Components/Layering/Viewport.js +10 -12
  685. package/src/x_ite/Components/Layering/X3DLayerNode.js +76 -69
  686. package/src/x_ite/Components/Layering/X3DViewportNode.js +2 -6
  687. package/src/x_ite/Components/Layering.js +84 -0
  688. package/src/x_ite/Components/Layout/Layout.js +163 -173
  689. package/src/x_ite/Components/Layout/LayoutGroup.js +20 -19
  690. package/src/x_ite/Components/Layout/LayoutLayer.js +12 -9
  691. package/src/x_ite/Components/Layout/ScreenFontStyle.js +4 -8
  692. package/src/x_ite/Components/Layout/ScreenGroup.js +63 -56
  693. package/src/x_ite/Components/Layout/X3DLayoutNode.js +2 -4
  694. package/src/x_ite/Components/Lighting/DirectionalLight.js +41 -31
  695. package/src/x_ite/Components/Lighting/PointLight.js +117 -104
  696. package/src/x_ite/Components/Lighting/SpotLight.js +77 -53
  697. package/src/x_ite/Components/Lighting/X3DLightNode.js +90 -68
  698. package/src/x_ite/Components/Lighting.js +81 -0
  699. package/src/x_ite/Components/NURBS/Contour2D.js +47 -5
  700. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +69 -5
  701. package/src/x_ite/Components/NURBS/CoordinateDouble.js +2 -4
  702. package/src/x_ite/Components/NURBS/NurbsCurve.js +140 -10
  703. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +117 -8
  704. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +139 -10
  705. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +3 -5
  706. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +125 -10
  707. package/src/x_ite/Components/NURBS/NurbsSet.js +92 -11
  708. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +96 -12
  709. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +88 -7
  710. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +88 -7
  711. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +62 -13
  712. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +41 -6
  713. package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +2 -4
  714. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +333 -7
  715. package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +9 -5
  716. package/src/x_ite/Components/Navigation/Billboard.js +14 -15
  717. package/src/x_ite/Components/Navigation/Collision.js +13 -12
  718. package/src/x_ite/Components/Navigation/LOD.js +221 -66
  719. package/src/x_ite/Components/Navigation/NavigationInfo.js +110 -99
  720. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +138 -45
  721. package/src/x_ite/Components/Navigation/Viewpoint.js +55 -33
  722. package/src/x_ite/Components/Navigation/ViewpointGroup.js +18 -10
  723. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +241 -181
  724. package/src/x_ite/Components/Navigation.js +93 -0
  725. package/src/x_ite/Components/Networking/Anchor.js +24 -28
  726. package/src/x_ite/Components/Networking/Inline.js +68 -50
  727. package/src/x_ite/Components/Networking/LoadSensor.js +2 -4
  728. package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +2 -4
  729. package/src/x_ite/Components/Networking/X3DUrlObject.js +93 -11
  730. package/src/x_ite/Components/Networking.js +84 -0
  731. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -8
  732. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +8 -4
  733. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +7 -4
  734. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +4 -4
  735. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +451 -287
  736. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +7 -4
  737. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +53 -40
  738. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +62 -55
  739. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +133 -123
  740. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +25 -22
  741. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +28 -27
  742. package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +2 -4
  743. package/src/x_ite/Components/Picking/LinePickSensor.js +253 -10
  744. package/src/x_ite/Components/Picking/PickableGroup.js +121 -10
  745. package/src/x_ite/Components/Picking/PointPickSensor.js +262 -12
  746. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +176 -8
  747. package/src/x_ite/Components/Picking/VolumePickSensor.js +152 -8
  748. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +378 -7
  749. package/src/x_ite/Components/Picking/X3DPickableObject.js +22 -4
  750. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +33 -15
  751. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +7 -4
  752. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +2 -4
  753. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +4 -4
  754. package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +4 -4
  755. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +3 -5
  756. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +2 -4
  757. package/src/x_ite/Components/PointingDeviceSensor.js +90 -0
  758. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +282 -0
  759. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +227 -0
  760. package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +217 -0
  761. package/src/x_ite/Components/Rendering/ClipPlane.js +12 -16
  762. package/src/x_ite/Components/Rendering/Color.js +62 -17
  763. package/src/x_ite/Components/Rendering/ColorRGBA.js +65 -17
  764. package/src/x_ite/Components/Rendering/Coordinate.js +4 -4
  765. package/src/x_ite/Components/Rendering/IndexedLineSet.js +68 -81
  766. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +20 -19
  767. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +10 -7
  768. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +21 -23
  769. package/src/x_ite/Components/Rendering/LineSet.js +54 -37
  770. package/src/x_ite/Components/Rendering/Normal.js +65 -13
  771. package/src/x_ite/Components/Rendering/PointSet.js +52 -33
  772. package/src/x_ite/Components/Rendering/TriangleFanSet.js +10 -14
  773. package/src/x_ite/Components/Rendering/TriangleSet.js +2 -4
  774. package/src/x_ite/Components/Rendering/TriangleStripSet.js +9 -13
  775. package/src/x_ite/Components/Rendering/X3DColorNode.js +13 -12
  776. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +118 -79
  777. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +103 -44
  778. package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +2 -4
  779. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +722 -591
  780. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +129 -92
  781. package/src/x_ite/Components/Rendering/X3DNormalNode.js +2 -4
  782. package/src/x_ite/Components/Rendering.js +132 -0
  783. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +116 -7
  784. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +199 -11
  785. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +436 -11
  786. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +118 -10
  787. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +192 -9
  788. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +84 -8
  789. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +20 -14
  790. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +200 -12
  791. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +14 -4
  792. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +424 -17
  793. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +295 -19
  794. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +162 -10
  795. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +135 -8
  796. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +10 -6
  797. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +93 -9
  798. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +5 -8
  799. package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +150 -4
  800. package/src/x_ite/Components/Scripting/Script.js +156 -105
  801. package/src/x_ite/Components/Scripting/X3DScriptNode.js +3 -7
  802. package/src/x_ite/Components/Shaders/ComposedShader.js +38 -53
  803. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +38 -15
  804. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +32 -14
  805. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +32 -14
  806. package/src/x_ite/Components/Shaders/PackagedShader.js +19 -17
  807. package/src/x_ite/Components/Shaders/ProgramShader.js +2 -4
  808. package/src/x_ite/Components/Shaders/ShaderPart.js +38 -26
  809. package/src/x_ite/Components/Shaders/ShaderProgram.js +16 -14
  810. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +836 -699
  811. package/src/x_ite/Components/Shaders/X3DShaderNode.js +61 -101
  812. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +2 -4
  813. package/src/x_ite/Components/Shaders.js +102 -0
  814. package/src/x_ite/Components/Shape/Appearance.js +179 -69
  815. package/src/x_ite/Components/Shape/FillProperties.js +65 -8
  816. package/src/x_ite/Components/Shape/LineProperties.js +29 -9
  817. package/src/x_ite/Components/Shape/Material.js +50 -64
  818. package/src/x_ite/Components/Shape/PointProperties.js +162 -0
  819. package/src/x_ite/Components/Shape/Shape.js +116 -68
  820. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +56 -62
  821. package/src/x_ite/Components/Shape/UnlitMaterial.js +109 -0
  822. package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +2 -4
  823. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +14 -11
  824. package/src/x_ite/Components/Shape/X3DMaterialNode.js +17 -6
  825. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +111 -0
  826. package/src/x_ite/Components/Shape/X3DShapeNode.js +54 -29
  827. package/src/x_ite/Components/Shape.js +108 -0
  828. package/src/x_ite/Components/Sound/AudioClip.js +47 -57
  829. package/src/x_ite/Components/Sound/Sound.js +177 -83
  830. package/src/x_ite/Components/Sound/X3DSoundNode.js +2 -4
  831. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +38 -24
  832. package/src/x_ite/Components/Sound.js +81 -0
  833. package/src/x_ite/Components/Text/FontStyle.js +4 -6
  834. package/src/x_ite/Components/Text/Text.js +21 -18
  835. package/src/x_ite/Components/Text/X3DFontStyleNode.js +58 -93
  836. package/src/x_ite/Components/Text.js +78 -0
  837. package/src/x_ite/Components/Texturing/ImageTexture.js +57 -67
  838. package/src/x_ite/Components/Texturing/MovieTexture.js +59 -70
  839. package/src/x_ite/Components/Texturing/MultiTexture.js +238 -15
  840. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +85 -8
  841. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +47 -8
  842. package/src/x_ite/Components/Texturing/PixelTexture.js +61 -27
  843. package/src/x_ite/Components/Texturing/TextureCoordinate.js +72 -22
  844. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +69 -11
  845. package/src/x_ite/Components/Texturing/TextureProperties.js +98 -69
  846. package/src/x_ite/Components/Texturing/TextureTransform.js +58 -52
  847. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +91 -0
  848. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +183 -0
  849. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +77 -0
  850. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +42 -97
  851. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js.~1~ +209 -0
  852. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +4 -12
  853. package/src/x_ite/Components/Texturing/X3DTextureNode.js +10 -71
  854. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +5 -14
  855. package/src/x_ite/Components/Texturing.js +120 -0
  856. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +90 -8
  857. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +106 -16
  858. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +126 -8
  859. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +75 -25
  860. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +74 -24
  861. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +42 -36
  862. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +19 -16
  863. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +110 -8
  864. package/src/x_ite/Components/Time/TimeSensor.js +68 -38
  865. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +29 -29
  866. package/src/x_ite/Components/Time.js +75 -0
  867. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +311 -12
  868. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +60 -8
  869. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +219 -10
  870. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +134 -7
  871. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +88 -9
  872. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +311 -15
  873. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +87 -7
  874. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +136 -6
  875. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +224 -13
  876. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +193 -12
  877. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +87 -10
  878. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +97 -9
  879. package/src/x_ite/Components/VolumeRendering/VolumeData.js +155 -12
  880. package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +2 -4
  881. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +155 -5
  882. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +64 -4
  883. package/src/x_ite/Components/X_ITE/BlendMode.js +206 -0
  884. package/src/x_ite/Components.js +110 -0
  885. package/src/x_ite/Configuration/ComponentInfo.js +21 -15
  886. package/src/x_ite/Configuration/ComponentInfoArray.js +11 -16
  887. package/src/x_ite/Configuration/ProfileInfo.js +10 -10
  888. package/src/x_ite/Configuration/ProfileInfoArray.js +10 -3
  889. package/src/x_ite/Configuration/SupportedComponents.js +312 -303
  890. package/src/x_ite/Configuration/SupportedNodes.js +44 -716
  891. package/src/x_ite/Configuration/SupportedProfiles.js +196 -168
  892. package/src/x_ite/Configuration/UnitInfo.js +22 -8
  893. package/src/x_ite/Configuration/UnitInfoArray.js +2 -3
  894. package/src/x_ite/Configuration/X3DInfoArray.js +46 -26
  895. package/src/x_ite/DEBUG.js +4 -5
  896. package/src/x_ite/Execution/BindableList.js +99 -34
  897. package/src/x_ite/Execution/BindableStack.js +65 -74
  898. package/src/x_ite/Execution/ExportedNode.js +32 -9
  899. package/src/x_ite/Execution/ImportedNode.js +144 -63
  900. package/src/x_ite/Execution/Scene.js +33 -35
  901. package/src/x_ite/Execution/World.js +31 -29
  902. package/src/x_ite/Execution/X3DExecutionContext.js +452 -194
  903. package/src/x_ite/Execution/X3DScene.js +303 -74
  904. package/src/x_ite/{Error.js → Fallback.js} +25 -24
  905. package/src/x_ite/Fields/ArrayFields.js +315 -112
  906. package/src/x_ite/Fields/SFBool.js +11 -10
  907. package/src/x_ite/Fields/SFColor.js +43 -19
  908. package/src/x_ite/Fields/SFColorRGBA.js +40 -18
  909. package/src/x_ite/Fields/SFDouble.js +17 -10
  910. package/src/x_ite/Fields/SFFloat.js +18 -11
  911. package/src/x_ite/Fields/SFImage.js +47 -38
  912. package/src/x_ite/Fields/SFInt32.js +10 -9
  913. package/src/x_ite/Fields/SFMatrix3.js +24 -17
  914. package/src/x_ite/Fields/SFMatrix4.js +24 -17
  915. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +15 -8
  916. package/src/x_ite/Fields/SFNode.js +119 -39
  917. package/src/x_ite/Fields/SFNodeCache.js +89 -0
  918. package/src/x_ite/Fields/SFRotation.js +42 -27
  919. package/src/x_ite/Fields/SFString.js +14 -15
  920. package/src/x_ite/Fields/SFTime.js +12 -11
  921. package/src/x_ite/Fields/SFVec2.js +17 -14
  922. package/src/x_ite/Fields/SFVec3.js +23 -17
  923. package/src/x_ite/Fields/SFVec4.js +25 -19
  924. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +51 -19
  925. package/src/x_ite/Fields.js +3 -9
  926. package/src/x_ite/InputOutput/FileLoader.js +264 -181
  927. package/src/x_ite/InputOutput/Generator.js +136 -60
  928. package/src/x_ite/Parser/HTMLSupport.js +3 -596
  929. package/src/x_ite/Parser/JSONParser.js +446 -0
  930. package/src/x_ite/Parser/Parser.js +617 -652
  931. package/src/x_ite/Parser/X3DParser.js +176 -0
  932. package/src/x_ite/Parser/XMLParser.js +359 -94
  933. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +19 -3
  934. package/src/x_ite/Prototype/ProtoDeclarationArray.js +19 -3
  935. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +120 -61
  936. package/src/x_ite/Prototype/X3DProtoDeclaration.js +144 -59
  937. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +16 -18
  938. package/src/x_ite/Rendering/DependentRenderer.js +9 -13
  939. package/src/x_ite/Rendering/{DepthBuffer.js → TextureBuffer.js} +84 -53
  940. package/src/x_ite/Rendering/X3DRenderObject.js +640 -531
  941. package/src/x_ite/Routing/RouteArray.js +38 -16
  942. package/src/x_ite/Routing/X3DRoute.js +67 -68
  943. package/src/x_ite/Routing/X3DRoutingContext.js +6 -6
  944. package/src/x_ite/X3D.js +74 -70
  945. package/src/x_ite.config.js +91 -0
  946. package/src/x_ite.css +175 -53
  947. package/src/x_ite.html +128 -439
  948. package/src/x_ite.js +87 -25
  949. package/tests/{SEE.txt → README.md} +1 -0
  950. package/tests/tests.mdproj +1 -1
  951. package/x_ite.min.html +128 -439
  952. package/.bzrignore +0 -3
  953. package/.npmignore +0 -3
  954. package/AUTHORS.md +0 -6
  955. package/STYLE_GUIDE.md +0 -51
  956. package/X_ITE.sln +0 -56
  957. package/X_ITE.userprefs +0 -13
  958. package/build/build.mdproj +0 -24
  959. package/build/dist.pl +0 -97
  960. package/build/parts/end.frag +0 -10
  961. package/build/parts/start.frag +0 -7
  962. package/dist/LICENCES.txt +0 -344
  963. package/dist/dist.mdproj +0 -45
  964. package/dist/images/logo.128.png +0 -0
  965. package/fonts/fonts.mdproj +0 -29
  966. package/meta/meta.mdproj +0 -35
  967. package/require.build.js +0 -15
  968. package/require.build.min.js +0 -15
  969. package/src/images/logo.128.png +0 -0
  970. package/src/lib/jquery-contextMenu/README.md +0 -355
  971. package/src/lib/jquery-contextMenu/dist/images/cut.png +0 -0
  972. package/src/lib/jquery-contextMenu/dist/images/door.png +0 -0
  973. package/src/lib/jquery-contextMenu/dist/images/page_white_add.png +0 -0
  974. package/src/lib/jquery-contextMenu/dist/images/page_white_copy.png +0 -0
  975. package/src/lib/jquery-contextMenu/dist/images/page_white_delete.png +0 -0
  976. package/src/lib/jquery-contextMenu/dist/images/page_white_edit.png +0 -0
  977. package/src/lib/jquery-contextMenu/dist/images/page_white_paste.png +0 -0
  978. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.css +0 -155
  979. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.js +0 -1811
  980. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.css +0 -16
  981. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.css.map +0 -1
  982. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.js +0 -18
  983. package/src/lib/jquery-contextMenu/dist/jquery.contextMenu.min.js.map +0 -1
  984. package/src/lib/jquery-contextMenu/dist/jquery.ui.position.js +0 -517
  985. package/src/lib/jquery-contextMenu/dist/jquery.ui.position.min.js +0 -4
  986. package/src/lib/jquery-contextMenu/package.json +0 -99
  987. package/src/lib/opentype.js/.npmignore +0 -5
  988. package/src/locale/de.mo +0 -0
  989. package/src/locale/fr.mo +0 -0
  990. package/src/require.config.js +0 -51
  991. package/src/src.mdproj +0 -729
  992. package/src/standard/Networking/URI.js +0 -687
  993. package/src/x_ite/Browser/Shaders/BackgroundSphereFragmentShader.fs +0 -29
  994. package/src/x_ite/Browser/Shaders/BackgroundSphereVertexShader.vs +0 -22
  995. package/src/x_ite/Browser/Shaders/Bits/Line3.h +0 -14
  996. package/src/x_ite/Browser/Shaders/Bits/Plane3.h +0 -47
  997. package/src/x_ite/Browser/Shaders/Bits/Random.h +0 -31
  998. package/src/x_ite/Browser/Shaders/Depth.fs +0 -51
  999. package/src/x_ite/Browser/Shaders/Depth.vs +0 -20
  1000. package/src/x_ite/Browser/Shaders/Gouraud.fs +0 -110
  1001. package/src/x_ite/Browser/Shaders/Gouraud.vs +0 -188
  1002. package/src/x_ite/Browser/Shaders/Phong.fs +0 -255
  1003. package/src/x_ite/Browser/Shaders/Phong.vs +0 -38
  1004. package/src/x_ite/Browser/Shaders/PointSet.fs +0 -64
  1005. package/src/x_ite/Browser/Shaders/Wireframe.fs +0 -61
  1006. package/src/x_ite/Browser/Shaders/Wireframe.vs +0 -55
  1007. package/src/x_ite/Components/H-Anim/HAnimHumanoid.js +0 -118
@@ -0,0 +1,2190 @@
1
+ (function () {
2
+
3
+ var
4
+ define = X3D .define,
5
+ require = X3D .require,
6
+ module = { };
7
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
8
+ *******************************************************************************
9
+ *
10
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
11
+ *
12
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
13
+ *
14
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
15
+ *
16
+ * The copyright notice above does not evidence any actual of intended
17
+ * publication of such source code, and is an unpublished work by create3000.
18
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
19
+ * create3000.
20
+ *
21
+ * No permission is granted to copy, distribute, or create derivative works from
22
+ * the contents of this software, in whole or in part, without the prior written
23
+ * permission of create3000.
24
+ *
25
+ * NON-MILITARY USE ONLY
26
+ *
27
+ * All create3000 software are effectively free software with a non-military use
28
+ * restriction. It is free. Well commented source is provided. You may reuse the
29
+ * source in any way you please with the exception anything that uses it must be
30
+ * marked to indicate is contains 'non-military use only' components.
31
+ *
32
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
33
+ *
34
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
35
+ *
36
+ * This file is part of the X_ITE Project.
37
+ *
38
+ * X_ITE is free software: you can redistribute it and/or modify it under the
39
+ * terms of the GNU General Public License version 3 only, as published by the
40
+ * Free Software Foundation.
41
+ *
42
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
43
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
44
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
45
+ * details (a copy is included in the LICENSE file that accompanied this code).
46
+ *
47
+ * You should have received a copy of the GNU General Public License version 3
48
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
49
+ * copy of the GPLv3 License.
50
+ *
51
+ * For Silvio, Joy and Adi.
52
+ *
53
+ ******************************************************************************/
54
+
55
+
56
+ define ('x_ite/Browser/Geometry2D/Arc2DOptions',[
57
+ "x_ite/Basic/X3DBaseNode",
58
+ "x_ite/Fields",
59
+ ],
60
+ function (X3DBaseNode,
61
+ Fields)
62
+ {
63
+ "use strict";
64
+
65
+ function ArcClose2DOptions (executionContext)
66
+ {
67
+ X3DBaseNode .call (this, executionContext);
68
+
69
+ this .addChildObjects ("dimension", new Fields .SFInt32 (40))
70
+ }
71
+
72
+ ArcClose2DOptions .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
73
+ {
74
+ constructor: ArcClose2DOptions,
75
+ getTypeName: function ()
76
+ {
77
+ return "ArcClose2DOptions";
78
+ },
79
+ getComponentName: function ()
80
+ {
81
+ return "X_ITE";
82
+ },
83
+ getContainerField: function ()
84
+ {
85
+ return "arcClose2DOptions";
86
+ },
87
+ });
88
+
89
+ return ArcClose2DOptions;
90
+ });
91
+
92
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
93
+ *******************************************************************************
94
+ *
95
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
96
+ *
97
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
98
+ *
99
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
100
+ *
101
+ * The copyright notice above does not evidence any actual of intended
102
+ * publication of such source code, and is an unpublished work by create3000.
103
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
104
+ * create3000.
105
+ *
106
+ * No permission is granted to copy, distribute, or create derivative works from
107
+ * the contents of this software, in whole or in part, without the prior written
108
+ * permission of create3000.
109
+ *
110
+ * NON-MILITARY USE ONLY
111
+ *
112
+ * All create3000 software are effectively free software with a non-military use
113
+ * restriction. It is free. Well commented source is provided. You may reuse the
114
+ * source in any way you please with the exception anything that uses it must be
115
+ * marked to indicate is contains 'non-military use only' components.
116
+ *
117
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
118
+ *
119
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
120
+ *
121
+ * This file is part of the X_ITE Project.
122
+ *
123
+ * X_ITE is free software: you can redistribute it and/or modify it under the
124
+ * terms of the GNU General Public License version 3 only, as published by the
125
+ * Free Software Foundation.
126
+ *
127
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
128
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
129
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
130
+ * details (a copy is included in the LICENSE file that accompanied this code).
131
+ *
132
+ * You should have received a copy of the GNU General Public License version 3
133
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
134
+ * copy of the GPLv3 License.
135
+ *
136
+ * For Silvio, Joy and Adi.
137
+ *
138
+ ******************************************************************************/
139
+
140
+
141
+ define ('x_ite/Browser/Geometry2D/ArcClose2DOptions',[
142
+ "x_ite/Basic/X3DBaseNode",
143
+ "x_ite/Fields",
144
+ ],
145
+ function (X3DBaseNode,
146
+ Fields)
147
+ {
148
+ "use strict";
149
+
150
+ function Arc2DOptions (executionContext)
151
+ {
152
+ X3DBaseNode .call (this, executionContext);
153
+
154
+ this .addChildObjects ("dimension", new Fields .SFInt32 (40))
155
+ }
156
+
157
+ Arc2DOptions .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
158
+ {
159
+ constructor: Arc2DOptions,
160
+ getTypeName: function ()
161
+ {
162
+ return "Arc2DOptions";
163
+ },
164
+ getComponentName: function ()
165
+ {
166
+ return "X_ITE";
167
+ },
168
+ getContainerField: function ()
169
+ {
170
+ return "arc2DOptions";
171
+ },
172
+ });
173
+
174
+ return Arc2DOptions;
175
+ });
176
+
177
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
178
+ *******************************************************************************
179
+ *
180
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
181
+ *
182
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
183
+ *
184
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
185
+ *
186
+ * The copyright notice above does not evidence any actual of intended
187
+ * publication of such source code, and is an unpublished work by create3000.
188
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
189
+ * create3000.
190
+ *
191
+ * No permission is granted to copy, distribute, or create derivative works from
192
+ * the contents of this software, in whole or in part, without the prior written
193
+ * permission of create3000.
194
+ *
195
+ * NON-MILITARY USE ONLY
196
+ *
197
+ * All create3000 software are effectively free software with a non-military use
198
+ * restriction. It is free. Well commented source is provided. You may reuse the
199
+ * source in any way you please with the exception anything that uses it must be
200
+ * marked to indicate is contains 'non-military use only' components.
201
+ *
202
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
203
+ *
204
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
205
+ *
206
+ * This file is part of the X_ITE Project.
207
+ *
208
+ * X_ITE is free software: you can redistribute it and/or modify it under the
209
+ * terms of the GNU General Public License version 3 only, as published by the
210
+ * Free Software Foundation.
211
+ *
212
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
213
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
214
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
215
+ * details (a copy is included in the LICENSE file that accompanied this code).
216
+ *
217
+ * You should have received a copy of the GNU General Public License version 3
218
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
219
+ * copy of the GPLv3 License.
220
+ *
221
+ * For Silvio, Joy and Adi.
222
+ *
223
+ ******************************************************************************/
224
+
225
+
226
+ define ('x_ite/Browser/Geometry2D/Circle2DOptions',[
227
+ "x_ite/Basic/X3DBaseNode",
228
+ "x_ite/Fields",
229
+ "x_ite/Components/Rendering/X3DGeometryNode",
230
+ "standard/Math/Numbers/Complex",
231
+ "standard/Math/Numbers/Vector3",
232
+ ],
233
+ function (X3DBaseNode,
234
+ Fields,
235
+ X3DGeometryNode,
236
+ Complex,
237
+ Vector3)
238
+ {
239
+ "use strict";
240
+
241
+ function Circle2DOptions (executionContext)
242
+ {
243
+ X3DBaseNode .call (this, executionContext);
244
+
245
+ this .addChildObjects ("dimension", new Fields .SFInt32 (40))
246
+
247
+ this .vertices = X3DGeometryNode .createArray ();
248
+ }
249
+
250
+ Circle2DOptions .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
251
+ {
252
+ constructor: Circle2DOptions,
253
+ getTypeName: function ()
254
+ {
255
+ return "Circle2DOptions";
256
+ },
257
+ getComponentName: function ()
258
+ {
259
+ return "X_ITE";
260
+ },
261
+ getContainerField: function ()
262
+ {
263
+ return "circle2DOptions";
264
+ },
265
+ initialize: function ()
266
+ {
267
+ this .addInterest ("build", this);
268
+
269
+ this .build ();
270
+ },
271
+ getVertices: function ()
272
+ {
273
+ return this .vertices;
274
+ },
275
+ build: function ()
276
+ {
277
+ var
278
+ dimension = this .dimension_ .getValue (),
279
+ angle = Math .PI * 2 / dimension,
280
+ vertices = this .vertices;
281
+
282
+ vertices .length = 0;
283
+
284
+ for (var n = 0; n < dimension; ++ n)
285
+ {
286
+ var point = Complex .Polar (1, angle * n);
287
+
288
+ vertices .push (point .real, point .imag, 0, 1);
289
+ }
290
+
291
+ vertices .shrinkToFit ();
292
+ },
293
+ });
294
+
295
+ return Circle2DOptions;
296
+ });
297
+
298
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
299
+ *******************************************************************************
300
+ *
301
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
302
+ *
303
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
304
+ *
305
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
306
+ *
307
+ * The copyright notice above does not evidence any actual of intended
308
+ * publication of such source code, and is an unpublished work by create3000.
309
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
310
+ * create3000.
311
+ *
312
+ * No permission is granted to copy, distribute, or create derivative works from
313
+ * the contents of this software, in whole or in part, without the prior written
314
+ * permission of create3000.
315
+ *
316
+ * NON-MILITARY USE ONLY
317
+ *
318
+ * All create3000 software are effectively free software with a non-military use
319
+ * restriction. It is free. Well commented source is provided. You may reuse the
320
+ * source in any way you please with the exception anything that uses it must be
321
+ * marked to indicate is contains 'non-military use only' components.
322
+ *
323
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
324
+ *
325
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
326
+ *
327
+ * This file is part of the X_ITE Project.
328
+ *
329
+ * X_ITE is free software: you can redistribute it and/or modify it under the
330
+ * terms of the GNU General Public License version 3 only, as published by the
331
+ * Free Software Foundation.
332
+ *
333
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
334
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
335
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
336
+ * details (a copy is included in the LICENSE file that accompanied this code).
337
+ *
338
+ * You should have received a copy of the GNU General Public License version 3
339
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
340
+ * copy of the GPLv3 License.
341
+ *
342
+ * For Silvio, Joy and Adi.
343
+ *
344
+ ******************************************************************************/
345
+
346
+
347
+ define ('x_ite/Browser/Geometry2D/Disk2DOptions',[
348
+ "x_ite/Basic/X3DBaseNode",
349
+ "x_ite/Fields",
350
+ "x_ite/Components/Rendering/X3DGeometryNode",
351
+ "standard/Math/Numbers/Complex",
352
+ "standard/Math/Numbers/Vector3",
353
+ ],
354
+ function (X3DBaseNode,
355
+ Fields,
356
+ X3DGeometryNode,
357
+ Complex,
358
+ Vector3)
359
+ {
360
+ "use strict";
361
+
362
+ function Disk2DOptions (executionContext)
363
+ {
364
+ X3DBaseNode .call (this, executionContext);
365
+
366
+ this .addChildObjects ("dimension", new Fields .SFInt32 (40))
367
+
368
+ this .circleVertices = X3DGeometryNode .createArray ();
369
+ this .diskTexCoords = X3DGeometryNode .createArray ();
370
+ this .diskNormals = X3DGeometryNode .createArray ();
371
+ this .diskVertices = X3DGeometryNode .createArray ();
372
+ }
373
+
374
+ Disk2DOptions .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
375
+ {
376
+ constructor: Disk2DOptions,
377
+ getTypeName: function ()
378
+ {
379
+ return "Disk2DOptions";
380
+ },
381
+ getComponentName: function ()
382
+ {
383
+ return "X_ITE";
384
+ },
385
+ getContainerField: function ()
386
+ {
387
+ return "circle2DOptions";
388
+ },
389
+ initialize: function ()
390
+ {
391
+ this .addInterest ("build", this);
392
+
393
+ this .build ();
394
+ },
395
+ getCircleVertices: function ()
396
+ {
397
+ return this .circleVertices;
398
+ },
399
+ getDiskTexCoords: function ()
400
+ {
401
+ return this .diskTexCoords;
402
+ },
403
+ getDiskNormals: function ()
404
+ {
405
+ return this .diskNormals;
406
+ },
407
+ getDiskVertices: function ()
408
+ {
409
+ return this .diskVertices;
410
+ },
411
+ build: (function ()
412
+ {
413
+ var
414
+ half = new Complex (0.5, 0.5),
415
+ texCoord1 = new Complex (0, 0),
416
+ texCoord2 = new Complex (0, 0),
417
+ point1 = new Complex (0, 0),
418
+ point2 = new Complex (0, 0);
419
+
420
+ return function ()
421
+ {
422
+ var
423
+ dimension = this .dimension_ .getValue (),
424
+ angle = Math .PI * 2 / dimension,
425
+ circleVertices = this .circleVertices,
426
+ diskTexCoords = this .diskTexCoords,
427
+ diskNormals = this .diskNormals,
428
+ diskVertices = this .diskVertices;
429
+
430
+ circleVertices .length = 0;
431
+ diskTexCoords .length = 0;
432
+ diskNormals .length = 0;
433
+ diskVertices .length = 0;
434
+
435
+ for (var n = 0; n < dimension; ++ n)
436
+ {
437
+ var
438
+ theta1 = angle * n,
439
+ theta2 = angle * (n + 1);
440
+
441
+ texCoord1 .setPolar (0.5, theta1) .add (half);
442
+ texCoord2 .setPolar (0.5, theta2) .add (half);
443
+ point1 .setPolar (1, theta1);
444
+ point2 .setPolar (1, theta2);
445
+
446
+ // Circle
447
+
448
+ circleVertices .push (point1 .real, point1 .imag, 0, 1);
449
+
450
+ // Disk
451
+
452
+ diskTexCoords .push (0.5, 0.5, 0, 1,
453
+ texCoord1 .real, texCoord1 .imag, 0, 1,
454
+ texCoord2 .real, texCoord2 .imag, 0, 1);
455
+
456
+ diskNormals .push (0, 0, 1, 0, 0, 1, 0, 0, 1);
457
+
458
+ diskVertices .push (0, 0, 0, 1,
459
+ point1 .real, point1 .imag, 0, 1,
460
+ point2 .real, point2 .imag, 0, 1);
461
+ }
462
+
463
+ circleVertices .shrinkToFit ();
464
+ diskTexCoords .shrinkToFit ();
465
+ diskNormals .shrinkToFit ();
466
+ diskVertices .shrinkToFit ();
467
+ };
468
+ })(),
469
+ });
470
+
471
+ return Disk2DOptions;
472
+ });
473
+
474
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
475
+ *******************************************************************************
476
+ *
477
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
478
+ *
479
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
480
+ *
481
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
482
+ *
483
+ * The copyright notice above does not evidence any actual of intended
484
+ * publication of such source code, and is an unpublished work by create3000.
485
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
486
+ * create3000.
487
+ *
488
+ * No permission is granted to copy, distribute, or create derivative works from
489
+ * the contents of this software, in whole or in part, without the prior written
490
+ * permission of create3000.
491
+ *
492
+ * NON-MILITARY USE ONLY
493
+ *
494
+ * All create3000 software are effectively free software with a non-military use
495
+ * restriction. It is free. Well commented source is provided. You may reuse the
496
+ * source in any way you please with the exception anything that uses it must be
497
+ * marked to indicate is contains 'non-military use only' components.
498
+ *
499
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
500
+ *
501
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
502
+ *
503
+ * This file is part of the X_ITE Project.
504
+ *
505
+ * X_ITE is free software: you can redistribute it and/or modify it under the
506
+ * terms of the GNU General Public License version 3 only, as published by the
507
+ * Free Software Foundation.
508
+ *
509
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
510
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
511
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
512
+ * details (a copy is included in the LICENSE file that accompanied this code).
513
+ *
514
+ * You should have received a copy of the GNU General Public License version 3
515
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
516
+ * copy of the GPLv3 License.
517
+ *
518
+ * For Silvio, Joy and Adi.
519
+ *
520
+ ******************************************************************************/
521
+
522
+
523
+ define ('x_ite/Browser/Geometry2D/Rectangle2DOptions',[
524
+ "x_ite/Fields",
525
+ "x_ite/Basic/X3DBaseNode",
526
+ "x_ite/Components/Geometry3D/IndexedFaceSet",
527
+ "x_ite/Components/Rendering/Coordinate",
528
+ "x_ite/Components/Texturing/TextureCoordinate",
529
+ ],
530
+ function (Fields,
531
+ X3DBaseNode,
532
+ IndexedFaceSet,
533
+ Coordinate,
534
+ TextureCoordinate)
535
+ {
536
+ "use strict";
537
+
538
+ function Rectangle2DOptions (executionContext)
539
+ {
540
+ X3DBaseNode .call (this, executionContext);
541
+ }
542
+
543
+ Rectangle2DOptions .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
544
+ {
545
+ constructor: Rectangle2DOptions,
546
+ getTypeName: function ()
547
+ {
548
+ return "Rectangle2DOptions";
549
+ },
550
+ getComponentName: function ()
551
+ {
552
+ return "X_ITE";
553
+ },
554
+ getContainerField: function ()
555
+ {
556
+ return "rectangle2DOptions";
557
+ },
558
+ initialize: function ()
559
+ {
560
+ X3DBaseNode .prototype .initialize .call (this);
561
+ },
562
+ getGeometry: function ()
563
+ {
564
+ if (this .geometry)
565
+ return this .geometry;
566
+
567
+ this .geometry = new IndexedFaceSet (this .getExecutionContext ());
568
+ this .geometry .texCoord_ = new TextureCoordinate (this .getExecutionContext ());
569
+ this .geometry .coord_ = new Coordinate (this .getExecutionContext ());
570
+
571
+ var
572
+ geometry = this .geometry,
573
+ texCoord = this .geometry .texCoord_ .getValue (),
574
+ coord = this .geometry .coord_ .getValue ();
575
+
576
+ geometry .texCoordIndex_ = new Fields .MFInt32 (
577
+ 0, 1, 2, 3, -1
578
+ );
579
+
580
+ geometry .coordIndex_ = new Fields .MFInt32 (
581
+ 0, 1, 2, 3, -1
582
+ );
583
+
584
+ texCoord .point_ = new Fields .MFVec2f (
585
+ new Fields .SFVec2f (1, 1), new Fields .SFVec2f (0, 1), new Fields .SFVec2f (0, 0), new Fields .SFVec2f (1, 0)
586
+ );
587
+
588
+ coord .point_ = new Fields .MFVec3f (
589
+ new Fields .SFVec3f (1, 1, 0), new Fields .SFVec3f (-1, 1, 0), new Fields .SFVec3f (-1, -1, 0), new Fields .SFVec3f (1, -1, 0)
590
+ );
591
+
592
+ texCoord .setup ();
593
+ coord .setup ();
594
+ geometry .setup ();
595
+
596
+ return this .geometry;
597
+ },
598
+ });
599
+
600
+ return Rectangle2DOptions;
601
+ });
602
+
603
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
604
+ *******************************************************************************
605
+ *
606
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
607
+ *
608
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
609
+ *
610
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
611
+ *
612
+ * The copyright notice above does not evidence any actual of intended
613
+ * publication of such source code, and is an unpublished work by create3000.
614
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
615
+ * create3000.
616
+ *
617
+ * No permission is granted to copy, distribute, or create derivative works from
618
+ * the contents of this software, in whole or in part, without the prior written
619
+ * permission of create3000.
620
+ *
621
+ * NON-MILITARY USE ONLY
622
+ *
623
+ * All create3000 software are effectively free software with a non-military use
624
+ * restriction. It is free. Well commented source is provided. You may reuse the
625
+ * source in any way you please with the exception anything that uses it must be
626
+ * marked to indicate is contains 'non-military use only' components.
627
+ *
628
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
629
+ *
630
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
631
+ *
632
+ * This file is part of the X_ITE Project.
633
+ *
634
+ * X_ITE is free software: you can redistribute it and/or modify it under the
635
+ * terms of the GNU General Public License version 3 only, as published by the
636
+ * Free Software Foundation.
637
+ *
638
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
639
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
640
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
641
+ * details (a copy is included in the LICENSE file that accompanied this code).
642
+ *
643
+ * You should have received a copy of the GNU General Public License version 3
644
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
645
+ * copy of the GPLv3 License.
646
+ *
647
+ * For Silvio, Joy and Adi.
648
+ *
649
+ ******************************************************************************/
650
+
651
+
652
+ define ('x_ite/Browser/Geometry2D/X3DGeometry2DContext',[
653
+ "x_ite/Browser/Geometry2D/Arc2DOptions",
654
+ "x_ite/Browser/Geometry2D/ArcClose2DOptions",
655
+ "x_ite/Browser/Geometry2D/Circle2DOptions",
656
+ "x_ite/Browser/Geometry2D/Disk2DOptions",
657
+ "x_ite/Browser/Geometry2D/Rectangle2DOptions",
658
+ "x_ite/Browser/Core/PrimitiveQuality",
659
+ ],
660
+ function (Arc2DOptions,
661
+ ArcClose2DOptions,
662
+ Circle2DOptions,
663
+ Disk2DOptions,
664
+ Rectangle2DOptions,
665
+ PrimitiveQuality)
666
+ {
667
+ "use strict";
668
+
669
+ function getOptionNode (fun, name, Type)
670
+ {
671
+ this [name] = new Type (this .getPrivateScene ());
672
+ this [name] .setup ();
673
+
674
+ this [fun] = function () { return this [name]; };
675
+
676
+ return this [name];
677
+ }
678
+
679
+ function X3DGeometry2DContext () { }
680
+
681
+ X3DGeometry2DContext .prototype =
682
+ {
683
+ initialize: function ()
684
+ {
685
+ this .setGeometry2DPrimitiveQuality (this .getBrowserOptions () .getPrimitiveQuality ());
686
+ },
687
+ getArc2DOptions: function ()
688
+ {
689
+ return getOptionNode .call (this, "getArc2DOptions", "arc2DOptions", Arc2DOptions);
690
+ },
691
+ getArcClose2DOptions: function ()
692
+ {
693
+ return getOptionNode .call (this, "getArcClose2DOptions", "arcClose2DOptions", ArcClose2DOptions);
694
+ },
695
+ getCircle2DOptions: function ()
696
+ {
697
+ return getOptionNode .call (this, "getCircle2DOptions", "circle2DOptions", Circle2DOptions);
698
+ },
699
+ getDisk2DOptions: function ()
700
+ {
701
+ return getOptionNode .call (this, "getDisk2DOptions", "disk2DOptions", Disk2DOptions);
702
+ },
703
+ getRectangle2DOptions: function ()
704
+ {
705
+ return getOptionNode .call (this, "getRectangle2DOptions", "rectangle2DOptions", Rectangle2DOptions);
706
+ },
707
+ setGeometry2DPrimitiveQuality: function (primitiveQuality)
708
+ {
709
+ var
710
+ arc = this .getArc2DOptions (),
711
+ arcClose = this .getArcClose2DOptions (),
712
+ circle = this .getCircle2DOptions (),
713
+ disk = this .getDisk2DOptions ();
714
+
715
+ switch (primitiveQuality)
716
+ {
717
+ case PrimitiveQuality .LOW:
718
+ {
719
+ arc .dimension_ = 20;
720
+ arcClose .dimension_ = 20;
721
+ circle .dimension_ = 20;
722
+ disk .dimension_ = 20;
723
+ break;
724
+ }
725
+ case PrimitiveQuality .MEDIUM:
726
+ {
727
+ arc .dimension_ = 40;
728
+ arcClose .dimension_ = 40;
729
+ circle .dimension_ = 40;
730
+ disk .dimension_ = 40;
731
+ break;
732
+ }
733
+ case PrimitiveQuality .HIGH:
734
+ {
735
+ arc .dimension_ = 80;
736
+ arcClose .dimension_ = 80;
737
+ circle .dimension_ = 80;
738
+ disk .dimension_ = 80;
739
+ break;
740
+ }
741
+ }
742
+ },
743
+ };
744
+
745
+ return X3DGeometry2DContext;
746
+ });
747
+
748
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
749
+ *******************************************************************************
750
+ *
751
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
752
+ *
753
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
754
+ *
755
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
756
+ *
757
+ * The copyright notice above does not evidence any actual of intended
758
+ * publication of such source code, and is an unpublished work by create3000.
759
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
760
+ * create3000.
761
+ *
762
+ * No permission is granted to copy, distribute, or create derivative works from
763
+ * the contents of this software, in whole or in part, without the prior written
764
+ * permission of create3000.
765
+ *
766
+ * NON-MILITARY USE ONLY
767
+ *
768
+ * All create3000 software are effectively free software with a non-military use
769
+ * restriction. It is free. Well commented source is provided. You may reuse the
770
+ * source in any way you please with the exception anything that uses it must be
771
+ * marked to indicate is contains 'non-military use only' components.
772
+ *
773
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
774
+ *
775
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
776
+ *
777
+ * This file is part of the X_ITE Project.
778
+ *
779
+ * X_ITE is free software: you can redistribute it and/or modify it under the
780
+ * terms of the GNU General Public License version 3 only, as published by the
781
+ * Free Software Foundation.
782
+ *
783
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
784
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
785
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
786
+ * details (a copy is included in the LICENSE file that accompanied this code).
787
+ *
788
+ * You should have received a copy of the GNU General Public License version 3
789
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
790
+ * copy of the GPLv3 License.
791
+ *
792
+ * For Silvio, Joy and Adi.
793
+ *
794
+ ******************************************************************************/
795
+
796
+
797
+ define ('x_ite/Components/Geometry2D/Arc2D',[
798
+ "x_ite/Fields",
799
+ "x_ite/Basic/X3DFieldDefinition",
800
+ "x_ite/Basic/FieldDefinitionArray",
801
+ "x_ite/Components/Rendering/X3DLineGeometryNode",
802
+ "x_ite/Bits/X3DConstants",
803
+ "standard/Math/Numbers/Complex",
804
+ "standard/Math/Algorithm",
805
+ ],
806
+ function (Fields,
807
+ X3DFieldDefinition,
808
+ FieldDefinitionArray,
809
+ X3DLineGeometryNode,
810
+ X3DConstants,
811
+ Complex,
812
+ Algorithm)
813
+ {
814
+ "use strict";
815
+
816
+ function Arc2D (executionContext)
817
+ {
818
+ X3DLineGeometryNode .call (this, executionContext);
819
+
820
+ this .addType (X3DConstants .Arc2D);
821
+
822
+ this .setGeometryType (1);
823
+
824
+ this .startAngle_ .setUnit ("angle");
825
+ this .endAngle_ .setUnit ("angle");
826
+ this .radius_ .setUnit ("length");
827
+ }
828
+
829
+ Arc2D .prototype = Object .assign (Object .create (X3DLineGeometryNode .prototype),
830
+ {
831
+ constructor: Arc2D,
832
+ fieldDefinitions: new FieldDefinitionArray ([
833
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
834
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "startAngle", new Fields .SFFloat ()),
835
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "endAngle", new Fields .SFFloat (1.5708)),
836
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "radius", new Fields .SFFloat (1)),
837
+ ]),
838
+ getTypeName: function ()
839
+ {
840
+ return "Arc2D";
841
+ },
842
+ getComponentName: function ()
843
+ {
844
+ return "Geometry2D";
845
+ },
846
+ getContainerField: function ()
847
+ {
848
+ return "geometry";
849
+ },
850
+ set_live__: function ()
851
+ {
852
+ X3DLineGeometryNode .prototype .set_live__ .call (this);
853
+
854
+ if (this .isLive () .getValue ())
855
+ this .getBrowser () .getArc2DOptions () .addInterest ("requestRebuild", this);
856
+ else
857
+ this .getBrowser () .getArc2DOptions () .removeInterest ("requestRebuild", this);
858
+ },
859
+ getSweepAngle: function ()
860
+ {
861
+ var
862
+ start = Algorithm .interval (this .startAngle_ .getValue (), 0, Math .PI * 2),
863
+ end = Algorithm .interval (this .endAngle_ .getValue (), 0, Math .PI * 2);
864
+
865
+ if (start === end)
866
+ return Math .PI * 2;
867
+
868
+ var sweepAngle = Math .abs (end - start);
869
+
870
+ if (start > end)
871
+ return (Math .PI * 2) - sweepAngle;
872
+
873
+ if (! isNaN (sweepAngle))
874
+ return sweepAngle;
875
+
876
+ // We must test for NAN, as NAN to int is undefined.
877
+ return 0;
878
+ },
879
+ build: function ()
880
+ {
881
+ var
882
+ gl = this .getBrowser () .getContext (),
883
+ options = this .getBrowser () .getArc2DOptions (),
884
+ dimension = options .dimension_ .getValue (),
885
+ startAngle = this .startAngle_ .getValue (),
886
+ radius = Math .abs (this .radius_ .getValue ()),
887
+ sweepAngle = this .getSweepAngle (),
888
+ circle = sweepAngle == (Math .PI * 2),
889
+ steps = Math .floor (sweepAngle * dimension / (Math .PI * 2)),
890
+ vertexArray = this .getVertices ();
891
+
892
+ steps = Math .max (3, steps);
893
+
894
+ if (! circle)
895
+ {
896
+ ++ steps;
897
+ this .setPrimitiveMode (gl .LINE_STRIP);
898
+ }
899
+ else
900
+ this .setPrimitiveMode (gl .LINE_LOOP);
901
+
902
+ var steps_1 = circle ? steps : steps - 1;
903
+
904
+ for (var n = 0; n < steps; ++ n)
905
+ {
906
+ var
907
+ t = n / steps_1,
908
+ theta = startAngle + (sweepAngle * t),
909
+ point = Complex .Polar (radius, theta);
910
+
911
+ vertexArray .push (point .real, point .imag, 0, 1);
912
+ }
913
+
914
+ this .getMin () .set (-radius, -radius, 0);
915
+ this .getMax () .set ( radius, radius, 0);
916
+
917
+ this .setSolid (false);
918
+ },
919
+ });
920
+
921
+ return Arc2D;
922
+ });
923
+
924
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
925
+ *******************************************************************************
926
+ *
927
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
928
+ *
929
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
930
+ *
931
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
932
+ *
933
+ * The copyright notice above does not evidence any actual of intended
934
+ * publication of such source code, and is an unpublished work by create3000.
935
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
936
+ * create3000.
937
+ *
938
+ * No permission is granted to copy, distribute, or create derivative works from
939
+ * the contents of this software, in whole or in part, without the prior written
940
+ * permission of create3000.
941
+ *
942
+ * NON-MILITARY USE ONLY
943
+ *
944
+ * All create3000 software are effectively free software with a non-military use
945
+ * restriction. It is free. Well commented source is provided. You may reuse the
946
+ * source in any way you please with the exception anything that uses it must be
947
+ * marked to indicate is contains 'non-military use only' components.
948
+ *
949
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
950
+ *
951
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
952
+ *
953
+ * This file is part of the X_ITE Project.
954
+ *
955
+ * X_ITE is free software: you can redistribute it and/or modify it under the
956
+ * terms of the GNU General Public License version 3 only, as published by the
957
+ * Free Software Foundation.
958
+ *
959
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
960
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
961
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
962
+ * details (a copy is included in the LICENSE file that accompanied this code).
963
+ *
964
+ * You should have received a copy of the GNU General Public License version 3
965
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
966
+ * copy of the GPLv3 License.
967
+ *
968
+ * For Silvio, Joy and Adi.
969
+ *
970
+ ******************************************************************************/
971
+
972
+
973
+ define ('x_ite/Components/Geometry2D/ArcClose2D',[
974
+ "x_ite/Fields",
975
+ "x_ite/Basic/X3DFieldDefinition",
976
+ "x_ite/Basic/FieldDefinitionArray",
977
+ "x_ite/Components/Rendering/X3DGeometryNode",
978
+ "x_ite/Bits/X3DConstants",
979
+ "standard/Math/Numbers/Complex",
980
+ "standard/Math/Numbers/Vector3",
981
+ "standard/Math/Algorithm",
982
+ ],
983
+ function (Fields,
984
+ X3DFieldDefinition,
985
+ FieldDefinitionArray,
986
+ X3DGeometryNode,
987
+ X3DConstants,
988
+ Complex,
989
+ Vector3,
990
+ Algorithm)
991
+ {
992
+ "use strict";
993
+
994
+ function ArcClose2D (executionContext)
995
+ {
996
+ X3DGeometryNode .call (this, executionContext);
997
+
998
+ this .addType (X3DConstants .ArcClose2D);
999
+
1000
+ this .setGeometryType (2);
1001
+
1002
+ this .startAngle_ .setUnit ("angle");
1003
+ this .endAngle_ .setUnit ("angle");
1004
+ this .radius_ .setUnit ("length");
1005
+ }
1006
+
1007
+ ArcClose2D .prototype = Object .assign (Object .create (X3DGeometryNode .prototype),
1008
+ {
1009
+ constructor: ArcClose2D,
1010
+ fieldDefinitions: new FieldDefinitionArray ([
1011
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1012
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "closureType", new Fields .SFString ("PIE")),
1013
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "startAngle", new Fields .SFFloat ()),
1014
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "endAngle", new Fields .SFFloat (1.5708)),
1015
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "radius", new Fields .SFFloat (1)),
1016
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "solid", new Fields .SFBool ()),
1017
+ ]),
1018
+ getTypeName: function ()
1019
+ {
1020
+ return "ArcClose2D";
1021
+ },
1022
+ getComponentName: function ()
1023
+ {
1024
+ return "Geometry2D";
1025
+ },
1026
+ getContainerField: function ()
1027
+ {
1028
+ return "geometry";
1029
+ },
1030
+ set_live__: function ()
1031
+ {
1032
+ X3DGeometryNode .prototype .set_live__ .call (this);
1033
+
1034
+ if (this .isLive () .getValue ())
1035
+ this .getBrowser () .getArcClose2DOptions () .addInterest ("requestRebuild", this);
1036
+ else
1037
+ this .getBrowser () .getArcClose2DOptions () .removeInterest ("requestRebuild", this);
1038
+ },
1039
+ getSweepAngle: function ()
1040
+ {
1041
+ var
1042
+ start = Algorithm .interval (this .startAngle_ .getValue (), 0, Math .PI * 2),
1043
+ end = Algorithm .interval (this .endAngle_ .getValue (), 0, Math .PI * 2);
1044
+
1045
+ if (start === end)
1046
+ return Math .PI * 2;
1047
+
1048
+ var sweepAngle = Math .abs (end - start);
1049
+
1050
+ if (start > end)
1051
+ return (Math .PI * 2) - sweepAngle;
1052
+
1053
+ if (! isNaN (sweepAngle))
1054
+ return sweepAngle;
1055
+
1056
+ // We must test for NAN, as NAN to int is undefined.
1057
+ return 0;
1058
+ },
1059
+ build: (function ()
1060
+ {
1061
+ var half = new Complex (0.5, 0.5);
1062
+
1063
+ return function ()
1064
+ {
1065
+ var
1066
+ options = this .getBrowser () .getArcClose2DOptions (),
1067
+ chord = this .closureType_ .getValue () === "CHORD",
1068
+ dimension = options .dimension_ .getValue (),
1069
+ startAngle = this .startAngle_ .getValue (),
1070
+ radius = Math .abs (this .radius_ .getValue ()),
1071
+ sweepAngle = this .getSweepAngle (),
1072
+ steps = Math .max (4, Math .floor (sweepAngle * dimension / (Math .PI * 2))),
1073
+ texCoordArray = this .getTexCoords (),
1074
+ normalArray = this .getNormals (),
1075
+ vertexArray = this .getVertices (),
1076
+ texCoords = [ ],
1077
+ points = [ ];
1078
+
1079
+ this .getMultiTexCoords () .push (texCoordArray);
1080
+
1081
+ var steps_1 = steps - 1;
1082
+
1083
+ for (var n = 0; n < steps; ++ n)
1084
+ {
1085
+ var
1086
+ t = n / steps_1,
1087
+ theta = startAngle + (sweepAngle * t);
1088
+
1089
+ texCoords .push (Complex .Polar (0.5, theta) .add (half));
1090
+ points .push (Complex .Polar (radius, theta));
1091
+ }
1092
+
1093
+ if (chord)
1094
+ {
1095
+ var
1096
+ t0 = texCoords [0],
1097
+ p0 = points [0];
1098
+
1099
+ for (var i = 1; i < steps_1; ++ i)
1100
+ {
1101
+ var
1102
+ t1 = texCoords [i],
1103
+ t2 = texCoords [i + 1],
1104
+ p1 = points [i],
1105
+ p2 = points [i + 1];
1106
+
1107
+ texCoordArray .push (t0 .real, t0 .imag, 0, 1,
1108
+ t1 .real, t1 .imag, 0, 1,
1109
+ t2 .real, t2 .imag, 0, 1);
1110
+
1111
+ normalArray .push (0, 0, 1,
1112
+ 0, 0, 1,
1113
+ 0, 0, 1);
1114
+
1115
+ vertexArray .push (p0 .real, p0 .imag, 0, 1,
1116
+ p1 .real, p1 .imag, 0, 1,
1117
+ p2 .real, p2 .imag, 0, 1);
1118
+ }
1119
+ }
1120
+ else
1121
+ {
1122
+ for (var i = 0; i < steps_1; ++ i)
1123
+ {
1124
+ var
1125
+ t1 = texCoords [i],
1126
+ t2 = texCoords [i + 1],
1127
+ p1 = points [i],
1128
+ p2 = points [i + 1];
1129
+
1130
+ texCoordArray .push (0.5, 0.5, 0, 1,
1131
+ t1 .real, t1 .imag, 0, 1,
1132
+ t2 .real, t2 .imag, 0, 1);
1133
+
1134
+ normalArray .push (0, 0, 1, 0, 0, 1, 0, 0, 1);
1135
+
1136
+ vertexArray .push (0, 0, 0, 1,
1137
+ p1 .real, p1 .imag, 0, 1,
1138
+ p2 .real, p2 .imag, 0, 1);
1139
+ }
1140
+ }
1141
+
1142
+ this .getMin () .set (-radius, -radius, 0);
1143
+ this .getMax () .set ( radius, radius, 0);
1144
+
1145
+ this .setSolid (this .solid_ .getValue ());
1146
+ };
1147
+ })(),
1148
+ });
1149
+
1150
+ return ArcClose2D;
1151
+ });
1152
+
1153
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1154
+ *******************************************************************************
1155
+ *
1156
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1157
+ *
1158
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1159
+ *
1160
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1161
+ *
1162
+ * The copyright notice above does not evidence any actual of intended
1163
+ * publication of such source code, and is an unpublished work by create3000.
1164
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1165
+ * create3000.
1166
+ *
1167
+ * No permission is granted to copy, distribute, or create derivative works from
1168
+ * the contents of this software, in whole or in part, without the prior written
1169
+ * permission of create3000.
1170
+ *
1171
+ * NON-MILITARY USE ONLY
1172
+ *
1173
+ * All create3000 software are effectively free software with a non-military use
1174
+ * restriction. It is free. Well commented source is provided. You may reuse the
1175
+ * source in any way you please with the exception anything that uses it must be
1176
+ * marked to indicate is contains 'non-military use only' components.
1177
+ *
1178
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1179
+ *
1180
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1181
+ *
1182
+ * This file is part of the X_ITE Project.
1183
+ *
1184
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1185
+ * terms of the GNU General Public License version 3 only, as published by the
1186
+ * Free Software Foundation.
1187
+ *
1188
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1189
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1190
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1191
+ * details (a copy is included in the LICENSE file that accompanied this code).
1192
+ *
1193
+ * You should have received a copy of the GNU General Public License version 3
1194
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1195
+ * copy of the GPLv3 License.
1196
+ *
1197
+ * For Silvio, Joy and Adi.
1198
+ *
1199
+ ******************************************************************************/
1200
+
1201
+
1202
+ define ('x_ite/Components/Geometry2D/Circle2D',[
1203
+ "x_ite/Fields",
1204
+ "x_ite/Basic/X3DFieldDefinition",
1205
+ "x_ite/Basic/FieldDefinitionArray",
1206
+ "x_ite/Components/Rendering/X3DLineGeometryNode",
1207
+ "x_ite/Bits/X3DConstants",
1208
+ ],
1209
+ function (Fields,
1210
+ X3DFieldDefinition,
1211
+ FieldDefinitionArray,
1212
+ X3DLineGeometryNode,
1213
+ X3DConstants)
1214
+ {
1215
+ "use strict";
1216
+
1217
+ function Circle2D (executionContext)
1218
+ {
1219
+ X3DLineGeometryNode .call (this, executionContext);
1220
+
1221
+ this .addType (X3DConstants .Circle2D);
1222
+
1223
+ this .setGeometryType (1);
1224
+
1225
+ this .radius_ .setUnit ("length");
1226
+ }
1227
+
1228
+ Circle2D .prototype = Object .assign (Object .create (X3DLineGeometryNode .prototype),
1229
+ {
1230
+ constructor: Circle2D,
1231
+ fieldDefinitions: new FieldDefinitionArray ([
1232
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1233
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "radius", new Fields .SFFloat (1)),
1234
+ ]),
1235
+ getTypeName: function ()
1236
+ {
1237
+ return "Circle2D";
1238
+ },
1239
+ getComponentName: function ()
1240
+ {
1241
+ return "Geometry2D";
1242
+ },
1243
+ getContainerField: function ()
1244
+ {
1245
+ return "geometry";
1246
+ },
1247
+ initialize: function ()
1248
+ {
1249
+ X3DLineGeometryNode .prototype .initialize .call (this);
1250
+
1251
+ this .setPrimitiveMode (this .getBrowser () .getContext () .LINE_LOOP);
1252
+ },
1253
+ set_live__: function ()
1254
+ {
1255
+ X3DLineGeometryNode .prototype .set_live__ .call (this);
1256
+
1257
+ if (this .isLive () .getValue ())
1258
+ this .getBrowser () .getCircle2DOptions () .addInterest ("requestRebuild", this);
1259
+ else
1260
+ this .getBrowser () .getCircle2DOptions () .removeInterest ("requestRebuild", this);
1261
+ },
1262
+ build: function ()
1263
+ {
1264
+ var
1265
+ options = this .getBrowser () .getCircle2DOptions (),
1266
+ vertexArray = this .getVertices (),
1267
+ radius = this .radius_ .getValue ();
1268
+
1269
+ if (radius === 1)
1270
+ {
1271
+ this .setVertices (options .getVertices ());
1272
+ }
1273
+ else
1274
+ {
1275
+ var defaultVertices = options .getVertices () .getValue ();
1276
+
1277
+ for (var i = 0, length = defaultVertices .length; i < length; i += 4)
1278
+ vertexArray .push (defaultVertices [i] * radius, defaultVertices [i + 1] * radius, 0, 1);
1279
+ }
1280
+
1281
+ this .getMin () .set (-radius, -radius, 0);
1282
+ this .getMax () .set ( radius, radius, 0);
1283
+ },
1284
+ });
1285
+
1286
+ return Circle2D;
1287
+ });
1288
+
1289
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1290
+ *******************************************************************************
1291
+ *
1292
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1293
+ *
1294
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1295
+ *
1296
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1297
+ *
1298
+ * The copyright notice above does not evidence any actual of intended
1299
+ * publication of such source code, and is an unpublished work by create3000.
1300
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1301
+ * create3000.
1302
+ *
1303
+ * No permission is granted to copy, distribute, or create derivative works from
1304
+ * the contents of this software, in whole or in part, without the prior written
1305
+ * permission of create3000.
1306
+ *
1307
+ * NON-MILITARY USE ONLY
1308
+ *
1309
+ * All create3000 software are effectively free software with a non-military use
1310
+ * restriction. It is free. Well commented source is provided. You may reuse the
1311
+ * source in any way you please with the exception anything that uses it must be
1312
+ * marked to indicate is contains 'non-military use only' components.
1313
+ *
1314
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1315
+ *
1316
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1317
+ *
1318
+ * This file is part of the X_ITE Project.
1319
+ *
1320
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1321
+ * terms of the GNU General Public License version 3 only, as published by the
1322
+ * Free Software Foundation.
1323
+ *
1324
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1325
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1326
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1327
+ * details (a copy is included in the LICENSE file that accompanied this code).
1328
+ *
1329
+ * You should have received a copy of the GNU General Public License version 3
1330
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1331
+ * copy of the GPLv3 License.
1332
+ *
1333
+ * For Silvio, Joy and Adi.
1334
+ *
1335
+ ******************************************************************************/
1336
+
1337
+
1338
+ define ('x_ite/Components/Geometry2D/Disk2D',[
1339
+ "x_ite/Fields",
1340
+ "x_ite/Basic/X3DFieldDefinition",
1341
+ "x_ite/Basic/FieldDefinitionArray",
1342
+ "x_ite/Components/Rendering/X3DGeometryNode",
1343
+ "x_ite/Components/Rendering/X3DLineGeometryNode",
1344
+ "x_ite/Bits/X3DConstants",
1345
+ ],
1346
+ function (Fields,
1347
+ X3DFieldDefinition,
1348
+ FieldDefinitionArray,
1349
+ X3DGeometryNode,
1350
+ X3DLineGeometryNode,
1351
+ X3DConstants)
1352
+ {
1353
+ "use strict";
1354
+
1355
+ function Disk2D (executionContext)
1356
+ {
1357
+ X3DLineGeometryNode .call (this, executionContext);
1358
+
1359
+ this .addType (X3DConstants .Disk2D);
1360
+
1361
+ this .innerRadius_ .setUnit ("length");
1362
+ this .outerRadius_ .setUnit ("length");
1363
+ }
1364
+
1365
+ Disk2D .prototype = Object .assign (Object .create (X3DGeometryNode .prototype),
1366
+ //X3DLineGeometryNode .prototype, // Considered X3DLineGeometryNode.
1367
+ {
1368
+ constructor: Disk2D,
1369
+ fieldDefinitions: new FieldDefinitionArray ([
1370
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1371
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "innerRadius", new Fields .SFFloat ()),
1372
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "outerRadius", new Fields .SFFloat (1)),
1373
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "solid", new Fields .SFBool ()),
1374
+ ]),
1375
+ getTypeName: function ()
1376
+ {
1377
+ return "Disk2D";
1378
+ },
1379
+ getComponentName: function ()
1380
+ {
1381
+ return "Geometry2D";
1382
+ },
1383
+ getContainerField: function ()
1384
+ {
1385
+ return "geometry";
1386
+ },
1387
+ initialize: function ()
1388
+ {
1389
+ X3DGeometryNode .prototype .initialize .call (this);
1390
+
1391
+ this .setPrimitiveMode (this .getBrowser () .getContext () .LINE_LOOP);
1392
+ },
1393
+ set_live__: function ()
1394
+ {
1395
+ X3DGeometryNode .prototype .set_live__ .call (this);
1396
+
1397
+ if (this .isLive () .getValue ())
1398
+ this .getBrowser () .getDisk2DOptions () .addInterest ("requestRebuild", this);
1399
+ else
1400
+ this .getBrowser () .getDisk2DOptions () .removeInterest ("requestRebuild", this);
1401
+ },
1402
+ getShader: X3DLineGeometryNode .prototype .getShader,
1403
+ build: function ()
1404
+ {
1405
+ const
1406
+ options = this .getBrowser () .getDisk2DOptions (),
1407
+ innerRadius = Math .min (Math .abs (this .innerRadius_ .getValue ()), Math .abs (this .outerRadius_ .getValue ())),
1408
+ outerRadius = Math .max (Math .abs (this .innerRadius_ .getValue ()), Math .abs (this .outerRadius_ .getValue ()));
1409
+
1410
+ if (innerRadius === outerRadius)
1411
+ {
1412
+ const vertexArray = this .getVertices ();
1413
+
1414
+ // Point
1415
+
1416
+ if (outerRadius === 0)
1417
+ {
1418
+ // vertexArray .push (0, 0, 0, 1);
1419
+ // this .setGeometryType (0);
1420
+ return;
1421
+ }
1422
+
1423
+ // Circle
1424
+
1425
+ if (outerRadius === 1)
1426
+ {
1427
+ this .setVertices (options .getCircleVertices ());
1428
+ }
1429
+ else
1430
+ {
1431
+ const defaultVertices = options .getCircleVertices () .getValue ();
1432
+
1433
+ for (let i = 0, length = defaultVertices .length; i < length; i += 4)
1434
+ vertexArray .push (defaultVertices [i] * outerRadius, defaultVertices [i + 1] * outerRadius, 0, 1);
1435
+ }
1436
+
1437
+ this .getMin () .set (-outerRadius, -outerRadius, 0);
1438
+ this .getMax () .set ( outerRadius, outerRadius, 0);
1439
+
1440
+ this .setGeometryType (1);
1441
+ return;
1442
+ }
1443
+
1444
+ if (innerRadius === 0)
1445
+ {
1446
+ // Disk
1447
+
1448
+ this .getMultiTexCoords () .push (options .getDiskTexCoords ());
1449
+ this .setNormals (options .getDiskNormals ());
1450
+
1451
+ if (outerRadius === 1)
1452
+ {
1453
+ this .setVertices (options .getDiskVertices ());
1454
+ }
1455
+ else
1456
+ {
1457
+ const
1458
+ defaultVertices = options .getDiskVertices () .getValue (),
1459
+ vertexArray = this .getVertices ();
1460
+
1461
+ for (let i = 0, length = defaultVertices .length; i < length; i += 4)
1462
+ vertexArray .push (defaultVertices [i] * outerRadius, defaultVertices [i + 1] * outerRadius, 0, 1);
1463
+ }
1464
+
1465
+ this .getMin () .set (-outerRadius, -outerRadius, 0);
1466
+ this .getMax () .set ( outerRadius, outerRadius, 0);
1467
+
1468
+ this .setGeometryType (2);
1469
+ this .setSolid (this .solid_ .getValue ());
1470
+
1471
+ return;
1472
+ }
1473
+
1474
+ // Disk with hole
1475
+
1476
+ const
1477
+ scale = innerRadius / outerRadius,
1478
+ offset = (1 - scale) / 2,
1479
+ defaultTexCoords = options .getDiskTexCoords () .getValue (),
1480
+ defaultVertices = options .getDiskVertices () .getValue (),
1481
+ texCoordArray = this .getTexCoords (),
1482
+ normalArray = this .getNormals (),
1483
+ vertexArray = this .getVertices ();
1484
+
1485
+ this .getMultiTexCoords () .push (texCoordArray);
1486
+
1487
+ for (let i = 0, length = defaultVertices .length; i < length; i += 12)
1488
+ {
1489
+ texCoordArray .push (defaultTexCoords [i + 4] * scale + offset, defaultTexCoords [i + 5] * scale + offset, 0, 1,
1490
+ defaultTexCoords [i + 4], defaultTexCoords [i + 5], 0, 1,
1491
+ defaultTexCoords [i + 8], defaultTexCoords [i + 9], 0, 1,
1492
+
1493
+ defaultTexCoords [i + 4] * scale + offset, defaultTexCoords [i + 5] * scale + offset, 0, 1,
1494
+ defaultTexCoords [i + 8], defaultTexCoords [i + 9], 0, 1,
1495
+ defaultTexCoords [i + 8] * scale + offset, defaultTexCoords [i + 9] * scale + offset, 0, 1);
1496
+
1497
+ normalArray .push (0, 0, 1, 0, 0, 1, 0, 0, 1,
1498
+ 0, 0, 1, 0, 0, 1, 0, 0, 1);
1499
+
1500
+ vertexArray .push (defaultVertices [i + 4] * innerRadius, defaultVertices [i + 5] * innerRadius, 0, 1,
1501
+ defaultVertices [i + 4] * outerRadius, defaultVertices [i + 5] * outerRadius, 0, 1,
1502
+ defaultVertices [i + 8] * outerRadius, defaultVertices [i + 9] * outerRadius, 0, 1,
1503
+
1504
+ defaultVertices [i + 4] * innerRadius, defaultVertices [i + 5] * innerRadius, 0, 1,
1505
+ defaultVertices [i + 8] * outerRadius, defaultVertices [i + 9] * outerRadius, 0, 1,
1506
+ defaultVertices [i + 8] * innerRadius, defaultVertices [i + 9] * innerRadius, 0, 1);
1507
+ }
1508
+
1509
+ this .getMin () .set (-outerRadius, -outerRadius, 0);
1510
+ this .getMax () .set ( outerRadius, outerRadius, 0);
1511
+
1512
+ this .setGeometryType (2);
1513
+ this .setSolid (this .solid_ .getValue ());
1514
+ },
1515
+ intersectsLine: function (line, clipPlanes, modelViewMatrix, intersections)
1516
+ {
1517
+ if (this .getGeometryType () < 2)
1518
+ {
1519
+ return X3DLineGeometryNode .prototype .intersectsLine .call (this, line, clipPlanes, modelViewMatrix, intersections);
1520
+ }
1521
+ else
1522
+ {
1523
+ return X3DGeometryNode .prototype .intersectsLine .call (this, line, clipPlanes, modelViewMatrix, intersections);
1524
+ }
1525
+ },
1526
+ intersectsBox: function (box, clipPlanes, modelViewMatrix)
1527
+ {
1528
+ if (this .getGeometryType () < 2)
1529
+ {
1530
+ return X3DLineGeometryNode .prototype .intersectsBox .call (this, box, clipPlanes, modelViewMatrix);
1531
+ }
1532
+ else
1533
+ {
1534
+ return X3DGeometryNode .prototype .intersectsBox .call (this, box, clipPlanes, modelViewMatrix);
1535
+ }
1536
+ },
1537
+ display: function (gl, context)
1538
+ {
1539
+ if (this .getGeometryType () < 2)
1540
+ {
1541
+ return X3DLineGeometryNode .prototype .display .call (this, gl, context);
1542
+ }
1543
+ else
1544
+ {
1545
+ return X3DGeometryNode .prototype .display .call (this, gl, context);
1546
+ }
1547
+ },
1548
+ displayParticles: function (gl, context, particles, numParticles)
1549
+ {
1550
+ if (this .getGeometryType () < 2)
1551
+ {
1552
+ return X3DLineGeometryNode .prototype .displayParticles .call (this, gl, context, particles, numParticles);
1553
+ }
1554
+ else
1555
+ {
1556
+ return X3DGeometryNode .prototype .displayParticles .call (this, gl, context, particles, numParticles);
1557
+ }
1558
+ }
1559
+ });
1560
+
1561
+ return Disk2D;
1562
+ });
1563
+
1564
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1565
+ *******************************************************************************
1566
+ *
1567
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1568
+ *
1569
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1570
+ *
1571
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1572
+ *
1573
+ * The copyright notice above does not evidence any actual of intended
1574
+ * publication of such source code, and is an unpublished work by create3000.
1575
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1576
+ * create3000.
1577
+ *
1578
+ * No permission is granted to copy, distribute, or create derivative works from
1579
+ * the contents of this software, in whole or in part, without the prior written
1580
+ * permission of create3000.
1581
+ *
1582
+ * NON-MILITARY USE ONLY
1583
+ *
1584
+ * All create3000 software are effectively free software with a non-military use
1585
+ * restriction. It is free. Well commented source is provided. You may reuse the
1586
+ * source in any way you please with the exception anything that uses it must be
1587
+ * marked to indicate is contains 'non-military use only' components.
1588
+ *
1589
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1590
+ *
1591
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1592
+ *
1593
+ * This file is part of the X_ITE Project.
1594
+ *
1595
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1596
+ * terms of the GNU General Public License version 3 only, as published by the
1597
+ * Free Software Foundation.
1598
+ *
1599
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1600
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1601
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1602
+ * details (a copy is included in the LICENSE file that accompanied this code).
1603
+ *
1604
+ * You should have received a copy of the GNU General Public License version 3
1605
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1606
+ * copy of the GPLv3 License.
1607
+ *
1608
+ * For Silvio, Joy and Adi.
1609
+ *
1610
+ ******************************************************************************/
1611
+
1612
+
1613
+ define ('x_ite/Components/Geometry2D/Polyline2D',[
1614
+ "x_ite/Fields",
1615
+ "x_ite/Basic/X3DFieldDefinition",
1616
+ "x_ite/Basic/FieldDefinitionArray",
1617
+ "x_ite/Components/Rendering/X3DLineGeometryNode",
1618
+ "x_ite/Bits/X3DConstants",
1619
+ ],
1620
+ function (Fields,
1621
+ X3DFieldDefinition,
1622
+ FieldDefinitionArray,
1623
+ X3DLineGeometryNode,
1624
+ X3DConstants)
1625
+ {
1626
+ "use strict";
1627
+
1628
+ function Polyline2D (executionContext)
1629
+ {
1630
+ X3DLineGeometryNode .call (this, executionContext);
1631
+
1632
+ this .addType (X3DConstants .Polyline2D);
1633
+
1634
+ this .setGeometryType (1);
1635
+
1636
+ this .lineSegments_ .setUnit ("length");
1637
+ }
1638
+
1639
+ Polyline2D .prototype = Object .assign (Object .create (X3DLineGeometryNode .prototype),
1640
+ {
1641
+ constructor: Polyline2D,
1642
+ fieldDefinitions: new FieldDefinitionArray ([
1643
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1644
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "lineSegments", new Fields .MFVec2f ()),
1645
+ ]),
1646
+ getTypeName: function ()
1647
+ {
1648
+ return "Polyline2D";
1649
+ },
1650
+ getComponentName: function ()
1651
+ {
1652
+ return "Geometry2D";
1653
+ },
1654
+ getContainerField: function ()
1655
+ {
1656
+ return "geometry";
1657
+ },
1658
+ initialize: function ()
1659
+ {
1660
+ X3DLineGeometryNode .prototype .initialize .call (this);
1661
+
1662
+ this .setPrimitiveMode (this .getBrowser () .getContext () .LINE_STRIP);
1663
+ },
1664
+ build: function ()
1665
+ {
1666
+ var
1667
+ lineSegments = this .lineSegments_ .getValue (),
1668
+ vertexArray = this .getVertices ();
1669
+
1670
+ for (var i = 0, length = this .lineSegments_ .length * 2; i < length; i += 2)
1671
+ {
1672
+ vertexArray .push (lineSegments [i], lineSegments [i + 1], 0, 1);
1673
+ }
1674
+
1675
+ this .setSolid (false);
1676
+ },
1677
+ });
1678
+
1679
+ return Polyline2D;
1680
+ });
1681
+
1682
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1683
+ *******************************************************************************
1684
+ *
1685
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1686
+ *
1687
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1688
+ *
1689
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1690
+ *
1691
+ * The copyright notice above does not evidence any actual of intended
1692
+ * publication of such source code, and is an unpublished work by create3000.
1693
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1694
+ * create3000.
1695
+ *
1696
+ * No permission is granted to copy, distribute, or create derivative works from
1697
+ * the contents of this software, in whole or in part, without the prior written
1698
+ * permission of create3000.
1699
+ *
1700
+ * NON-MILITARY USE ONLY
1701
+ *
1702
+ * All create3000 software are effectively free software with a non-military use
1703
+ * restriction. It is free. Well commented source is provided. You may reuse the
1704
+ * source in any way you please with the exception anything that uses it must be
1705
+ * marked to indicate is contains 'non-military use only' components.
1706
+ *
1707
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1708
+ *
1709
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1710
+ *
1711
+ * This file is part of the X_ITE Project.
1712
+ *
1713
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1714
+ * terms of the GNU General Public License version 3 only, as published by the
1715
+ * Free Software Foundation.
1716
+ *
1717
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1718
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1719
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1720
+ * details (a copy is included in the LICENSE file that accompanied this code).
1721
+ *
1722
+ * You should have received a copy of the GNU General Public License version 3
1723
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1724
+ * copy of the GPLv3 License.
1725
+ *
1726
+ * For Silvio, Joy and Adi.
1727
+ *
1728
+ ******************************************************************************/
1729
+
1730
+
1731
+ define ('x_ite/Components/Geometry2D/Polypoint2D',[
1732
+ "x_ite/Fields",
1733
+ "x_ite/Basic/X3DFieldDefinition",
1734
+ "x_ite/Basic/FieldDefinitionArray",
1735
+ "x_ite/Components/Rendering/X3DLineGeometryNode",
1736
+ "x_ite/Bits/X3DConstants",
1737
+ ],
1738
+ function (Fields,
1739
+ X3DFieldDefinition,
1740
+ FieldDefinitionArray,
1741
+ X3DLineGeometryNode,
1742
+ X3DConstants)
1743
+ {
1744
+ "use strict";
1745
+
1746
+ function Polypoint2D (executionContext)
1747
+ {
1748
+ X3DLineGeometryNode .call (this, executionContext);
1749
+
1750
+ this .addType (X3DConstants .Polypoint2D);
1751
+
1752
+ this .setGeometryType (0);
1753
+
1754
+ this .point_ .setUnit ("length");
1755
+
1756
+ this .setTransparent (true);
1757
+ }
1758
+
1759
+ Polypoint2D .prototype = Object .assign (Object .create (X3DLineGeometryNode .prototype),
1760
+ {
1761
+ constructor: Polypoint2D,
1762
+ fieldDefinitions: new FieldDefinitionArray ([
1763
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1764
+ new X3DFieldDefinition (X3DConstants .inputOutput, "point", new Fields .MFVec2f ()),
1765
+ ]),
1766
+ getTypeName: function ()
1767
+ {
1768
+ return "Polypoint2D";
1769
+ },
1770
+ getComponentName: function ()
1771
+ {
1772
+ return "Geometry2D";
1773
+ },
1774
+ getContainerField: function ()
1775
+ {
1776
+ return "geometry";
1777
+ },
1778
+ initialize: function ()
1779
+ {
1780
+ X3DLineGeometryNode .prototype .initialize .call (this);
1781
+
1782
+ var browser = this .getBrowser ();
1783
+
1784
+ this .setPrimitiveMode (browser .getContext () .POINTS);
1785
+ this .setSolid (false);
1786
+ },
1787
+ getShader: function (browser)
1788
+ {
1789
+ return browser .getPointShader ();
1790
+ },
1791
+ build: function ()
1792
+ {
1793
+ var
1794
+ point = this .point_ .getValue (),
1795
+ vertexArray = this .getVertices ();
1796
+
1797
+ for (var i = 0, length = this .point_ .length * 2; i < length; i += 2)
1798
+ {
1799
+ vertexArray .push (point [i], point [i + 1], 0, 1);
1800
+ }
1801
+ },
1802
+ });
1803
+
1804
+ return Polypoint2D;
1805
+ });
1806
+
1807
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1808
+ *******************************************************************************
1809
+ *
1810
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1811
+ *
1812
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1813
+ *
1814
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1815
+ *
1816
+ * The copyright notice above does not evidence any actual of intended
1817
+ * publication of such source code, and is an unpublished work by create3000.
1818
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1819
+ * create3000.
1820
+ *
1821
+ * No permission is granted to copy, distribute, or create derivative works from
1822
+ * the contents of this software, in whole or in part, without the prior written
1823
+ * permission of create3000.
1824
+ *
1825
+ * NON-MILITARY USE ONLY
1826
+ *
1827
+ * All create3000 software are effectively free software with a non-military use
1828
+ * restriction. It is free. Well commented source is provided. You may reuse the
1829
+ * source in any way you please with the exception anything that uses it must be
1830
+ * marked to indicate is contains 'non-military use only' components.
1831
+ *
1832
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1833
+ *
1834
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1835
+ *
1836
+ * This file is part of the X_ITE Project.
1837
+ *
1838
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1839
+ * terms of the GNU General Public License version 3 only, as published by the
1840
+ * Free Software Foundation.
1841
+ *
1842
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1843
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1844
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1845
+ * details (a copy is included in the LICENSE file that accompanied this code).
1846
+ *
1847
+ * You should have received a copy of the GNU General Public License version 3
1848
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1849
+ * copy of the GPLv3 License.
1850
+ *
1851
+ * For Silvio, Joy and Adi.
1852
+ *
1853
+ ******************************************************************************/
1854
+
1855
+
1856
+ define ('x_ite/Components/Geometry2D/Rectangle2D',[
1857
+ "x_ite/Fields",
1858
+ "x_ite/Basic/X3DFieldDefinition",
1859
+ "x_ite/Basic/FieldDefinitionArray",
1860
+ "x_ite/Components/Rendering/X3DGeometryNode",
1861
+ "x_ite/Bits/X3DConstants",
1862
+ "standard/Math/Numbers/Vector2",
1863
+ "standard/Math/Numbers/Vector3",
1864
+ ],
1865
+ function (Fields,
1866
+ X3DFieldDefinition,
1867
+ FieldDefinitionArray,
1868
+ X3DGeometryNode,
1869
+ X3DConstants,
1870
+ Vector2,
1871
+ Vector3)
1872
+ {
1873
+ "use strict";
1874
+
1875
+ var defaultSize = new Vector2 (2, 2);
1876
+
1877
+ function Rectangle2D (executionContext)
1878
+ {
1879
+ X3DGeometryNode .call (this, executionContext);
1880
+
1881
+ this .addType (X3DConstants .Rectangle2D);
1882
+
1883
+ this .setGeometryType (2);
1884
+
1885
+ this .size_ .setUnit ("length");
1886
+ }
1887
+
1888
+ Rectangle2D .prototype = Object .assign (Object .create (X3DGeometryNode .prototype),
1889
+ {
1890
+ constructor: Rectangle2D,
1891
+ fieldDefinitions: new FieldDefinitionArray ([
1892
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
1893
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "size", new Fields .SFVec2f (2, 2)),
1894
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "solid", new Fields .SFBool ()),
1895
+ ]),
1896
+ getTypeName: function ()
1897
+ {
1898
+ return "Rectangle2D";
1899
+ },
1900
+ getComponentName: function ()
1901
+ {
1902
+ return "Geometry2D";
1903
+ },
1904
+ getContainerField: function ()
1905
+ {
1906
+ return "geometry";
1907
+ },
1908
+ build: function ()
1909
+ {
1910
+ var
1911
+ options = this .getBrowser () .getRectangle2DOptions (),
1912
+ geometry = options .getGeometry (),
1913
+ size = this .size_ .getValue ();
1914
+
1915
+ this .setMultiTexCoords (geometry .getMultiTexCoords ());
1916
+ this .setNormals (geometry .getNormals ());
1917
+
1918
+ if (size .equals (defaultSize))
1919
+ {
1920
+ this .setVertices (geometry .getVertices ());
1921
+
1922
+ this .getMin () .assign (geometry .getMin ());
1923
+ this .getMax () .assign (geometry .getMax ());
1924
+ }
1925
+ else
1926
+ {
1927
+ var
1928
+ scale = Vector3 .divide (size, 2),
1929
+ x = scale .x,
1930
+ y = scale .y,
1931
+ defaultVertices = geometry .getVertices () .getValue (),
1932
+ vertexArray = this .getVertices ();
1933
+
1934
+ for (var i = 0; i < defaultVertices .length; i += 4)
1935
+ {
1936
+ vertexArray .push (x * defaultVertices [i],
1937
+ y * defaultVertices [i + 1],
1938
+ defaultVertices [i + 2],
1939
+ 1);
1940
+ }
1941
+
1942
+ this .getMin () .set (-x, -y, 0);
1943
+ this .getMax () .set ( x, y, 0);
1944
+ }
1945
+
1946
+ this .setSolid (this .solid_ .getValue ());
1947
+ },
1948
+ });
1949
+
1950
+ return Rectangle2D;
1951
+ });
1952
+
1953
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
1954
+ *******************************************************************************
1955
+ *
1956
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1957
+ *
1958
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
1959
+ *
1960
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
1961
+ *
1962
+ * The copyright notice above does not evidence any actual of intended
1963
+ * publication of such source code, and is an unpublished work by create3000.
1964
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
1965
+ * create3000.
1966
+ *
1967
+ * No permission is granted to copy, distribute, or create derivative works from
1968
+ * the contents of this software, in whole or in part, without the prior written
1969
+ * permission of create3000.
1970
+ *
1971
+ * NON-MILITARY USE ONLY
1972
+ *
1973
+ * All create3000 software are effectively free software with a non-military use
1974
+ * restriction. It is free. Well commented source is provided. You may reuse the
1975
+ * source in any way you please with the exception anything that uses it must be
1976
+ * marked to indicate is contains 'non-military use only' components.
1977
+ *
1978
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1979
+ *
1980
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
1981
+ *
1982
+ * This file is part of the X_ITE Project.
1983
+ *
1984
+ * X_ITE is free software: you can redistribute it and/or modify it under the
1985
+ * terms of the GNU General Public License version 3 only, as published by the
1986
+ * Free Software Foundation.
1987
+ *
1988
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
1989
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
1990
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
1991
+ * details (a copy is included in the LICENSE file that accompanied this code).
1992
+ *
1993
+ * You should have received a copy of the GNU General Public License version 3
1994
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
1995
+ * copy of the GPLv3 License.
1996
+ *
1997
+ * For Silvio, Joy and Adi.
1998
+ *
1999
+ ******************************************************************************/
2000
+
2001
+
2002
+ define ('x_ite/Components/Geometry2D/TriangleSet2D',[
2003
+ "x_ite/Fields",
2004
+ "x_ite/Basic/X3DFieldDefinition",
2005
+ "x_ite/Basic/FieldDefinitionArray",
2006
+ "x_ite/Components/Rendering/X3DGeometryNode",
2007
+ "x_ite/Bits/X3DConstants",
2008
+ "standard/Math/Numbers/Vector3",
2009
+ ],
2010
+ function (Fields,
2011
+ X3DFieldDefinition,
2012
+ FieldDefinitionArray,
2013
+ X3DGeometryNode,
2014
+ X3DConstants,
2015
+ Vector3)
2016
+ {
2017
+ "use strict";
2018
+
2019
+ function TriangleSet2D (executionContext)
2020
+ {
2021
+ X3DGeometryNode .call (this, executionContext);
2022
+
2023
+ this .addType (X3DConstants .TriangleSet2D);
2024
+
2025
+ this .setGeometryType (2);
2026
+
2027
+ this .vertices_ .setUnit ("length");
2028
+ }
2029
+
2030
+ TriangleSet2D .prototype = Object .assign (Object .create (X3DGeometryNode .prototype),
2031
+ {
2032
+ constructor: TriangleSet2D,
2033
+ fieldDefinitions: new FieldDefinitionArray ([
2034
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
2035
+ new X3DFieldDefinition (X3DConstants .inputOutput, "vertices", new Fields .MFVec2f ()),
2036
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "solid", new Fields .SFBool ()),
2037
+ ]),
2038
+ getTypeName: function ()
2039
+ {
2040
+ return "TriangleSet2D";
2041
+ },
2042
+ getComponentName: function ()
2043
+ {
2044
+ return "Geometry2D";
2045
+ },
2046
+ getContainerField: function ()
2047
+ {
2048
+ return "geometry";
2049
+ },
2050
+ build: function ()
2051
+ {
2052
+ var
2053
+ vertices = this .vertices_ .getValue (),
2054
+ normalArray = this .getNormals (),
2055
+ vertexArray = this .getVertices ();
2056
+
2057
+ for (var i = 0, length = this .vertices_ .length * 2; i < length; i += 2)
2058
+ {
2059
+ normalArray .push (0, 0, 1);
2060
+ vertexArray .push (vertices [i], vertices [i + 1], 0, 1);
2061
+ }
2062
+
2063
+ this .setSolid (this .solid_ .getValue ());
2064
+ },
2065
+ buildTexCoords: function ()
2066
+ {
2067
+ var texCoordArray = this .getTexCoords ();
2068
+
2069
+ if (texCoordArray .length === 0)
2070
+ {
2071
+ var
2072
+ p = this .getTexCoordParams (),
2073
+ min = p .min,
2074
+ Ssize = p .Ssize,
2075
+ vertexArray = this .getVertices () .getValue ();
2076
+
2077
+ for (var i = 0, length = vertexArray .length; i < length; i += 4)
2078
+ {
2079
+ texCoordArray .push ((vertexArray [i] - min [0]) / Ssize,
2080
+ (vertexArray [i + 1] - min [1]) / Ssize,
2081
+ 0,
2082
+ 1);
2083
+ }
2084
+
2085
+ texCoordArray .shrinkToFit ();
2086
+ }
2087
+
2088
+ return texCoordArray;
2089
+ },
2090
+ });
2091
+
2092
+ return TriangleSet2D;
2093
+ });
2094
+
2095
+ /*******************************************************************************
2096
+ *
2097
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2098
+ *
2099
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
2100
+ *
2101
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
2102
+ *
2103
+ * The copyright notice above does not evidence any actual of intended
2104
+ * publication of such source code, and is an unpublished work by create3000.
2105
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
2106
+ * create3000.
2107
+ *
2108
+ * No permission is granted to copy, distribute, or create derivative works from
2109
+ * the contents of this software, in whole or in part, without the prior written
2110
+ * permission of create3000.
2111
+ *
2112
+ * NON-MILITARY USE ONLY
2113
+ *
2114
+ * All create3000 software are effectively free software with a non-military use
2115
+ * restriction. It is free. Well commented source is provided. You may reuse the
2116
+ * source in any way you please with the exception anything that uses it must be
2117
+ * marked to indicate is contains 'non-military use only' components.
2118
+ *
2119
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2120
+ *
2121
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
2122
+ *
2123
+ * This file is part of the X_ITE Project.
2124
+ *
2125
+ * X_ITE is free software: you can redistribute it and/or modify it under the
2126
+ * terms of the GNU General Public License version 3 only, as published by the
2127
+ * Free Software Foundation.
2128
+ *
2129
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
2130
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
2131
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
2132
+ * details (a copy is included in the LICENSE file that accompanied this code).
2133
+ *
2134
+ * You should have received a copy of the GNU General Public License version 3
2135
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
2136
+ * copy of the GPLv3 License.
2137
+ *
2138
+ * For Silvio, Joy and Adi.
2139
+ *
2140
+ ******************************************************************************/
2141
+
2142
+
2143
+ define ([
2144
+ "x_ite/Components",
2145
+ "x_ite/Browser/Geometry2D/X3DGeometry2DContext",
2146
+ "x_ite/Components/Geometry2D/Arc2D",
2147
+ "x_ite/Components/Geometry2D/ArcClose2D",
2148
+ "x_ite/Components/Geometry2D/Circle2D",
2149
+ "x_ite/Components/Geometry2D/Disk2D",
2150
+ "x_ite/Components/Geometry2D/Polyline2D",
2151
+ "x_ite/Components/Geometry2D/Polypoint2D",
2152
+ "x_ite/Components/Geometry2D/Rectangle2D",
2153
+ "x_ite/Components/Geometry2D/TriangleSet2D",
2154
+ ],
2155
+ function (Components,
2156
+ X3DGeometry2DContext,
2157
+ Arc2D,
2158
+ ArcClose2D,
2159
+ Circle2D,
2160
+ Disk2D,
2161
+ Polyline2D,
2162
+ Polypoint2D,
2163
+ Rectangle2D,
2164
+ TriangleSet2D)
2165
+ {
2166
+ "use strict";
2167
+
2168
+ Components .addComponent ({
2169
+ name: "Geometry2D",
2170
+ types:
2171
+ {
2172
+ Arc2D: Arc2D,
2173
+ ArcClose2D: ArcClose2D,
2174
+ Circle2D: Circle2D,
2175
+ Disk2D: Disk2D,
2176
+ Polyline2D: Polyline2D,
2177
+ Polypoint2D: Polypoint2D,
2178
+ Rectangle2D: Rectangle2D,
2179
+ TriangleSet2D: TriangleSet2D,
2180
+ },
2181
+ abstractTypes:
2182
+ {
2183
+ },
2184
+ browser: X3DGeometry2DContext,
2185
+ });
2186
+ });
2187
+
2188
+
2189
+
2190
+ }());