x_ite 5.0.3 → 6.1.0

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 (385) hide show
  1. package/.vscode/settings.json +12 -5
  2. package/.vscode/tasks.json +25 -1
  3. package/Makefile +36 -28
  4. package/README.md +6 -11
  5. package/build/bin/dist.pl +0 -6
  6. package/build/bin/examples-and-tests.pl +75 -0
  7. package/build/bin/tests-menu.pl +57 -0
  8. package/build/bin/version.pl +7 -4
  9. package/build/parts/default.start.frag.js +3 -2
  10. package/dist/assets/components/annotation.js +3 -2
  11. package/dist/assets/components/annotation.min.js +1 -1
  12. package/dist/assets/components/cad-geometry.js +3 -2
  13. package/dist/assets/components/cad-geometry.min.js +1 -1
  14. package/dist/assets/components/cube-map-texturing.js +8 -20
  15. package/dist/assets/components/cube-map-texturing.min.js +1 -1
  16. package/dist/assets/components/dis.js +3 -2
  17. package/dist/assets/components/dis.min.js +1 -1
  18. package/dist/assets/components/event-utilities.js +4 -3
  19. package/dist/assets/components/event-utilities.min.js +1 -1
  20. package/dist/assets/components/geometry2d.js +38 -52
  21. package/dist/assets/components/geometry2d.min.js +1 -1
  22. package/dist/assets/components/geospatial.js +34 -1686
  23. package/dist/assets/components/geospatial.min.js +1 -1
  24. package/dist/assets/components/h-anim.js +71 -77
  25. package/dist/assets/components/h-anim.min.js +1 -1
  26. package/dist/assets/components/key-device-sensor.js +4 -3
  27. package/dist/assets/components/key-device-sensor.min.js +1 -1
  28. package/dist/assets/components/layout.js +101 -173
  29. package/dist/assets/components/layout.min.js +1 -1
  30. package/dist/assets/components/nurbs.js +3 -2
  31. package/dist/assets/components/nurbs.min.js +1 -1
  32. package/dist/assets/components/particle-systems.js +1926 -1669
  33. package/dist/assets/components/particle-systems.min.js +1 -1
  34. package/dist/assets/components/picking.js +34 -41
  35. package/dist/assets/components/picking.min.js +1 -1
  36. package/dist/assets/components/projective-texture-mapping.js +73 -86
  37. package/dist/assets/components/projective-texture-mapping.min.js +1 -1
  38. package/dist/assets/components/rigid-body-physics.js +37 -57
  39. package/dist/assets/components/rigid-body-physics.min.js +1 -1
  40. package/dist/assets/components/scripting.js +3 -2
  41. package/dist/assets/components/scripting.min.js +1 -1
  42. package/dist/assets/components/texturing-3d.js +27 -33
  43. package/dist/assets/components/texturing-3d.min.js +3 -3
  44. package/dist/assets/components/volume-rendering.js +12 -11
  45. package/dist/assets/components/volume-rendering.min.js +1 -1
  46. package/dist/assets/components/x_ite.js +3 -2
  47. package/dist/assets/components/x_ite.min.js +1 -1
  48. package/dist/assets/images/Shading.png +0 -0
  49. package/dist/assets/linetype/1.png +0 -0
  50. package/dist/assets/linetype/10.png +0 -0
  51. package/dist/assets/linetype/11.png +0 -0
  52. package/dist/assets/linetype/12.png +0 -0
  53. package/dist/assets/linetype/13.png +0 -0
  54. package/dist/assets/linetype/14.png +0 -0
  55. package/dist/assets/linetype/15.png +0 -0
  56. package/dist/assets/linetype/16.png +0 -0
  57. package/dist/assets/linetype/2.png +0 -0
  58. package/dist/assets/linetype/3.png +0 -0
  59. package/dist/assets/linetype/4.png +0 -0
  60. package/dist/assets/linetype/5.png +0 -0
  61. package/dist/assets/linetype/6.png +0 -0
  62. package/dist/assets/linetype/7.png +0 -0
  63. package/dist/assets/linetype/8.png +0 -0
  64. package/dist/assets/linetype/9.png +0 -0
  65. package/dist/assets/shaders/webgl1/Gouraud.vs +1 -1
  66. package/dist/assets/shaders/webgl1/Line.fs +0 -21
  67. package/dist/assets/shaders/webgl1/Line.vs +0 -10
  68. package/dist/assets/shaders/webgl1/PBR.fs +1 -1
  69. package/dist/assets/shaders/webgl1/PBR.vs +1 -1
  70. package/dist/assets/shaders/webgl1/Phong.fs +1 -1
  71. package/dist/assets/shaders/webgl1/Point.vs +1 -1
  72. package/dist/assets/shaders/webgl2/Depth.vs +29 -1
  73. package/dist/assets/shaders/webgl2/Gouraud.vs +32 -4
  74. package/dist/assets/shaders/webgl2/Line.fs +24 -12
  75. package/dist/assets/shaders/webgl2/Line.vs +36 -11
  76. package/dist/assets/shaders/webgl2/LineTransform.fs +4 -0
  77. package/dist/assets/shaders/webgl2/LineTransform.vs +57 -0
  78. package/dist/assets/shaders/webgl2/PBR.fs +1 -1
  79. package/dist/assets/shaders/webgl2/PBR.vs +35 -7
  80. package/dist/assets/shaders/webgl2/Phong.fs +1 -1
  81. package/dist/assets/shaders/webgl2/Phong.vs +31 -3
  82. package/dist/assets/shaders/webgl2/Point.vs +30 -2
  83. package/dist/assets/shaders/webgl2/Unlit.vs +31 -3
  84. package/dist/example.html +6 -6
  85. package/dist/x_ite.css +199 -224
  86. package/dist/x_ite.js +16335 -15917
  87. package/dist/x_ite.min.js +17 -17
  88. package/dist/x_ite.zip +0 -0
  89. package/docs/404.md +6 -0
  90. package/docs/Accessing-the-External-Browser.md +21 -15
  91. package/docs/Browser-Support.md +6 -0
  92. package/docs/Custom-Shaders.md +18 -25
  93. package/docs/Features.md +11 -5
  94. package/docs/Gemfile +44 -0
  95. package/docs/Gemfile.lock +122 -0
  96. package/docs/Glossary.md +6 -0
  97. package/docs/How-To-Configure-Your-Web-Server.md +6 -0
  98. package/docs/Supported-Nodes.md +9 -1
  99. package/docs/What's-New.md +93 -39
  100. package/docs/XHTML-DOM-Integration.md +6 -0
  101. package/docs/_config.yml +2 -2
  102. package/docs/assets/css/main.scss +26 -0
  103. package/docs/index.md +42 -50
  104. package/docs/reference/Browser-Services.md +9 -3
  105. package/docs/reference/Constants-Services.md +6 -0
  106. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +12 -6
  107. package/docs/reference/Field-Services-and-Objects.md +105 -1
  108. package/docs/reference/Prototype-Services.md +11 -0
  109. package/docs/reference/Route-Services.md +9 -0
  110. package/docs/reference/Scene-Services.md +17 -2
  111. package/docs/reference/Script-Node-Authoring-Interface.md +7 -1
  112. package/docs/tutorials/Adding-backgrounds.md +6 -0
  113. package/docs/tutorials/Adding-fog.md +6 -0
  114. package/docs/tutorials/Adding-sound.md +6 -0
  115. package/docs/tutorials/Animating-transforms.md +6 -0
  116. package/docs/tutorials/Basic-Nodes.md +6 -0
  117. package/docs/tutorials/Building-a-X3D-world.md +6 -0
  118. package/docs/tutorials/Building-elevation-grids.md +6 -0
  119. package/docs/tutorials/Building-extruded-shapes.md +6 -0
  120. package/docs/tutorials/Building-primitive-shapes.md +6 -0
  121. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +6 -0
  122. package/docs/tutorials/Controlling-appearance-with-materials.md +6 -0
  123. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +6 -0
  124. package/docs/tutorials/Controlling-detail.md +6 -0
  125. package/docs/tutorials/Controlling-how-textures-are-mapped.md +6 -0
  126. package/docs/tutorials/Controlling-navigation.md +6 -0
  127. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +6 -0
  128. package/docs/tutorials/Controlling-the-viewpoint.md +6 -0
  129. package/docs/tutorials/Creating-new-node-types.md +6 -0
  130. package/docs/tutorials/Grouping-nodes.md +6 -0
  131. package/docs/tutorials/Hello,-World!.md +6 -0
  132. package/docs/tutorials/Improving-Performance.md +6 -0
  133. package/docs/tutorials/Increasing-Rendering-Speed.md +6 -0
  134. package/docs/tutorials/Introducing-X3D.md +6 -0
  135. package/docs/tutorials/Introducing-animation.md +6 -0
  136. package/docs/tutorials/Introducing-script-use.md +6 -0
  137. package/docs/tutorials/Lighting-your-world.md +6 -0
  138. package/docs/tutorials/Mapping-textures.md +6 -0
  139. package/docs/tutorials/Naming-nodes.md +6 -0
  140. package/docs/tutorials/Providing-information-about-your-world.md +6 -0
  141. package/docs/tutorials/Sensing-the-viewer.md +6 -0
  142. package/docs/tutorials/Sensing-viewer-actions.md +6 -0
  143. package/docs/tutorials/Transforming-Shapes.md +6 -0
  144. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +6 -0
  145. package/docs/tutorials/index.md +42 -36
  146. package/package.json +6 -7
  147. package/src/assets/components/geometry2d.js +1 -1
  148. package/src/assets/components/key-device-sensor.js +1 -1
  149. package/src/assets/components/layout.js +1 -1
  150. package/src/assets/components/particle-systems.js +1 -1
  151. package/src/assets/components/volume-rendering.js +1 -1
  152. package/src/assets/images/Shading.png +0 -0
  153. package/src/assets/linetype/1.png +0 -0
  154. package/src/assets/linetype/10.png +0 -0
  155. package/src/assets/linetype/11.png +0 -0
  156. package/src/assets/linetype/12.png +0 -0
  157. package/src/assets/linetype/13.png +0 -0
  158. package/src/assets/linetype/14.png +0 -0
  159. package/src/assets/linetype/15.png +0 -0
  160. package/src/assets/linetype/16.png +0 -0
  161. package/src/assets/linetype/2.png +0 -0
  162. package/src/assets/linetype/3.png +0 -0
  163. package/src/assets/linetype/4.png +0 -0
  164. package/src/assets/linetype/5.png +0 -0
  165. package/src/assets/linetype/6.png +0 -0
  166. package/src/assets/linetype/7.png +0 -0
  167. package/src/assets/linetype/8.png +0 -0
  168. package/src/assets/linetype/9.png +0 -0
  169. package/src/assets/shaders/Types.glsl +1 -9
  170. package/src/assets/shaders/webgl1/Gouraud.fs +1 -1
  171. package/src/assets/shaders/webgl1/Gouraud.vs +2 -3
  172. package/src/assets/shaders/webgl1/Line.fs +3 -28
  173. package/src/assets/shaders/webgl1/Line.vs +6 -20
  174. package/src/assets/shaders/webgl1/PBR.fs +6 -6
  175. package/src/assets/shaders/webgl1/PBR.vs +1 -1
  176. package/src/assets/shaders/webgl1/Phong.fs +10 -10
  177. package/src/assets/shaders/webgl1/Point.vs +2 -2
  178. package/src/assets/shaders/webgl1/Unlit.fs +4 -4
  179. package/src/assets/shaders/webgl1/include/Normal.glsl +1 -1
  180. package/src/assets/shaders/webgl1/include/Texture.glsl +3 -8
  181. package/src/assets/shaders/webgl2/Depth.vs +4 -1
  182. package/src/assets/shaders/webgl2/Gouraud.fs +1 -1
  183. package/src/assets/shaders/webgl2/Gouraud.vs +8 -6
  184. package/src/assets/shaders/webgl2/Line.fs +11 -17
  185. package/src/assets/shaders/webgl2/Line.vs +17 -21
  186. package/src/assets/shaders/webgl2/LineTransform.fs +6 -0
  187. package/src/assets/shaders/webgl2/LineTransform.vs +77 -0
  188. package/src/assets/shaders/webgl2/PBR.fs +6 -6
  189. package/src/assets/shaders/webgl2/PBR.vs +10 -7
  190. package/src/assets/shaders/webgl2/Phong.fs +11 -11
  191. package/src/assets/shaders/webgl2/Phong.vs +6 -3
  192. package/src/assets/shaders/webgl2/Point.vs +5 -4
  193. package/src/assets/shaders/webgl2/Unlit.fs +5 -5
  194. package/src/assets/shaders/webgl2/Unlit.vs +6 -3
  195. package/src/assets/shaders/webgl2/include/Line2.glsl +20 -0
  196. package/src/assets/shaders/webgl2/include/Normal.glsl +1 -1
  197. package/src/assets/shaders/webgl2/include/Particle.glsl +36 -0
  198. package/src/assets/shaders/webgl2/include/Texture.glsl +3 -3
  199. package/src/example.html +6 -6
  200. package/src/examples.js +5 -4
  201. package/src/standard/Math/Algorithm.js +12 -28
  202. package/src/standard/Math/Geometry/Line2.js +163 -0
  203. package/src/standard/Math/Geometry/Line3.js +3 -5
  204. package/src/standard/Math/Geometry/Plane3.js +0 -2
  205. package/src/standard/Math/Geometry/Triangle3.js +1 -1
  206. package/src/standard/Math/Geometry/ViewVolume.js +121 -103
  207. package/src/standard/Math/Numbers/Color3.js +6 -0
  208. package/src/standard/Math/Numbers/Color4.js +7 -0
  209. package/src/standard/Math/Numbers/Complex.js +48 -34
  210. package/src/standard/Math/Numbers/Matrix2.js +62 -2
  211. package/src/standard/Math/Numbers/Matrix3.js +129 -110
  212. package/src/standard/Math/Numbers/Matrix4.js +138 -119
  213. package/src/standard/Math/Numbers/Quaternion.js +12 -5
  214. package/src/standard/Math/Numbers/Rotation4.js +8 -1
  215. package/src/standard/Math/Numbers/Vector2.js +42 -9
  216. package/src/standard/Math/Numbers/Vector3.js +50 -14
  217. package/src/standard/Math/Numbers/Vector4.js +48 -11
  218. package/src/standard/Math/Utility/BVH.js +45 -17
  219. package/src/tests.js +68 -66
  220. package/src/x_ite/Base/X3DBaseNode.js +22 -11
  221. package/src/x_ite/Base/X3DField.js +1 -1
  222. package/src/x_ite/Browser/Core/BrowserOptions.js +24 -143
  223. package/src/x_ite/Browser/Core/BrowserTimings.js +6 -4
  224. package/src/x_ite/Browser/Core/Context.js +185 -0
  225. package/src/x_ite/Browser/Core/ContextMenu.js +398 -211
  226. package/src/x_ite/Browser/Core/Notification.js +1 -0
  227. package/src/x_ite/Browser/Core/X3DCoreContext.js +35 -146
  228. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +1 -1
  229. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +1 -0
  230. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +2 -2
  231. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +41 -2
  232. package/src/x_ite/Browser/Geospatial/Geocentric.js +2 -2
  233. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +1 -1
  234. package/src/x_ite/Browser/Layout/ScreenText.js +18 -65
  235. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +59 -16
  236. package/src/x_ite/Browser/Navigation/ExamineViewer.js +13 -20
  237. package/src/x_ite/Browser/Navigation/LookAtViewer.js +1 -4
  238. package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -3
  239. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +15 -8
  240. package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -20
  241. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +11 -7
  242. package/src/x_ite/Browser/ParticleSystems/BVH.glsl +183 -0
  243. package/src/x_ite/Browser/ParticleSystems/Box3.glsl +47 -0
  244. package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +66 -0
  245. package/src/x_ite/Browser/ParticleSystems/Line3.glsl +55 -0
  246. package/src/x_ite/Browser/ParticleSystems/Plane3.glsl +160 -0
  247. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +27 -3
  248. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +41 -37
  249. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +21 -13
  250. package/src/x_ite/Browser/Shaders/Shader.js +33 -12
  251. package/src/x_ite/Browser/Shaders/ShaderSource.js +6 -0
  252. package/src/x_ite/Browser/Shaders/ShaderTest.js +16 -10
  253. package/src/x_ite/Browser/Shape/X3DShapeContext.js +50 -9
  254. package/src/x_ite/Browser/Text/X3DTextContext.js +4 -13
  255. package/src/x_ite/Browser/Text/X3DTextGeometry.js +2 -1
  256. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +71 -34
  257. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +2 -2
  258. package/src/x_ite/Browser/Time/X3DTimeContext.js +4 -2
  259. package/src/x_ite/Browser/VERSION.js +1 -1
  260. package/src/x_ite/Browser/X3DBrowser.js +7 -6
  261. package/src/x_ite/Browser/X3DBrowserContext.js +43 -10
  262. package/src/x_ite/Components/Core/X3DNode.js +4 -0
  263. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -2
  264. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +3 -4
  265. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +1 -12
  266. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +1 -2
  267. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +1 -1
  268. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +76 -77
  269. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +2 -9
  270. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +51 -65
  271. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +1 -1
  272. package/src/x_ite/Components/Followers/ColorDamper.js +1 -1
  273. package/src/x_ite/Components/Followers/X3DChaserNode.js +18 -32
  274. package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -6
  275. package/src/x_ite/Components/Followers/X3DFollowerNode.js +1 -1
  276. package/src/x_ite/Components/Geometry2D/Disk2D.js +30 -46
  277. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +1 -1
  278. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +12 -4
  279. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +4 -4
  280. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +10 -27
  281. package/src/x_ite/Components/Geospatial/GeoLOD.js +1 -1
  282. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +5 -10
  283. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +9 -16
  284. package/src/x_ite/Components/Geospatial/GeoTransform.js +6 -18
  285. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +26 -30
  286. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +20 -27
  287. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +8 -8
  288. package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -4
  289. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +68 -75
  290. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +4 -11
  291. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +1 -1
  292. package/src/x_ite/Components/Layout/LayoutGroup.js +4 -9
  293. package/src/x_ite/Components/Layout/ScreenFontStyle.js +1 -1
  294. package/src/x_ite/Components/Layout/ScreenGroup.js +16 -80
  295. package/src/x_ite/Components/Lighting/DirectionalLight.js +28 -36
  296. package/src/x_ite/Components/Lighting/PointLight.js +32 -47
  297. package/src/x_ite/Components/Lighting/SpotLight.js +33 -48
  298. package/src/x_ite/Components/Navigation/Billboard.js +49 -56
  299. package/src/x_ite/Components/Navigation/LOD.js +2 -2
  300. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +29 -30
  301. package/src/x_ite/Components/Navigation/Viewpoint.js +16 -20
  302. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +82 -111
  303. package/src/x_ite/Components/Networking/Anchor.js +18 -7
  304. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -6
  305. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +44 -36
  306. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +26 -17
  307. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +20 -7
  308. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +463 -882
  309. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +39 -35
  310. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +112 -128
  311. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +105 -112
  312. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +138 -176
  313. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +16 -11
  314. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +807 -217
  315. package/src/x_ite/Components/Picking/LinePickSensor.js +31 -39
  316. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +91 -108
  317. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +56 -59
  318. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +54 -71
  319. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +8 -15
  320. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +43 -50
  321. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +32 -39
  322. package/src/x_ite/Components/Rendering/ClipPlane.js +3 -11
  323. package/src/x_ite/Components/Rendering/Color.js +12 -24
  324. package/src/x_ite/Components/Rendering/ColorRGBA.js +13 -25
  325. package/src/x_ite/Components/Rendering/IndexedLineSet.js +26 -4
  326. package/src/x_ite/Components/Rendering/LineSet.js +35 -13
  327. package/src/x_ite/Components/Rendering/PointSet.js +35 -13
  328. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +13 -5
  329. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +331 -387
  330. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +350 -140
  331. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +116 -126
  332. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +24 -38
  333. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +10 -17
  334. package/src/x_ite/Components/Shaders/ComposedShader.js +35 -75
  335. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +8 -11
  336. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +10 -14
  337. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +10 -14
  338. package/src/x_ite/Components/Shaders/ShaderPart.js +1 -10
  339. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +220 -210
  340. package/src/x_ite/Components/Shaders/X3DShaderNode.js +28 -10
  341. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +15 -1
  342. package/src/x_ite/Components/Shape/Appearance.js +37 -4
  343. package/src/x_ite/Components/Shape/FillProperties.js +12 -1
  344. package/src/x_ite/Components/Shape/LineProperties.js +33 -1
  345. package/src/x_ite/Components/Shape/PointProperties.js +24 -3
  346. package/src/x_ite/Components/Shape/Shape.js +30 -39
  347. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +3 -1
  348. package/src/x_ite/Components/Sound/Sound.js +31 -41
  349. package/src/x_ite/Components/Text/Text.js +6 -20
  350. package/src/x_ite/Components/Texturing/ImageTexture.js +1 -1
  351. package/src/x_ite/Components/Texturing/MovieTexture.js +1 -1
  352. package/src/x_ite/Components/Texturing/PixelTexture.js +2 -2
  353. package/src/x_ite/Components/Texturing/TextureCoordinate.js +5 -5
  354. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
  355. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +5 -4
  356. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +24 -33
  357. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +5 -5
  358. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +5 -5
  359. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +12 -19
  360. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +8 -8
  361. package/src/x_ite/Components.js +2 -2
  362. package/src/x_ite/Fallback.js +9 -3
  363. package/src/x_ite/Fields/SFColor.js +4 -0
  364. package/src/x_ite/Fields/SFColorRGBA.js +4 -0
  365. package/src/x_ite/Fields/SFImage.js +2 -11
  366. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +4 -0
  367. package/src/x_ite/Fields/SFRotation.js +4 -0
  368. package/src/x_ite/Fields/SFString.js +4 -0
  369. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +22 -2
  370. package/src/x_ite/Parser/XMLParser.js +1 -1
  371. package/src/x_ite/Rendering/TextureBuffer.js +43 -36
  372. package/src/x_ite/Rendering/VertexArray.js +103 -0
  373. package/src/x_ite/Rendering/X3DRenderObject.js +127 -148
  374. package/src/x_ite/X3D.js +32 -26
  375. package/src/x_ite.config.js +0 -5
  376. package/src/x_ite.css +216 -175
  377. package/src/x_ite.html +15 -10
  378. package/src/x_ite.js +49 -1
  379. package/x_ite.min.html +15 -10
  380. package/dist/assets/hatching/0.png +0 -0
  381. package/dist/assets/linetype/0.png +0 -0
  382. package/src/assets/hatching/0.png +0 -0
  383. package/src/assets/linetype/0.png +0 -0
  384. package/src/spinner.css +0 -67
  385. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
@@ -1 +1 @@
1
- !function(){const e=window[Symbol.for("X_ITE.X3D-5.0.3")].define,t=window[Symbol.for("X_ITE.X3D-5.0.3")].require;e("x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",["x_ite/Components/Texturing/X3DSingleTextureNode","x_ite/Base/X3DConstants"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addType(t.X3DEnvironmentTextureNode);const r=this.getBrowser().getContext();this.target=r.TEXTURE_CUBE_MAP,this.targets=[r.TEXTURE_CUBE_MAP_POSITIVE_Z,r.TEXTURE_CUBE_MAP_NEGATIVE_Z,r.TEXTURE_CUBE_MAP_NEGATIVE_X,r.TEXTURE_CUBE_MAP_POSITIVE_X,r.TEXTURE_CUBE_MAP_POSITIVE_Y,r.TEXTURE_CUBE_MAP_NEGATIVE_Y]}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTarget:function(){return this.target},getTextureType:function(){return 4},getTextureTypeString:function(){return"CUBE"},getTargets:function(){return this.targets},clearTexture:function(){const e=new Uint8Array([255,255,255,255]);return function(){const t=this.getBrowser().getContext();t.bindTexture(this.getTarget(),this.getTexture());for(const i of this.getTargets())t.texImage2D(i,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,e)}}(),updateTextureProperties:function(){e.prototype.updateTextureProperties.call(this,this.target,this._textureProperties.getValue(),this.texturePropertiesNode,128,128,!1,!1,!1)},setShaderUniformsToChannel:function(e,t,i,r){const n=i.getBrowser().getTextureCubeUnit();e.activeTexture(e.TEXTURE0+n),e.bindTexture(e.TEXTURE_CUBE_MAP,this.getTexture()),e.uniform1i(r.textureType,4),e.uniform1i(r.textureCube,n)}}),i})),e("x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Base/X3DCast","x_ite/Base/X3DConstants"],(function(e,t,i,r,n,s){"use strict";function o(e){r.call(this,e),this.addType(s.ComposedCubeMapTexture),this.addAlias("front",this._frontTexture),this.addAlias("back",this._backTexture),this.addAlias("left",this._leftTexture),this.addAlias("right",this._rightTexture),this.addAlias("bottom",this._bottomTexture),this.addAlias("top",this._topTexture),this.textures=[null,null,null,null,null,null],this.symbols=[Symbol(),Symbol(),Symbol(),Symbol(),Symbol(),Symbol()],this.loadStates=0}return o.prototype=Object.assign(Object.create(r.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"description",new e.SFString),new t(s.inputOutput,"frontTexture",new e.SFNode),new t(s.inputOutput,"backTexture",new e.SFNode),new t(s.inputOutput,"leftTexture",new e.SFNode),new t(s.inputOutput,"rightTexture",new e.SFNode),new t(s.inputOutput,"bottomTexture",new e.SFNode),new t(s.inputOutput,"topTexture",new e.SFNode),new t(s.initializeOnly,"textureProperties",new e.SFNode)]),getTypeName:function(){return"ComposedCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){r.prototype.initialize.call(this),this.clearTexture(),this._frontTexture.addInterest("set_texture__",this,0),this._backTexture.addInterest("set_texture__",this,1),this._leftTexture.addInterest("set_texture__",this,2),this._rightTexture.addInterest("set_texture__",this,3),this._topTexture.addInterest("set_texture__",this,5),this._bottomTexture.addInterest("set_texture__",this,4),this.set_texture__(this._frontTexture,0),this.set_texture__(this._backTexture,1),this.set_texture__(this._leftTexture,2),this.set_texture__(this._rightTexture,3),this.set_texture__(this._topTexture,4),this.set_texture__(this._bottomTexture,5)},set_texture__:function(e,t){let i=this.textures[t];i&&(i.removeInterest("set_loadState__",this),i._loadState.removeFieldCallback(this.symbols[t])),i=this.textures[t]=n(s.X3DTexture2DNode,e),i&&(i.addInterest("set_loadState__",this,i,t),i._loadState.addFieldCallback(this.symbols[t],this.set_loadState__.bind(this,i,t))),this.set_loadState__(i,t)},set_loadState__:function(e,t){e?this.setLoadStateBit(e.checkLoadState(),e.getData(),t):this.setLoadStateBit(s.NOT_STARTED,null,t),this.setTextures()},setLoadStateBit:function(e,t,i){e===s.COMPLETE_STATE||t?this.loadStates|=1<<i:this.loadStates&=~(1<<i)},isComplete:function(){if(63!==this.loadStates)return!1;const e=this.textures,t=e[0].getWidth();for(const i of e){if(i.getWidth()!==t)return!1;if(i.getHeight()!==t)return!1}return!0},setTextures:function(){const e=this.getBrowser().getContext();if(e.bindTexture(this.getTarget(),this.getTexture()),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),this.isComplete()){const e=this.textures;for(let t=0;t<6;++t){const i=this.getBrowser().getContext(),r=e[t],n=r.getWidth(),s=r.getHeight(),o=r.getData();i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!r.getFlipY()),i.pixelStorei(i.UNPACK_ALIGNMENT,1),o instanceof Uint8Array?i.texImage2D(this.getTargets()[t],0,i.RGBA,n,s,!1,i.RGBA,i.UNSIGNED_BYTE,o):i.texImage2D(this.getTargets()[t],0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,o)}this.updateTextureProperties()}else this.clearTexture();this.set_transparent__()},set_transparent__:function(){const e=!1;if(this.isComplete())for(const t of this.textures)if(t._transparent.getValue()){e=!0;break}this.setTransparent(e)}}),o})),e("x_ite/Rendering/DependentRenderer",["x_ite/Base/X3DBaseNode","x_ite/Rendering/X3DRenderObject","x_ite/Rendering/TraverseType"],(function(e,t,i){"use strict";function r(i){e.call(this,i),t.call(this,i),this.renderObject=null}r.prototype=Object.assign(Object.create(e.prototype),t.prototype,{constructor:r,initialize:function(){e.prototype.initialize.call(this),t.prototype.initialize.call(this)},isIndependent:function(){return!1},setRenderer:function(e){this.renderObject=e},getBrowser:function(){return this.renderObject.getBrowser()},getLayer:function(){return this.renderObject.getLayer()},getBackground:function(){return this.renderObject.getBackground()},getFog:function(){return this.renderObject.getFog()},getNavigationInfo:function(){return this.renderObject.getNavigationInfo()},getViewpoint:function(){return this.renderObject.getViewpoint()},getLightContainer:function(){return this.renderObject.getLights()[this.lightIndex++]},render:function(e,r,n){switch(e){case i.COLLISION:case i.SHADOW:t.prototype.render.call(this,e,r,n);break;case i.DISPLAY:this.lightIndex=0,t.prototype.render.call(this,e,r,n);for(const e of this.renderObject.getLights())e.getModelViewMatrix().pop()}}});for(const e of Reflect.ownKeys(r.prototype))Object.defineProperty(r.prototype,e,{enumerable:!1});return r})),e("x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Rendering/DependentRenderer","x_ite/Rendering/TextureBuffer","x_ite/Base/X3DConstants","x_ite/Rendering/TraverseType","standard/Math/Geometry/Camera","standard/Math/Geometry/ViewVolume","standard/Math/Numbers/Rotation4","standard/Math/Numbers/Vector3","standard/Math/Numbers/Vector4","standard/Math/Numbers/Matrix4","standard/Math/Algorithm"],(function(e,t,i,r,n,s,o,a,u,h,d,g,p,x,l){"use strict";function c(e){r.call(this,e),this.addType(o.GeneratedCubeMapTexture),this.renderer=new n(e),this.projectionMatrix=new x,this.modelMatrix=new x,this.viewVolume=new h}return c.prototype=Object.assign(Object.create(r.prototype),{constructor:c,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOutput,"description",new e.SFString),new t(o.inputOutput,"update",new e.SFString("NONE")),new t(o.initializeOnly,"size",new e.SFInt32(128)),new t(o.initializeOnly,"textureProperties",new e.SFNode)]),getTypeName:function(){return"GeneratedCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){r.prototype.initialize.call(this),this.renderer.setup();let e=l.nextPowerOfTwo(this._size.getValue());if(e>0){e=l.nextPowerOfTwo(e);const t=this.getBrowser().getContext(),i=new Uint8Array(e*e*4);t.bindTexture(this.getTarget(),this.getTexture());for(const r of this.getTargets())t.texImage2D(r,0,t.RGBA,e,e,0,t.RGBA,t.UNSIGNED_BYTE,i);this.viewport=new p(0,0,e,e),this.frameBuffer=new s(this.getBrowser(),e,e)}},traverse:function(e,t){"NONE"!==this._update.getValue()&&this.frameBuffer&&t.isIndependent()&&(t.getGeneratedCubeMapTextures().push(this),this.modelMatrix.assign(t.getModelViewMatrix().get()).multRight(t.getCameraSpaceMatrix().get()))},renderTexture:function(){const e=[new d(g.zAxis,new g(0,0,-1)),new d(g.zAxis,new g(0,0,1)),new d(g.zAxis,new g(1,0,0)),new d(g.zAxis,new g(-1,0,0)),new d(g.zAxis,new g(0,-1,0)),new d(g.zAxis,new g(0,1,0))],t=[new g(-1,-1,1),new g(-1,-1,1),new g(-1,-1,1),new g(-1,-1,1),new g(1,1,1),new g(1,1,1)],i=new x;return function(r){this.renderer.setRenderer(r);const n=this.renderer,s=r.getBrowser(),o=r.getLayer(),h=s.getContext(),d=n.getBackground(),g=n.getNavigationInfo(),p=n.getViewpoint(),c=s.getHeadlight(),T=g._headlight.getValue(),_=g.getNearValue(),f=g.getFarValue(p),w=u.perspective(l.radians(90),_,f,1,1,this.projectionMatrix);this.setTransparent(d.getTransparent()),this.frameBuffer.bind(),n.getViewVolumes().push(this.viewVolume.set(w,this.viewport,this.viewport)),n.getProjectionMatrix().pushMatrix(w),h.bindTexture(this.getTarget(),this.getTexture()),h.pixelStorei(h.UNPACK_FLIP_Y_WEBGL,!1);for(let r=0;r<6;++r){h.clear(h.COLOR_BUFFER_BIT),n.getCameraSpaceMatrix().pushMatrix(this.modelMatrix),n.getCameraSpaceMatrix().rotate(e[r]),n.getCameraSpaceMatrix().scale(t[r]);try{n.getViewMatrix().pushMatrix(i.assign(n.getCameraSpaceMatrix().get()).inverse())}catch(e){console.error(e),n.getViewMatrix().pushMatrix(x.Identity)}n.getModelViewMatrix().pushMatrix(i),T&&(c.getModelViewMatrix().pushMatrix(i),c.getModelViewMatrix().multLeft(p.getCameraSpaceMatrix())),o.traverse(a.DISPLAY,n),T&&c.getModelViewMatrix().pop(),n.getModelViewMatrix().pop(),n.getCameraSpaceMatrix().pop(),n.getViewMatrix().pop();const s=this.frameBuffer.readPixels(),u=this.frameBuffer.getWidth(),d=this.frameBuffer.getHeight();h.bindTexture(this.getTarget(),this.getTexture()),h.texImage2D(this.getTargets()[r],0,h.RGBA,u,d,!1,h.RGBA,h.UNSIGNED_BYTE,s)}this.updateTextureProperties(),n.getProjectionMatrix().pop(),n.getViewVolumes().pop(),this.frameBuffer.unbind(),"NEXT_FRAME_ONLY"===this._update.getValue()&&(this._update="NONE")}}(),setShaderUniformsToChannel:function(){const e=new Float32Array(16);return function(t,i,n,s){r.prototype.setShaderUniformsToChannel.call(this,t,i,n,s),n===this.renderer&&t.uniformMatrix4fv(i.x3d_ModelViewMatrix,!1,e)}}()}),c})),e("x_ite/Components/CubeMapTexturing/ImageCubeMapTexture",["jquery","x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Components/Networking/X3DUrlObject","x_ite/Base/X3DConstants","standard/Math/Numbers/Vector2","standard/Math/Algorithm","x_ite/DEBUG"],(function(e,t,i,r,n,s,o,a,u,h){"use strict";const d=new Uint8Array([255,255,255,255]),g=[new a(1,1),new a(3,1),new a(0,1),new a(2,1),new a(1,0),new a(1,2)];function p(e){n.call(this,e),s.call(this,e),this.addType(o.ImageCubeMapTexture),this.urlStack=new t.MFString}return p.prototype=Object.assign(Object.create(n.prototype),s.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new r([new i(o.inputOutput,"metadata",new t.SFNode),new i(o.inputOutput,"description",new t.SFString),new i(o.inputOutput,"load",new t.SFBool(!0)),new i(o.inputOutput,"url",new t.MFString),new i(o.inputOutput,"autoRefresh",new t.SFTime),new i(o.inputOutput,"autoRefreshTimeLimit",new t.SFTime(3600)),new i(o.initializeOnly,"textureProperties",new t.SFNode)]),getTypeName:function(){return"ImageCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){n.prototype.initialize.call(this),s.prototype.initialize.call(this);const t=this.getBrowser().getContext();t.bindTexture(this.getTarget(),this.getTexture());for(let e=0;e<6;++e)t.texImage2D(this.getTargets()[e],0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,d);this.canvas=e("<canvas></canvas>"),this.image=e("<img></img>"),this.image.on("load",this.setImage.bind(this)),this.image.on("error",this.setError.bind(this)),this.image.bind("abort",this.setError.bind(this)),this.image[0].crossOrigin="Anonymous",this.requestImmediateLoad()},unloadNow:function(){this.clearTexture()},loadNow:function(){this.urlStack.setValue(this._url),this.loadNext()},loadNext:function(){if(0===this.urlStack.length)return this.clearTexture(),void this.setLoadState(o.FAILED_STATE);this.URL=new URL(this.urlStack.shift(),this.getExecutionContext().getWorldURL()),"data:"!==this.URL.protocol&&(this.getBrowser().getBrowserOptions().getCache()&&this.getCache()||this.URL.searchParams.set("_",Date.now())),this.image.attr("src",this.URL.href)},setError:function(){"data:"!==this.URL.protocol&&console.warn("Error loading image:",decodeURI(this.URL.href)),this.loadNext()},setImage:function(){h&&"data:"!==this.URL.protocol&&console.info("Done loading image cube map texture:",decodeURI(this.URL.href));try{const e=this.image[0],t=this.canvas[0],i=t.getContext("2d");let r=e.width,n=e.height,s=Math.floor(r/4),a=Math.floor(n/3);u.isPowerOfTwo(s)&&u.isPowerOfTwo(a)&&4*s===r&&3*a===n?(t.width=r,t.height=n,i.drawImage(e,0,0)):(s=u.nextPowerOfTwo(s),a=u.nextPowerOfTwo(a),r=4*s,n=3*a,t.width=r,t.height=n,i.drawImage(e,0,0,e.width,e.height,0,0,r,n));const h=this.getBrowser().getContext();let d=!0;h.bindTexture(this.getTarget(),this.getTexture()),h.pixelStorei(h.UNPACK_FLIP_Y_WEBGL,!1);for(let e=0;e<6;++e){const t=i.getImageData(g[e].x*s,g[e].y*a,s,a).data;if(d)for(let e=3;e<t.length;e+=4)if(255!==t[e]){d=!1;break}h.texImage2D(this.getTargets()[e],0,h.RGBA,s,a,!1,h.RGBA,h.UNSIGNED_BYTE,new Uint8Array(t.buffer))}this.updateTextureProperties(),this.setTransparent(!d),this.setLoadState(o.COMPLETE_STATE)}catch(e){console.log(e.message),this.setError()}}}),p})),e(t.getComponentUrl("cube-map-texturing"),["x_ite/Components","x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture","x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture","x_ite/Components/CubeMapTexturing/ImageCubeMapTexture","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode"],(function(e,t,i,r,n){"use strict";e.addComponent({name:"CubeMapTexturing",types:{ComposedCubeMapTexture:t,GeneratedCubeMapTexture:i,ImageCubeMapTexture:r},abstractTypes:{X3DEnvironmentTextureNode:n}})}))}();
1
+ !function(){const e=window[Symbol.for("X_ITE.X3D-6.1.0")],t=e.define,i=e.require;t("x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode",["x_ite/Components/Texturing/X3DSingleTextureNode","x_ite/Base/X3DConstants"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addType(t.X3DEnvironmentTextureNode);const r=this.getBrowser().getContext();this.target=r.TEXTURE_CUBE_MAP,this.targets=[r.TEXTURE_CUBE_MAP_POSITIVE_Z,r.TEXTURE_CUBE_MAP_NEGATIVE_Z,r.TEXTURE_CUBE_MAP_NEGATIVE_X,r.TEXTURE_CUBE_MAP_POSITIVE_X,r.TEXTURE_CUBE_MAP_POSITIVE_Y,r.TEXTURE_CUBE_MAP_NEGATIVE_Y]}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTarget:function(){return this.target},getTextureType:function(){return 4},getTextureTypeString:function(){return"CUBE"},getTargets:function(){return this.targets},clearTexture:function(){const e=new Uint8Array([255,255,255,255]);return function(){const t=this.getBrowser().getContext();t.bindTexture(this.getTarget(),this.getTexture());for(const i of this.getTargets())t.texImage2D(i,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,e)}}(),updateTextureProperties:function(){e.prototype.updateTextureProperties.call(this,this.target,this._textureProperties.getValue(),this.texturePropertiesNode,128,128,!1,!1,!1)},setShaderUniformsToChannel:function(e,t,i,r){const n=i.getBrowser().getTextureCubeUnit();e.activeTexture(e.TEXTURE0+n),e.bindTexture(e.TEXTURE_CUBE_MAP,this.getTexture()),e.uniform1i(r.textureType,4),e.uniform1i(r.textureCube,n)}}),i})),t("x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Base/X3DCast","x_ite/Base/X3DConstants"],(function(e,t,i,r,n,s){"use strict";function o(e){r.call(this,e),this.addType(s.ComposedCubeMapTexture),this.addAlias("front",this._frontTexture),this.addAlias("back",this._backTexture),this.addAlias("left",this._leftTexture),this.addAlias("right",this._rightTexture),this.addAlias("bottom",this._bottomTexture),this.addAlias("top",this._topTexture),this.textures=[null,null,null,null,null,null],this.symbols=[Symbol(),Symbol(),Symbol(),Symbol(),Symbol(),Symbol()],this.loadStates=0}return o.prototype=Object.assign(Object.create(r.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"description",new e.SFString),new t(s.inputOutput,"frontTexture",new e.SFNode),new t(s.inputOutput,"backTexture",new e.SFNode),new t(s.inputOutput,"leftTexture",new e.SFNode),new t(s.inputOutput,"rightTexture",new e.SFNode),new t(s.inputOutput,"bottomTexture",new e.SFNode),new t(s.inputOutput,"topTexture",new e.SFNode),new t(s.initializeOnly,"textureProperties",new e.SFNode)]),getTypeName:function(){return"ComposedCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){r.prototype.initialize.call(this),this.clearTexture(),this._frontTexture.addInterest("set_texture__",this,0),this._backTexture.addInterest("set_texture__",this,1),this._leftTexture.addInterest("set_texture__",this,2),this._rightTexture.addInterest("set_texture__",this,3),this._topTexture.addInterest("set_texture__",this,5),this._bottomTexture.addInterest("set_texture__",this,4),this.set_texture__(this._frontTexture,0),this.set_texture__(this._backTexture,1),this.set_texture__(this._leftTexture,2),this.set_texture__(this._rightTexture,3),this.set_texture__(this._topTexture,4),this.set_texture__(this._bottomTexture,5)},set_texture__:function(e,t){let i=this.textures[t];i&&(i.removeInterest("set_loadState__",this),i._loadState.removeFieldCallback(this.symbols[t])),i=this.textures[t]=n(s.X3DTexture2DNode,e),i&&(i.addInterest("set_loadState__",this,i,t),i._loadState.addFieldCallback(this.symbols[t],this.set_loadState__.bind(this,i,t))),this.set_loadState__(i,t)},set_loadState__:function(e,t){e?this.setLoadStateBit(e.checkLoadState(),e.getData(),t):this.setLoadStateBit(s.NOT_STARTED,null,t),this.setTextures()},setLoadStateBit:function(e,t,i){e===s.COMPLETE_STATE||t?this.loadStates|=1<<i:this.loadStates&=~(1<<i)},isComplete:function(){if(63!==this.loadStates)return!1;const e=this.textures,t=e[0].getWidth();for(const i of e){if(i.getWidth()!==t)return!1;if(i.getHeight()!==t)return!1}return!0},setTextures:function(){const e=this.getBrowser().getContext();if(e.bindTexture(this.getTarget(),this.getTexture()),this.isComplete()){const t=this.textures;for(let i=0;i<6;++i){const r=t[i],n=r.getWidth(),s=r.getHeight(),o=r.getData();e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!r.getFlipY()),o instanceof Uint8Array?e.texImage2D(this.getTargets()[i],0,e.RGBA,n,s,!1,e.RGBA,e.UNSIGNED_BYTE,o):e.texImage2D(this.getTargets()[i],0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,o)}e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),this.updateTextureProperties()}else this.clearTexture();this.set_transparent__()},set_transparent__:function(){const e=!1;if(this.isComplete())for(const t of this.textures)if(t._transparent.getValue()){e=!0;break}this.setTransparent(e)}}),o})),t("x_ite/Rendering/DependentRenderer",["x_ite/Base/X3DBaseNode","x_ite/Rendering/X3DRenderObject","x_ite/Rendering/TraverseType"],(function(e,t,i){"use strict";function r(i){e.call(this,i),t.call(this,i),this.renderObject=null}r.prototype=Object.assign(Object.create(e.prototype),t.prototype,{constructor:r,initialize:function(){e.prototype.initialize.call(this),t.prototype.initialize.call(this)},isIndependent:function(){return!1},setRenderer:function(e){this.renderObject=e},getBrowser:function(){return this.renderObject.getBrowser()},getLayer:function(){return this.renderObject.getLayer()},getBackground:function(){return this.renderObject.getBackground()},getFog:function(){return this.renderObject.getFog()},getNavigationInfo:function(){return this.renderObject.getNavigationInfo()},getViewpoint:function(){return this.renderObject.getViewpoint()},getLightContainer:function(){return this.renderObject.getLights()[this.lightIndex++]},render:function(e,r,n){switch(e){case i.COLLISION:case i.SHADOW:t.prototype.render.call(this,e,r,n);break;case i.DISPLAY:this.lightIndex=0,t.prototype.render.call(this,e,r,n);for(const e of this.renderObject.getLights())e.getModelViewMatrix().pop()}}});for(const e of Reflect.ownKeys(r.prototype))Object.defineProperty(r.prototype,e,{enumerable:!1});return r})),t("x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Rendering/DependentRenderer","x_ite/Rendering/TextureBuffer","x_ite/Base/X3DConstants","x_ite/Rendering/TraverseType","standard/Math/Geometry/Camera","standard/Math/Geometry/ViewVolume","standard/Math/Numbers/Rotation4","standard/Math/Numbers/Vector3","standard/Math/Numbers/Vector4","standard/Math/Numbers/Matrix4","standard/Math/Algorithm"],(function(e,t,i,r,n,s,o,a,u,h,d,g,p,x,l){"use strict";function c(e){r.call(this,e),this.addType(o.GeneratedCubeMapTexture),this.renderer=new n(e),this.projectionMatrix=new x,this.modelMatrix=new x,this.viewVolume=new h}return c.prototype=Object.assign(Object.create(r.prototype),{constructor:c,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOutput,"description",new e.SFString),new t(o.inputOutput,"update",new e.SFString("NONE")),new t(o.initializeOnly,"size",new e.SFInt32(128)),new t(o.initializeOnly,"textureProperties",new e.SFNode)]),getTypeName:function(){return"GeneratedCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){r.prototype.initialize.call(this),this.renderer.setup();let e=l.nextPowerOfTwo(this._size.getValue());if(e>0){e=l.nextPowerOfTwo(e);const t=this.getBrowser().getContext(),i=new Uint8Array(e*e*4);t.bindTexture(this.getTarget(),this.getTexture());for(const r of this.getTargets())t.texImage2D(r,0,t.RGBA,e,e,0,t.RGBA,t.UNSIGNED_BYTE,i);this.viewport=new p(0,0,e,e),this.frameBuffer=new s(this.getBrowser(),e,e)}},traverse:function(e,t){"NONE"!==this._update.getValue()&&this.frameBuffer&&t.isIndependent()&&(t.getGeneratedCubeMapTextures().push(this),this.modelMatrix.assign(t.getModelViewMatrix().get()).multRight(t.getCameraSpaceMatrix().get()))},renderTexture:function(){const e=[new d(g.zAxis,new g(0,0,-1)),new d(g.zAxis,new g(0,0,1)),new d(g.zAxis,new g(1,0,0)),new d(g.zAxis,new g(-1,0,0)),new d(g.zAxis,new g(0,-1,0)),new d(g.zAxis,new g(0,1,0))],t=[new g(-1,-1,1),new g(-1,-1,1),new g(-1,-1,1),new g(-1,-1,1),new g(1,1,1),new g(1,1,1)],i=new x;return function(r){this.renderer.setRenderer(r);const n=this.renderer,s=r.getBrowser(),o=r.getLayer(),h=s.getContext(),d=n.getBackground(),g=n.getNavigationInfo(),p=n.getViewpoint(),x=s.getHeadlight(),c=g._headlight.getValue(),T=g.getNearValue(),_=g.getFarValue(p),f=u.perspective(l.radians(90),T,_,1,1,this.projectionMatrix);this.setTransparent(d.getTransparent()),this.frameBuffer.bind(),n.getViewVolumes().push(this.viewVolume.set(f,this.viewport,this.viewport)),n.getProjectionMatrix().pushMatrix(f),h.bindTexture(this.getTarget(),this.getTexture());for(let r=0;r<6;++r){h.clear(h.COLOR_BUFFER_BIT),n.getCameraSpaceMatrix().pushMatrix(this.modelMatrix),n.getCameraSpaceMatrix().rotate(e[r]),n.getCameraSpaceMatrix().scale(t[r]),n.getViewMatrix().pushMatrix(i.assign(n.getCameraSpaceMatrix().get()).inverse()),n.getModelViewMatrix().pushMatrix(i),c&&(x.getModelViewMatrix().pushMatrix(i),x.getModelViewMatrix().multLeft(p.getCameraSpaceMatrix())),o.traverse(a.DISPLAY,n),c&&x.getModelViewMatrix().pop(),n.getModelViewMatrix().pop(),n.getCameraSpaceMatrix().pop(),n.getViewMatrix().pop();const s=this.frameBuffer.readPixels(),u=this.frameBuffer.getWidth(),d=this.frameBuffer.getHeight();h.bindTexture(this.getTarget(),this.getTexture()),h.texImage2D(this.getTargets()[r],0,h.RGBA,u,d,!1,h.RGBA,h.UNSIGNED_BYTE,s)}this.updateTextureProperties(),n.getProjectionMatrix().pop(),n.getViewVolumes().pop(),this.frameBuffer.unbind(),"NEXT_FRAME_ONLY"===this._update.getValue()&&(this._update="NONE")}}(),setShaderUniformsToChannel:function(){const e=new Float32Array(16);return function(t,i,n,s){r.prototype.setShaderUniformsToChannel.call(this,t,i,n,s),n===this.renderer&&t.uniformMatrix4fv(i.x3d_ModelViewMatrix,!1,e)}}()}),c})),t("x_ite/Components/CubeMapTexturing/ImageCubeMapTexture",["jquery","x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode","x_ite/Components/Networking/X3DUrlObject","x_ite/Base/X3DConstants","standard/Math/Numbers/Vector2","standard/Math/Algorithm","x_ite/DEBUG"],(function(e,t,i,r,n,s,o,a,u,h){"use strict";const d=new Uint8Array([255,255,255,255]),g=[new a(1,1),new a(3,1),new a(0,1),new a(2,1),new a(1,0),new a(1,2)];function p(e){n.call(this,e),s.call(this,e),this.addType(o.ImageCubeMapTexture),this.urlStack=new t.MFString}return p.prototype=Object.assign(Object.create(n.prototype),s.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new r([new i(o.inputOutput,"metadata",new t.SFNode),new i(o.inputOutput,"description",new t.SFString),new i(o.inputOutput,"load",new t.SFBool(!0)),new i(o.inputOutput,"url",new t.MFString),new i(o.inputOutput,"autoRefresh",new t.SFTime),new i(o.inputOutput,"autoRefreshTimeLimit",new t.SFTime(3600)),new i(o.initializeOnly,"textureProperties",new t.SFNode)]),getTypeName:function(){return"ImageCubeMapTexture"},getComponentName:function(){return"CubeMapTexturing"},getContainerField:function(){return"texture"},initialize:function(){n.prototype.initialize.call(this),s.prototype.initialize.call(this);const t=this.getBrowser().getContext();t.bindTexture(this.getTarget(),this.getTexture());for(let e=0;e<6;++e)t.texImage2D(this.getTargets()[e],0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,d);this.canvas=e("<canvas></canvas>"),this.image=e("<img></img>"),this.image.on("load",this.setImage.bind(this)),this.image.on("error",this.setError.bind(this)),this.image.bind("abort",this.setError.bind(this)),this.image[0].crossOrigin="Anonymous",this.requestImmediateLoad()},unloadNow:function(){this.clearTexture()},loadNow:function(){this.urlStack.setValue(this._url),this.loadNext()},loadNext:function(){if(0===this.urlStack.length)return this.clearTexture(),void this.setLoadState(o.FAILED_STATE);this.URL=new URL(this.urlStack.shift(),this.getExecutionContext().getWorldURL()),"data:"!==this.URL.protocol&&(this.getBrowser().getBrowserOptions().getCache()&&this.getCache()||this.URL.searchParams.set("_",Date.now())),this.image.attr("src",this.URL.href)},setError:function(){"data:"!==this.URL.protocol&&console.warn("Error loading image:",decodeURI(this.URL.href)),this.loadNext()},setImage:function(){h&&"data:"!==this.URL.protocol&&console.info("Done loading image cube map texture:",decodeURI(this.URL.href));try{const e=this.image[0],t=this.canvas[0],i=t.getContext("2d",{willReadFrequently:!0});let r=e.width,n=e.height,s=Math.floor(r/4),a=Math.floor(n/3);u.isPowerOfTwo(s)&&u.isPowerOfTwo(a)&&4*s===r&&3*a===n?(t.width=r,t.height=n,i.drawImage(e,0,0)):(s=u.nextPowerOfTwo(s),a=u.nextPowerOfTwo(a),r=4*s,n=3*a,t.width=r,t.height=n,i.drawImage(e,0,0,e.width,e.height,0,0,r,n));const h=this.getBrowser().getContext();let d=!0;h.bindTexture(this.getTarget(),this.getTexture());for(let e=0;e<6;++e){const t=i.getImageData(g[e].x*s,g[e].y*a,s,a).data;if(d)for(let e=3;e<t.length;e+=4)if(255!==t[e]){d=!1;break}h.texImage2D(this.getTargets()[e],0,h.RGBA,s,a,!1,h.RGBA,h.UNSIGNED_BYTE,new Uint8Array(t.buffer))}this.updateTextureProperties(),this.setTransparent(!d),this.setLoadState(o.COMPLETE_STATE)}catch(e){console.log(e.message),this.setError()}}}),p})),t(i.getComponentUrl("cube-map-texturing"),["x_ite/Components","x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture","x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture","x_ite/Components/CubeMapTexturing/ImageCubeMapTexture","x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode"],(function(e,t,i,r,n){"use strict";e.addComponent({name:"CubeMapTexturing",types:{ComposedCubeMapTexture:t,GeneratedCubeMapTexture:i,ImageCubeMapTexture:r},abstractTypes:{X3DEnvironmentTextureNode:n}})}))}();
@@ -4,8 +4,9 @@
4
4
  var module = { }, exports, process;
5
5
 
6
6
  const
7
- define = window [Symbol .for ("X_ITE.X3D-5.0.3")] .define,
8
- require = window [Symbol .for ("X_ITE.X3D-5.0.3")] .require;
7
+ X3D = window [Symbol .for ("X_ITE.X3D-6.1.0")],
8
+ define = X3D .define,
9
+ require = X3D .require;
9
10
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
10
11
  *******************************************************************************
11
12
  *
@@ -1 +1 @@
1
- !function(){const t=window[Symbol.for("X_ITE.X3D-5.0.3")].define,n=window[Symbol.for("X_ITE.X3D-5.0.3")].require;t("x_ite/Components/DIS/DISEntityManager",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(t,n,e,i,u){"use strict";function o(t){i.call(this,t),this.addType(u.DISEntityManager)}return o.prototype=Object.assign(Object.create(i.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(u.inputOutput,"metadata",new t.SFNode),new n(u.inputOutput,"address",new t.SFString("localhost")),new n(u.inputOutput,"applicationID",new t.SFInt32(1)),new n(u.inputOutput,"mapping",new t.MFNode),new n(u.inputOutput,"port",new t.SFInt32),new n(u.inputOutput,"siteID",new t.SFInt32),new n(u.outputOnly,"addedEntities",new t.MFNode),new n(u.outputOnly,"removedEntities",new t.MFNode)]),getTypeName:function(){return"DISEntityManager"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"}}),o})),t("x_ite/Components/DIS/DISEntityTypeMapping",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DInfoNode","x_ite/Components/Networking/X3DUrlObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.DISEntityTypeMapping)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"load",new t.SFBool(!0)),new n(o.inputOutput,"url",new t.MFString),new n(o.inputOutput,"autoRefresh",new t.SFTime),new n(o.inputOutput,"autoRefreshTimeLimit",new t.SFTime(3600)),new n(o.initializeOnly,"category",new t.SFInt32),new n(o.initializeOnly,"country",new t.SFInt32),new n(o.initializeOnly,"domain",new t.SFInt32),new n(o.initializeOnly,"extra",new t.SFInt32),new n(o.initializeOnly,"kind",new t.SFInt32),new n(o.initializeOnly,"specific",new t.SFInt32),new n(o.initializeOnly,"subcategory",new t.SFInt32)]),getTypeName:function(){return"DISEntityTypeMapping"},getComponentName:function(){return"DIS"},getContainerField:function(){return"mapping"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)},requestImmediateLoad:function(t=!0){},requestUnload:function(){},set_load__:function(){},set_url__:function(){}}),p})),t("x_ite/Components/DIS/EspduTransform",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Components/Core/X3DSensorNode","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.EspduTransform)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOnly,"addChildren",new t.MFNode),new n(o.inputOnly,"removeChildren",new t.MFNode),new n(o.inputOutput,"children",new t.MFNode),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOnly,"set_articulationParameterValue0",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue1",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue2",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue3",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue4",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue5",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue6",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue7",new t.SFFloat),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"articulationParameterCount",new t.SFInt32),new n(o.inputOutput,"articulationParameterDesignatorArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterChangeIndicatorArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterIdPartAttachedToArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterTypeArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterArray",new t.MFFloat),new n(o.inputOutput,"center",new t.SFVec3f),new n(o.inputOutput,"collisionType",new t.SFInt32),new n(o.inputOutput,"deadReckoning",new t.SFInt32),new n(o.inputOutput,"detonationLocation",new t.SFVec3f),new n(o.inputOutput,"detonationRelativeLocation",new t.SFVec3f),new n(o.inputOutput,"detonationResult",new t.SFInt32),new n(o.inputOutput,"entityCategory",new t.SFInt32),new n(o.inputOutput,"entityCountry",new t.SFInt32),new n(o.inputOutput,"entityDomain",new t.SFInt32),new n(o.inputOutput,"entityExtra",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"entityKind",new t.SFInt32),new n(o.inputOutput,"entitySpecific",new t.SFInt32),new n(o.inputOutput,"entitySubCategory",new t.SFInt32),new n(o.inputOutput,"eventApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"eventEntityID",new t.SFInt32),new n(o.inputOutput,"eventNumber",new t.SFInt32),new n(o.inputOutput,"eventSiteID",new t.SFInt32),new n(o.inputOutput,"fired1",new t.SFBool),new n(o.inputOutput,"fired2",new t.SFBool),new n(o.inputOutput,"fireMissionIndex",new t.SFInt32),new n(o.inputOutput,"firingRange",new t.SFFloat),new n(o.inputOutput,"firingRate",new t.SFInt32),new n(o.inputOutput,"forceID",new t.SFInt32),new n(o.inputOutput,"fuse",new t.SFInt32),new n(o.inputOutput,"linearVelocity",new t.SFVec3f),new n(o.inputOutput,"linearAcceleration",new t.SFVec3f),new n(o.inputOutput,"marking",new t.SFString),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"munitionApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"munitionEndPoint",new t.SFVec3f),new n(o.inputOutput,"munitionEntityID",new t.SFInt32),new n(o.inputOutput,"munitionQuantity",new t.SFInt32),new n(o.inputOutput,"munitionSiteID",new t.SFInt32),new n(o.inputOutput,"munitionStartPoint",new t.SFVec3f),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFTime(.1)),new n(o.inputOutput,"rotation",new t.SFRotation),new n(o.inputOutput,"scale",new t.SFVec3f(1,1,1)),new n(o.inputOutput,"scaleOrientation",new t.SFRotation),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"translation",new t.SFVec3f),new n(o.inputOutput,"warhead",new t.SFInt32),new n(o.inputOutput,"writeInterval",new t.SFTime(1)),new n(o.outputOnly,"articulationParameterValue0_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue1_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue2_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue3_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue4_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue5_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue6_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue7_changed",new t.SFFloat),new n(o.outputOnly,"collideTime",new t.SFTime),new n(o.outputOnly,"detonateTime",new t.SFTime),new n(o.outputOnly,"firedTime",new t.SFTime),new n(o.outputOnly,"isCollided",new t.SFBool),new n(o.outputOnly,"isDetonated",new t.SFBool),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime),new n(o.initializeOnly,"rtpHeaderExpected",new t.SFBool)]),getTypeName:function(){return"EspduTransform"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),t("x_ite/Components/DIS/ReceiverPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.ReceiverPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"receivedPower",new t.SFFloat),new n(o.inputOutput,"receiverState",new t.SFInt32),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"transmitterApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"transmitterEntityID",new t.SFInt32),new n(o.inputOutput,"transmitterRadioID",new t.SFInt32),new n(o.inputOutput,"transmitterSiteID",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"ReceiverPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),t("x_ite/Components/DIS/SignalPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.SignalPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"data",new t.MFInt32),new n(o.inputOutput,"dataLength",new t.SFInt32),new n(o.inputOutput,"encodingScheme",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"sampleRate",new t.SFInt32),new n(o.inputOutput,"samples",new t.SFInt32),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"tdlType",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"SignalPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),t("x_ite/Components/DIS/TransmitterPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.TransmitterPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"antennaLocation",new t.SFVec3f),new n(o.inputOutput,"antennaPatternLength",new t.SFInt32),new n(o.inputOutput,"antennaPatternType",new t.SFInt32),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"cryptoKeyID",new t.SFInt32),new n(o.inputOutput,"cryptoSystem",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"frequency",new t.SFInt32),new n(o.inputOutput,"inputSource",new t.SFInt32),new n(o.inputOutput,"lengthOfModulationParameters",new t.SFInt32),new n(o.inputOutput,"modulationTypeDetail",new t.SFInt32),new n(o.inputOutput,"modulationTypeMajor",new t.SFInt32),new n(o.inputOutput,"modulationTypeSpreadSpectrum",new t.SFInt32),new n(o.inputOutput,"modulationTypeSystem",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"power",new t.SFFloat),new n(o.inputOutput,"radioEntityTypeCategory",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeCountry",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeDomain",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeKind",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeNomenclature",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeNomenclatureVersion",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"relativeAntennaLocation",new t.SFVec3f),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"transmitFrequencyBandwidth",new t.SFFloat),new n(o.inputOutput,"transmitState",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"TransmitterPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),t(n.getComponentUrl("dis"),["x_ite/Components","x_ite/Components/DIS/DISEntityManager","x_ite/Components/DIS/DISEntityTypeMapping","x_ite/Components/DIS/EspduTransform","x_ite/Components/DIS/ReceiverPdu","x_ite/Components/DIS/SignalPdu","x_ite/Components/DIS/TransmitterPdu"],(function(t,n,e,i,u,o,p){"use strict";t.addComponent({name:"DIS",types:{DISEntityManager:n,DISEntityTypeMapping:e,EspduTransform:i,ReceiverPdu:u,SignalPdu:o,TransmitterPdu:p},abstractTypes:{}})}))}();
1
+ !function(){const t=window[Symbol.for("X_ITE.X3D-6.1.0")],n=t.define,e=t.require;n("x_ite/Components/DIS/DISEntityManager",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(t,n,e,i,u){"use strict";function o(t){i.call(this,t),this.addType(u.DISEntityManager)}return o.prototype=Object.assign(Object.create(i.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(u.inputOutput,"metadata",new t.SFNode),new n(u.inputOutput,"address",new t.SFString("localhost")),new n(u.inputOutput,"applicationID",new t.SFInt32(1)),new n(u.inputOutput,"mapping",new t.MFNode),new n(u.inputOutput,"port",new t.SFInt32),new n(u.inputOutput,"siteID",new t.SFInt32),new n(u.outputOnly,"addedEntities",new t.MFNode),new n(u.outputOnly,"removedEntities",new t.MFNode)]),getTypeName:function(){return"DISEntityManager"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"}}),o})),n("x_ite/Components/DIS/DISEntityTypeMapping",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DInfoNode","x_ite/Components/Networking/X3DUrlObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.DISEntityTypeMapping)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"load",new t.SFBool(!0)),new n(o.inputOutput,"url",new t.MFString),new n(o.inputOutput,"autoRefresh",new t.SFTime),new n(o.inputOutput,"autoRefreshTimeLimit",new t.SFTime(3600)),new n(o.initializeOnly,"category",new t.SFInt32),new n(o.initializeOnly,"country",new t.SFInt32),new n(o.initializeOnly,"domain",new t.SFInt32),new n(o.initializeOnly,"extra",new t.SFInt32),new n(o.initializeOnly,"kind",new t.SFInt32),new n(o.initializeOnly,"specific",new t.SFInt32),new n(o.initializeOnly,"subcategory",new t.SFInt32)]),getTypeName:function(){return"DISEntityTypeMapping"},getComponentName:function(){return"DIS"},getContainerField:function(){return"mapping"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)},requestImmediateLoad:function(t=!0){},requestUnload:function(){},set_load__:function(){},set_url__:function(){}}),p})),n("x_ite/Components/DIS/EspduTransform",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Grouping/X3DGroupingNode","x_ite/Components/Core/X3DSensorNode","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.EspduTransform)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOnly,"addChildren",new t.MFNode),new n(o.inputOnly,"removeChildren",new t.MFNode),new n(o.inputOutput,"children",new t.MFNode),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOnly,"set_articulationParameterValue0",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue1",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue2",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue3",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue4",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue5",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue6",new t.SFFloat),new n(o.inputOnly,"set_articulationParameterValue7",new t.SFFloat),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"articulationParameterCount",new t.SFInt32),new n(o.inputOutput,"articulationParameterDesignatorArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterChangeIndicatorArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterIdPartAttachedToArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterTypeArray",new t.MFInt32),new n(o.inputOutput,"articulationParameterArray",new t.MFFloat),new n(o.inputOutput,"center",new t.SFVec3f),new n(o.inputOutput,"collisionType",new t.SFInt32),new n(o.inputOutput,"deadReckoning",new t.SFInt32),new n(o.inputOutput,"detonationLocation",new t.SFVec3f),new n(o.inputOutput,"detonationRelativeLocation",new t.SFVec3f),new n(o.inputOutput,"detonationResult",new t.SFInt32),new n(o.inputOutput,"entityCategory",new t.SFInt32),new n(o.inputOutput,"entityCountry",new t.SFInt32),new n(o.inputOutput,"entityDomain",new t.SFInt32),new n(o.inputOutput,"entityExtra",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"entityKind",new t.SFInt32),new n(o.inputOutput,"entitySpecific",new t.SFInt32),new n(o.inputOutput,"entitySubCategory",new t.SFInt32),new n(o.inputOutput,"eventApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"eventEntityID",new t.SFInt32),new n(o.inputOutput,"eventNumber",new t.SFInt32),new n(o.inputOutput,"eventSiteID",new t.SFInt32),new n(o.inputOutput,"fired1",new t.SFBool),new n(o.inputOutput,"fired2",new t.SFBool),new n(o.inputOutput,"fireMissionIndex",new t.SFInt32),new n(o.inputOutput,"firingRange",new t.SFFloat),new n(o.inputOutput,"firingRate",new t.SFInt32),new n(o.inputOutput,"forceID",new t.SFInt32),new n(o.inputOutput,"fuse",new t.SFInt32),new n(o.inputOutput,"linearVelocity",new t.SFVec3f),new n(o.inputOutput,"linearAcceleration",new t.SFVec3f),new n(o.inputOutput,"marking",new t.SFString),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"munitionApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"munitionEndPoint",new t.SFVec3f),new n(o.inputOutput,"munitionEntityID",new t.SFInt32),new n(o.inputOutput,"munitionQuantity",new t.SFInt32),new n(o.inputOutput,"munitionSiteID",new t.SFInt32),new n(o.inputOutput,"munitionStartPoint",new t.SFVec3f),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFTime(.1)),new n(o.inputOutput,"rotation",new t.SFRotation),new n(o.inputOutput,"scale",new t.SFVec3f(1,1,1)),new n(o.inputOutput,"scaleOrientation",new t.SFRotation),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"translation",new t.SFVec3f),new n(o.inputOutput,"warhead",new t.SFInt32),new n(o.inputOutput,"writeInterval",new t.SFTime(1)),new n(o.outputOnly,"articulationParameterValue0_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue1_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue2_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue3_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue4_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue5_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue6_changed",new t.SFFloat),new n(o.outputOnly,"articulationParameterValue7_changed",new t.SFFloat),new n(o.outputOnly,"collideTime",new t.SFTime),new n(o.outputOnly,"detonateTime",new t.SFTime),new n(o.outputOnly,"firedTime",new t.SFTime),new n(o.outputOnly,"isCollided",new t.SFBool),new n(o.outputOnly,"isDetonated",new t.SFBool),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime),new n(o.initializeOnly,"rtpHeaderExpected",new t.SFBool)]),getTypeName:function(){return"EspduTransform"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),n("x_ite/Components/DIS/ReceiverPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.ReceiverPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"receivedPower",new t.SFFloat),new n(o.inputOutput,"receiverState",new t.SFInt32),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"transmitterApplicationID",new t.SFInt32(1)),new n(o.inputOutput,"transmitterEntityID",new t.SFInt32),new n(o.inputOutput,"transmitterRadioID",new t.SFInt32),new n(o.inputOutput,"transmitterSiteID",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"ReceiverPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),n("x_ite/Components/DIS/SignalPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.SignalPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"data",new t.MFInt32),new n(o.inputOutput,"dataLength",new t.SFInt32),new n(o.inputOutput,"encodingScheme",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"sampleRate",new t.SFInt32),new n(o.inputOutput,"samples",new t.SFInt32),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"tdlType",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"SignalPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),n("x_ite/Components/DIS/TransmitterPdu",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DSensorNode","x_ite/Components/Grouping/X3DBoundedObject","x_ite/Base/X3DConstants"],(function(t,n,e,i,u,o){"use strict";function p(t){i.call(this,t),u.call(this,t),this.addType(o.TransmitterPdu)}return p.prototype=Object.assign(Object.create(i.prototype),u.prototype,{constructor:p,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new e([new n(o.inputOutput,"metadata",new t.SFNode),new n(o.inputOutput,"visible",new t.SFBool(!0)),new n(o.inputOutput,"bboxDisplay",new t.SFBool),new n(o.initializeOnly,"bboxSize",new t.SFVec3f(-1,-1,-1)),new n(o.initializeOnly,"bboxCenter",new t.SFVec3f),new n(o.inputOutput,"enabled",new t.SFBool(!0)),new n(o.outputOnly,"isActive",new t.SFBool),new n(o.inputOutput,"address",new t.SFString("localhost")),new n(o.inputOutput,"antennaLocation",new t.SFVec3f),new n(o.inputOutput,"antennaPatternLength",new t.SFInt32),new n(o.inputOutput,"antennaPatternType",new t.SFInt32),new n(o.inputOutput,"applicationID",new t.SFInt32(1)),new n(o.inputOutput,"cryptoKeyID",new t.SFInt32),new n(o.inputOutput,"cryptoSystem",new t.SFInt32),new n(o.inputOutput,"entityID",new t.SFInt32),new n(o.inputOutput,"frequency",new t.SFInt32),new n(o.inputOutput,"inputSource",new t.SFInt32),new n(o.inputOutput,"lengthOfModulationParameters",new t.SFInt32),new n(o.inputOutput,"modulationTypeDetail",new t.SFInt32),new n(o.inputOutput,"modulationTypeMajor",new t.SFInt32),new n(o.inputOutput,"modulationTypeSpreadSpectrum",new t.SFInt32),new n(o.inputOutput,"modulationTypeSystem",new t.SFInt32),new n(o.inputOutput,"multicastRelayHost",new t.SFString),new n(o.inputOutput,"multicastRelayPort",new t.SFInt32),new n(o.inputOutput,"networkMode",new t.SFString("standAlone")),new n(o.inputOutput,"port",new t.SFInt32),new n(o.inputOutput,"power",new t.SFFloat),new n(o.inputOutput,"radioEntityTypeCategory",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeCountry",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeDomain",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeKind",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeNomenclature",new t.SFInt32),new n(o.inputOutput,"radioEntityTypeNomenclatureVersion",new t.SFInt32),new n(o.inputOutput,"radioID",new t.SFInt32),new n(o.inputOutput,"readInterval",new t.SFFloat(.1)),new n(o.inputOutput,"relativeAntennaLocation",new t.SFVec3f),new n(o.inputOutput,"rtpHeaderExpected",new t.SFBool),new n(o.inputOutput,"siteID",new t.SFInt32),new n(o.inputOutput,"transmitFrequencyBandwidth",new t.SFFloat),new n(o.inputOutput,"transmitState",new t.SFInt32),new n(o.inputOutput,"whichGeometry",new t.SFInt32(1)),new n(o.inputOutput,"writeInterval",new t.SFFloat(1)),new n(o.outputOnly,"isNetworkReader",new t.SFBool),new n(o.outputOnly,"isNetworkWriter",new t.SFBool),new n(o.outputOnly,"isRtpHeaderHeard",new t.SFBool),new n(o.outputOnly,"isStandAlone",new t.SFBool),new n(o.outputOnly,"timestamp",new t.SFTime)]),getTypeName:function(){return"TransmitterPdu"},getComponentName:function(){return"DIS"},getContainerField:function(){return"children"},initialize:function(){i.prototype.initialize.call(this),u.prototype.initialize.call(this)}}),p})),n(e.getComponentUrl("dis"),["x_ite/Components","x_ite/Components/DIS/DISEntityManager","x_ite/Components/DIS/DISEntityTypeMapping","x_ite/Components/DIS/EspduTransform","x_ite/Components/DIS/ReceiverPdu","x_ite/Components/DIS/SignalPdu","x_ite/Components/DIS/TransmitterPdu"],(function(t,n,e,i,u,o,p){"use strict";t.addComponent({name:"DIS",types:{DISEntityManager:n,DISEntityTypeMapping:e,EspduTransform:i,ReceiverPdu:u,SignalPdu:o,TransmitterPdu:p},abstractTypes:{}})}))}();
@@ -4,8 +4,9 @@
4
4
  var module = { }, exports, process;
5
5
 
6
6
  const
7
- define = window [Symbol .for ("X_ITE.X3D-5.0.3")] .define,
8
- require = window [Symbol .for ("X_ITE.X3D-5.0.3")] .require;
7
+ X3D = window [Symbol .for ("X_ITE.X3D-6.1.0")],
8
+ define = X3D .define,
9
+ require = X3D .require;
9
10
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
10
11
  *******************************************************************************
11
12
  *
@@ -223,7 +224,7 @@ function (X3DChildNode,
223
224
 
224
225
  else
225
226
  {
226
- const index = Algorithm .upperBound (key, 0, length, fraction, Algorithm .less);
227
+ const index = Algorithm .upperBound (key, 0, length, fraction);
227
228
 
228
229
  i = index - 1;
229
230
  }
@@ -1 +1 @@
1
- !function(){const e=window[Symbol.for("X_ITE.X3D-5.0.3")].define,t=window[Symbol.for("X_ITE.X3D-5.0.3")].require;e("x_ite/Components/EventUtilities/BooleanFilter",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanFilter)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.outputOnly,"inputTrue",new e.SFBool),new t(o.outputOnly,"inputFalse",new e.SFBool),new t(o.outputOnly,"inputNegate",new e.SFBool)]),getTypeName:function(){return"BooleanFilter"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){const e=this._set_boolean.getValue();e?this._inputTrue=!0:this._inputFalse=!1,this._inputNegate=!e}}),s})),e("x_ite/Components/EventUtilities/X3DSequencerNode",["x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants","standard/Math/Algorithm"],(function(e,t,i){"use strict";function n(i){e.call(this,i),this.addType(t.X3DSequencerNode),this.index=-1}return n.prototype=Object.assign(Object.create(e.prototype),{constructor:n,initialize:function(){e.prototype.initialize.call(this),this._set_fraction.addInterest("set_fraction__",this),this._previous.addInterest("set_previous__",this),this._next.addInterest("set_next__",this),this._key.addInterest("set_index__",this)},set_fraction__:function(){const e=this._set_fraction.getValue(),t=this._key,n=t.length;if(0===n)return;let o=0;if(1===n||e<=t[0])o=0;else if(e>=t[n-1])o=this.getSize()-1;else{o=i.upperBound(t,0,n,e,i.less)-1}o!==this.index&&o<this.getSize()&&this.sequence(this.index=o)},set_previous__:function(){this._previous.getValue()&&(this.index<=0?this.index=this.getSize()-1:--this.index,this.index<this.getSize()&&this.sequence(this.index))},set_next__:function(){this._next.getValue()&&(this.index>=this.getSize()-1?this.index=0:++this.index,this.index<this.getSize()&&this.sequence(this.index))},set_index__:function(){this.index=-1}}),n})),e("x_ite/Components/EventUtilities/BooleanSequencer",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanSequencer)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOnly,"previous",new e.SFBool),new t(o.inputOnly,"next",new e.SFBool),new t(o.inputOutput,"key",new e.MFFloat),new t(o.inputOutput,"keyValue",new e.MFBool),new t(o.outputOnly,"value_changed",new e.SFBool)]),getTypeName:function(){return"BooleanSequencer"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._keyValue.addInterest("set_index__",this)},getSize:function(){return this._keyValue.length},sequence:function(e){this._value_changed=this._keyValue[e]}}),s})),e("x_ite/Components/EventUtilities/BooleanToggle",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanToggle)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.inputOutput,"toggle",new e.SFBool)]),getTypeName:function(){return"BooleanToggle"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._set_boolean.getValue()&&(this._toggle=!this._toggle.getValue())}}),s})),e("x_ite/Components/EventUtilities/X3DTriggerNode",["x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addType(t.X3DTriggerNode)}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i}),i})),e("x_ite/Components/EventUtilities/BooleanTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_triggerTime",new e.SFTime),new t(o.outputOnly,"triggerTrue",new e.SFBool)]),getTypeName:function(){return"BooleanTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_triggerTime.addInterest("set_triggerTime__",this)},set_triggerTime__:function(){this._triggerTrue=!0}}),s})),e("x_ite/Components/EventUtilities/IntegerSequencer",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.IntegerSequencer)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOnly,"previous",new e.SFBool),new t(o.inputOnly,"next",new e.SFBool),new t(o.inputOutput,"key",new e.MFFloat),new t(o.inputOutput,"keyValue",new e.MFInt32),new t(o.outputOnly,"value_changed",new e.SFInt32)]),getTypeName:function(){return"IntegerSequencer"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._keyValue.addInterest("set_index__",this)},getSize:function(){return this._keyValue.length},sequence:function(e){this._value_changed=this._keyValue[e]}}),s})),e("x_ite/Components/EventUtilities/IntegerTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.IntegerTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.inputOutput,"integerKey",new e.SFInt32(-1)),new t(o.outputOnly,"triggerValue",new e.SFInt32)]),getTypeName:function(){return"IntegerTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._triggerValue=this._integerKey}}),s})),e("x_ite/Components/EventUtilities/TimeTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.TimeTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.outputOnly,"triggerTime",new e.SFTime)]),getTypeName:function(){return"TimeTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._triggerTime=this.getBrowser().getCurrentTime()}}),s})),e(t.getComponentUrl("event-utilities"),["x_ite/Components","x_ite/Components/EventUtilities/BooleanFilter","x_ite/Components/EventUtilities/BooleanSequencer","x_ite/Components/EventUtilities/BooleanToggle","x_ite/Components/EventUtilities/BooleanTrigger","x_ite/Components/EventUtilities/IntegerSequencer","x_ite/Components/EventUtilities/IntegerTrigger","x_ite/Components/EventUtilities/TimeTrigger","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Components/EventUtilities/X3DTriggerNode"],(function(e,t,i,n,o,s,r,l,a,u){"use strict";e.addComponent({name:"EventUtilities",types:{BooleanFilter:t,BooleanSequencer:i,BooleanToggle:n,BooleanTrigger:o,IntegerSequencer:s,IntegerTrigger:r,TimeTrigger:l},abstractTypes:{X3DSequencerNode:a,X3DTriggerNode:u}})}))}();
1
+ !function(){const e=window[Symbol.for("X_ITE.X3D-6.1.0")],t=e.define,i=e.require;t("x_ite/Components/EventUtilities/BooleanFilter",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanFilter)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.outputOnly,"inputTrue",new e.SFBool),new t(o.outputOnly,"inputFalse",new e.SFBool),new t(o.outputOnly,"inputNegate",new e.SFBool)]),getTypeName:function(){return"BooleanFilter"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){const e=this._set_boolean.getValue();e?this._inputTrue=!0:this._inputFalse=!1,this._inputNegate=!e}}),s})),t("x_ite/Components/EventUtilities/X3DSequencerNode",["x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants","standard/Math/Algorithm"],(function(e,t,i){"use strict";function n(i){e.call(this,i),this.addType(t.X3DSequencerNode),this.index=-1}return n.prototype=Object.assign(Object.create(e.prototype),{constructor:n,initialize:function(){e.prototype.initialize.call(this),this._set_fraction.addInterest("set_fraction__",this),this._previous.addInterest("set_previous__",this),this._next.addInterest("set_next__",this),this._key.addInterest("set_index__",this)},set_fraction__:function(){const e=this._set_fraction.getValue(),t=this._key,n=t.length;if(0===n)return;let o=0;if(1===n||e<=t[0])o=0;else if(e>=t[n-1])o=this.getSize()-1;else{o=i.upperBound(t,0,n,e)-1}o!==this.index&&o<this.getSize()&&this.sequence(this.index=o)},set_previous__:function(){this._previous.getValue()&&(this.index<=0?this.index=this.getSize()-1:--this.index,this.index<this.getSize()&&this.sequence(this.index))},set_next__:function(){this._next.getValue()&&(this.index>=this.getSize()-1?this.index=0:++this.index,this.index<this.getSize()&&this.sequence(this.index))},set_index__:function(){this.index=-1}}),n})),t("x_ite/Components/EventUtilities/BooleanSequencer",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanSequencer)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOnly,"previous",new e.SFBool),new t(o.inputOnly,"next",new e.SFBool),new t(o.inputOutput,"key",new e.MFFloat),new t(o.inputOutput,"keyValue",new e.MFBool),new t(o.outputOnly,"value_changed",new e.SFBool)]),getTypeName:function(){return"BooleanSequencer"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._keyValue.addInterest("set_index__",this)},getSize:function(){return this._keyValue.length},sequence:function(e){this._value_changed=this._keyValue[e]}}),s})),t("x_ite/Components/EventUtilities/BooleanToggle",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanToggle)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.inputOutput,"toggle",new e.SFBool)]),getTypeName:function(){return"BooleanToggle"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._set_boolean.getValue()&&(this._toggle=!this._toggle.getValue())}}),s})),t("x_ite/Components/EventUtilities/X3DTriggerNode",["x_ite/Components/Core/X3DChildNode","x_ite/Base/X3DConstants"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addType(t.X3DTriggerNode)}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i}),i})),t("x_ite/Components/EventUtilities/BooleanTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.BooleanTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_triggerTime",new e.SFTime),new t(o.outputOnly,"triggerTrue",new e.SFBool)]),getTypeName:function(){return"BooleanTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_triggerTime.addInterest("set_triggerTime__",this)},set_triggerTime__:function(){this._triggerTrue=!0}}),s})),t("x_ite/Components/EventUtilities/IntegerSequencer",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.IntegerSequencer)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_fraction",new e.SFFloat),new t(o.inputOnly,"previous",new e.SFBool),new t(o.inputOnly,"next",new e.SFBool),new t(o.inputOutput,"key",new e.MFFloat),new t(o.inputOutput,"keyValue",new e.MFInt32),new t(o.outputOnly,"value_changed",new e.SFInt32)]),getTypeName:function(){return"IntegerSequencer"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._keyValue.addInterest("set_index__",this)},getSize:function(){return this._keyValue.length},sequence:function(e){this._value_changed=this._keyValue[e]}}),s})),t("x_ite/Components/EventUtilities/IntegerTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.IntegerTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.inputOutput,"integerKey",new e.SFInt32(-1)),new t(o.outputOnly,"triggerValue",new e.SFInt32)]),getTypeName:function(){return"IntegerTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._triggerValue=this._integerKey}}),s})),t("x_ite/Components/EventUtilities/TimeTrigger",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/EventUtilities/X3DTriggerNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,o){"use strict";function s(e){n.call(this,e),this.addType(o.TimeTrigger)}return s.prototype=Object.assign(Object.create(n.prototype),{constructor:s,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.inputOnly,"set_boolean",new e.SFBool),new t(o.outputOnly,"triggerTime",new e.SFTime)]),getTypeName:function(){return"TimeTrigger"},getComponentName:function(){return"EventUtilities"},getContainerField:function(){return"children"},initialize:function(){n.prototype.initialize.call(this),this._set_boolean.addInterest("set_boolean__",this)},set_boolean__:function(){this._triggerTime=this.getBrowser().getCurrentTime()}}),s})),t(i.getComponentUrl("event-utilities"),["x_ite/Components","x_ite/Components/EventUtilities/BooleanFilter","x_ite/Components/EventUtilities/BooleanSequencer","x_ite/Components/EventUtilities/BooleanToggle","x_ite/Components/EventUtilities/BooleanTrigger","x_ite/Components/EventUtilities/IntegerSequencer","x_ite/Components/EventUtilities/IntegerTrigger","x_ite/Components/EventUtilities/TimeTrigger","x_ite/Components/EventUtilities/X3DSequencerNode","x_ite/Components/EventUtilities/X3DTriggerNode"],(function(e,t,i,n,o,s,r,l,a,u){"use strict";e.addComponent({name:"EventUtilities",types:{BooleanFilter:t,BooleanSequencer:i,BooleanToggle:n,BooleanTrigger:o,IntegerSequencer:s,IntegerTrigger:r,TimeTrigger:l},abstractTypes:{X3DSequencerNode:a,X3DTriggerNode:u}})}))}();
@@ -4,8 +4,9 @@
4
4
  var module = { }, exports, process;
5
5
 
6
6
  const
7
- define = window [Symbol .for ("X_ITE.X3D-5.0.3")] .define,
8
- require = window [Symbol .for ("X_ITE.X3D-5.0.3")] .require;
7
+ X3D = window [Symbol .for ("X_ITE.X3D-6.1.0")],
8
+ define = X3D .define,
9
+ require = X3D .require;
9
10
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
10
11
  *******************************************************************************
11
12
  *
@@ -449,6 +450,7 @@ function (X3DBaseNode,
449
450
  // Circle
450
451
 
451
452
  circleVertices .push (point1 .real, point1 .imag, 0, 1);
453
+ circleVertices .push (point2 .real, point2 .imag, 0, 1);
452
454
 
453
455
  // Disk
454
456
 
@@ -675,7 +677,7 @@ function (Arc2DOptions,
675
677
  {
676
678
  initialize: function ()
677
679
  {
678
- this .setGeometry2DPrimitiveQuality (this .getBrowserOptions () .getPrimitiveQuality ());
680
+ this .setPrimitiveQuality2D (this .getBrowserOptions () .getPrimitiveQuality ());
679
681
  },
680
682
  getArc2DOptions: function ()
681
683
  {
@@ -697,7 +699,7 @@ function (Arc2DOptions,
697
699
  {
698
700
  return getOptionNode .call (this, "getRectangle2DOptions", Rectangle2DOptions);
699
701
  },
700
- setGeometry2DPrimitiveQuality: function (primitiveQuality)
702
+ setPrimitiveQuality2D: function (primitiveQuality)
701
703
  {
702
704
  const
703
705
  arc = this .getArc2DOptions (),
@@ -1323,6 +1325,7 @@ define ('x_ite/Components/Geometry2D/Disk2D',[
1323
1325
  "x_ite/Base/FieldDefinitionArray",
1324
1326
  "x_ite/Components/Rendering/X3DGeometryNode",
1325
1327
  "x_ite/Components/Rendering/X3DLineGeometryNode",
1328
+ "x_ite/Components/Rendering/X3DPointGeometryNode",
1326
1329
  "x_ite/Base/X3DConstants",
1327
1330
  ],
1328
1331
  function (Fields,
@@ -1330,6 +1333,7 @@ function (Fields,
1330
1333
  FieldDefinitionArray,
1331
1334
  X3DGeometryNode,
1332
1335
  X3DLineGeometryNode,
1336
+ X3DPointGeometryNode,
1333
1337
  X3DConstants)
1334
1338
  {
1335
1339
  "use strict";
@@ -1345,7 +1349,6 @@ function (Fields,
1345
1349
  }
1346
1350
 
1347
1351
  Disk2D .prototype = Object .assign (Object .create (X3DGeometryNode .prototype),
1348
- //X3DLineGeometryNode .prototype, // Considered X3DLineGeometryNode.
1349
1352
  {
1350
1353
  constructor: Disk2D,
1351
1354
  [Symbol .for ("X_ITE.X3DBaseNode.fieldDefinitions")]: new FieldDefinitionArray ([
@@ -1382,7 +1385,9 @@ function (Fields,
1382
1385
  build: function ()
1383
1386
  {
1384
1387
  const
1385
- options = this .getBrowser () .getDisk2DOptions (),
1388
+ browser = this .getBrowser (),
1389
+ gl = browser .getContext (),
1390
+ options = browser .getDisk2DOptions (),
1386
1391
  innerRadius = Math .min (Math .abs (this ._innerRadius .getValue ()), Math .abs (this ._outerRadius .getValue ())),
1387
1392
  outerRadius = Math .max (Math .abs (this ._innerRadius .getValue ()), Math .abs (this ._outerRadius .getValue ()));
1388
1393
 
@@ -1394,8 +1399,15 @@ function (Fields,
1394
1399
 
1395
1400
  if (outerRadius === 0)
1396
1401
  {
1397
- // vertexArray .push (0, 0, 0, 1);
1398
- // this .setGeometryType (0);
1402
+ vertexArray .push (0, 0, 0, 1);
1403
+
1404
+ this .getMin () .set (0, 0, 0);
1405
+ this .getMax () .set (0, 0, 0);
1406
+
1407
+ this .setGeometryType (0);
1408
+ this .setPrimitiveMode (gl .POINTS);
1409
+ this .setTransparent (true);
1410
+ this .setBase (X3DPointGeometryNode);
1399
1411
  return;
1400
1412
  }
1401
1413
 
@@ -1417,6 +1429,9 @@ function (Fields,
1417
1429
  this .getMax () .set ( outerRadius, outerRadius, 0);
1418
1430
 
1419
1431
  this .setGeometryType (1);
1432
+ this .setPrimitiveMode (gl .LINES);
1433
+ this .setTransparent (false);
1434
+ this .setBase (X3DLineGeometryNode);
1420
1435
  return;
1421
1436
  }
1422
1437
 
@@ -1445,7 +1460,10 @@ function (Fields,
1445
1460
  this .getMax () .set ( outerRadius, outerRadius, 0);
1446
1461
 
1447
1462
  this .setGeometryType (2);
1463
+ this .setPrimitiveMode (gl .TRIANGLES);
1464
+ this .setTransparent (false);
1448
1465
  this .setSolid (this ._solid .getValue ());
1466
+ this .setBase (X3DGeometryNode);
1449
1467
  return;
1450
1468
  }
1451
1469
 
@@ -1488,52 +1506,20 @@ function (Fields,
1488
1506
  this .getMax () .set ( outerRadius, outerRadius, 0);
1489
1507
 
1490
1508
  this .setGeometryType (2);
1509
+ this .setPrimitiveMode (gl .TRIANGLES);
1510
+ this .setTransparent (false);
1491
1511
  this .setSolid (this ._solid .getValue ());
1512
+ this .setBase (X3DGeometryNode);
1492
1513
  },
1493
- intersectsLine: function (line, clipPlanes, modelViewMatrix, intersections)
1494
- {
1495
- if (this .getGeometryType () < 2)
1496
- {
1497
- return X3DLineGeometryNode .prototype .intersectsLine .call (this, line, clipPlanes, modelViewMatrix, intersections);
1498
- }
1499
- else
1500
- {
1501
- return X3DGeometryNode .prototype .intersectsLine .call (this, line, clipPlanes, modelViewMatrix, intersections);
1502
- }
1503
- },
1504
- intersectsBox: function (box, clipPlanes, modelViewMatrix)
1505
- {
1506
- if (this .getGeometryType () < 2)
1507
- {
1508
- return X3DLineGeometryNode .prototype .intersectsBox .call (this, box, clipPlanes, modelViewMatrix);
1509
- }
1510
- else
1511
- {
1512
- return X3DGeometryNode .prototype .intersectsBox .call (this, box, clipPlanes, modelViewMatrix);
1513
- }
1514
- },
1515
- display: function (gl, context)
1514
+ setBase: function (base)
1516
1515
  {
1517
- if (this .getGeometryType () < 2)
1518
- {
1519
- return X3DLineGeometryNode .prototype .display .call (this, gl, context);
1520
- }
1521
- else
1522
- {
1523
- return X3DGeometryNode .prototype .display .call (this, gl, context);
1524
- }
1516
+ this .intersectsLine = base .prototype .intersectsLine;
1517
+ this .intersectsBox = base .prototype .intersectsBox;
1518
+ this .display = base .prototype .display;
1519
+ this .displayParticles = base .prototype .displayParticles;
1525
1520
  },
1526
- displayParticles: function (gl, context, particles, numParticles)
1527
- {
1528
- if (this .getGeometryType () < 2)
1529
- {
1530
- return X3DLineGeometryNode .prototype .displayParticles .call (this, gl, context, particles, numParticles);
1531
- }
1532
- else
1533
- {
1534
- return X3DGeometryNode .prototype .displayParticles .call (this, gl, context, particles, numParticles);
1535
- }
1536
- }
1521
+ setRenderFunctions: function ()
1522
+ { },
1537
1523
  });
1538
1524
 
1539
1525
  return Disk2D;
@@ -2038,7 +2024,7 @@ function (Fields,
2038
2024
  texCoordArray .shrinkToFit ();
2039
2025
  }
2040
2026
 
2041
- return texCoordArray;
2027
+ this .getMultiTexCoords () .push (texCoordArray);
2042
2028
  },
2043
2029
  });
2044
2030
 
@@ -2134,7 +2120,7 @@ function (Components,
2134
2120
  abstractTypes:
2135
2121
  {
2136
2122
  },
2137
- browser: X3DGeometry2DContext,
2123
+ context: X3DGeometry2DContext,
2138
2124
  });
2139
2125
  });
2140
2126
 
@@ -1 +1 @@
1
- !function(){const e=window[Symbol.for("X_ITE.X3D-5.0.3")].define,t=window[Symbol.for("X_ITE.X3D-5.0.3")].require;e("x_ite/Browser/Geometry2D/Arc2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addChildObjects("dimension",new t.SFInt32(40))}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTypeName:function(){return"ArcClose2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"arcClose2DOptions"}}),i})),e("x_ite/Browser/Geometry2D/ArcClose2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addChildObjects("dimension",new t.SFInt32(40))}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTypeName:function(){return"Arc2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"arc2DOptions"}}),i})),e("x_ite/Browser/Geometry2D/Circle2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields","x_ite/Components/Rendering/X3DGeometryNode","standard/Math/Numbers/Complex"],(function(e,t,i,n){"use strict";function s(n){e.call(this,n),this.addChildObjects("dimension",new t.SFInt32(40)),this.vertices=i.createArray()}return s.prototype=Object.assign(Object.create(e.prototype),{constructor:s,getTypeName:function(){return"Circle2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"circle2DOptions"},initialize:function(){this.addInterest("build",this),this.build()},getVertices:function(){return this.vertices},build:function(){const e=this._dimension.getValue(),t=2*Math.PI/e,i=this.vertices;i.length=0;for(let s=0;s<e;++s){const e=n.Polar(1,t*s),o=n.Polar(1,t*(s+1));i.push(e.real,e.imag,0,1),i.push(o.real,o.imag,0,1)}i.shrinkToFit()}}),s})),e("x_ite/Browser/Geometry2D/Disk2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields","x_ite/Components/Rendering/X3DGeometryNode","standard/Math/Numbers/Complex","standard/Math/Numbers/Vector3"],(function(e,t,i,n,s){"use strict";function o(n){e.call(this,n),this.addChildObjects("dimension",new t.SFInt32(40)),this.circleVertices=i.createArray(),this.diskTexCoords=i.createArray(),this.diskNormals=i.createArray(),this.diskVertices=i.createArray()}return o.prototype=Object.assign(Object.create(e.prototype),{constructor:o,getTypeName:function(){return"Disk2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"circle2DOptions"},initialize:function(){this.addInterest("build",this),this.build()},getCircleVertices:function(){return this.circleVertices},getDiskTexCoords:function(){return this.diskTexCoords},getDiskNormals:function(){return this.diskNormals},getDiskVertices:function(){return this.diskVertices},build:function(){const e=new n(.5,.5),t=new n(0,0),i=new n(0,0),s=new n(0,0),o=new n(0,0);return function(){const n=this._dimension.getValue(),r=2*Math.PI/n,a=this.circleVertices,l=this.diskTexCoords,c=this.diskNormals,u=this.diskVertices;a.length=0,l.length=0,c.length=0,u.length=0;for(let g=0;g<n;++g){const n=r*g,h=r*(g+1);t.setPolar(.5,n).add(e),i.setPolar(.5,h).add(e),s.setPolar(1,n),o.setPolar(1,h),a.push(s.real,s.imag,0,1),l.push(.5,.5,0,1,t.real,t.imag,0,1,i.real,i.imag,0,1),c.push(0,0,1,0,0,1,0,0,1),u.push(0,0,0,1,s.real,s.imag,0,1,o.real,o.imag,0,1)}a.shrinkToFit(),l.shrinkToFit(),c.shrinkToFit(),u.shrinkToFit()}}()}),o})),e("x_ite/Browser/Geometry2D/Rectangle2DOptions",["x_ite/Fields","x_ite/Base/X3DBaseNode","x_ite/Components/Geometry3D/IndexedFaceSet","x_ite/Components/Rendering/Coordinate","x_ite/Components/Texturing/TextureCoordinate"],(function(e,t,i,n,s){"use strict";function o(e){t.call(this,e)}return o.prototype=Object.assign(Object.create(t.prototype),{constructor:o,getTypeName:function(){return"Rectangle2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"rectangle2DOptions"},initialize:function(){t.prototype.initialize.call(this)},getGeometry:function(){if(this.geometry)return this.geometry;this.geometry=new i(this.getExecutionContext()),this.geometry._texCoord=new s(this.getExecutionContext()),this.geometry._coord=new n(this.getExecutionContext());const t=this.geometry,o=this.geometry._texCoord.getValue(),r=this.geometry._coord.getValue();return t._texCoordIndex=new e.MFInt32(0,1,2,3,-1),t._coordIndex=new e.MFInt32(0,1,2,3,-1),o._point=new e.MFVec2f(new e.SFVec2f(1,1),new e.SFVec2f(0,1),new e.SFVec2f(0,0),new e.SFVec2f(1,0)),r._point=new e.MFVec3f(new e.SFVec3f(1,1,0),new e.SFVec3f(-1,1,0),new e.SFVec3f(-1,-1,0),new e.SFVec3f(1,-1,0)),o.setup(),r.setup(),t.setup(),this.geometry}}),o})),e("x_ite/Browser/Geometry2D/X3DGeometry2DContext",["x_ite/Browser/Geometry2D/Arc2DOptions","x_ite/Browser/Geometry2D/ArcClose2DOptions","x_ite/Browser/Geometry2D/Circle2DOptions","x_ite/Browser/Geometry2D/Disk2DOptions","x_ite/Browser/Geometry2D/Rectangle2DOptions","x_ite/Browser/Core/PrimitiveQuality"],(function(e,t,i,n,s,o){"use strict";function r(){}function a(e,t){const i=new t(this.getPrivateScene());return i.setup(),this[e]=function(){return i},Object.defineProperty(this,e,{enumerable:!1}),i}return r.prototype={initialize:function(){this.setGeometry2DPrimitiveQuality(this.getBrowserOptions().getPrimitiveQuality())},getArc2DOptions:function(){return a.call(this,"getArc2DOptions",e)},getArcClose2DOptions:function(){return a.call(this,"getArcClose2DOptions",t)},getCircle2DOptions:function(){return a.call(this,"getCircle2DOptions",i)},getDisk2DOptions:function(){return a.call(this,"getDisk2DOptions",n)},getRectangle2DOptions:function(){return a.call(this,"getRectangle2DOptions",s)},setGeometry2DPrimitiveQuality:function(e){const t=this.getArc2DOptions(),i=this.getArcClose2DOptions(),n=this.getCircle2DOptions(),s=this.getDisk2DOptions();switch(e){case o.LOW:t._dimension=20,i._dimension=20,n._dimension=20,s._dimension=20;break;case o.MEDIUM:t._dimension=40,i._dimension=40,n._dimension=40,s._dimension=40;break;case o.HIGH:t._dimension=80,i._dimension=80,n._dimension=80,s._dimension=80}}},r})),e("x_ite/Components/Geometry2D/Arc2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Complex","standard/Math/Algorithm"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.Arc2D),this._startAngle.setUnit("angle"),this._endAngle.setUnit("angle"),this._radius.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"startAngle",new e.SFFloat),new t(s.initializeOnly,"endAngle",new e.SFFloat(1.5708)),new t(s.initializeOnly,"radius",new e.SFFloat(1))]),getTypeName:function(){return"Arc2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getArc2DOptions().addInterest("requestRebuild",this):this.getBrowser().getArc2DOptions().removeInterest("requestRebuild",this)},getSweepAngle:function(){const e=r.interval(this._startAngle.getValue(),0,2*Math.PI),t=r.interval(this._endAngle.getValue(),0,2*Math.PI);if(e===t)return 2*Math.PI;const i=Math.abs(t-e);return e>t?2*Math.PI-i:isNaN(i)?0:i},build:function(){const e=this.getBrowser().getArc2DOptions()._dimension.getValue(),t=this._startAngle.getValue(),i=Math.abs(this._radius.getValue()),n=this.getSweepAngle(),s=Math.max(3,Math.floor(n*e/(2*Math.PI))),r=this.getVertices();for(let e=0;e<s;++e){const a=t+n*(e/s),l=o.Polar(i,a),c=t+n*((e+1)/s),u=o.Polar(i,c);r.push(l.real,l.imag,0,1),r.push(u.real,u.imag,0,1)}this.getMin().set(-i,-i,0),this.getMax().set(i,i,0)}}),a})),e("x_ite/Components/Geometry2D/ArcClose2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Complex","standard/Math/Algorithm"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.ArcClose2D),this.setGeometryType(2),this._startAngle.setUnit("angle"),this._endAngle.setUnit("angle"),this._radius.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"closureType",new e.SFString("PIE")),new t(s.initializeOnly,"startAngle",new e.SFFloat),new t(s.initializeOnly,"endAngle",new e.SFFloat(1.5708)),new t(s.initializeOnly,"radius",new e.SFFloat(1)),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"ArcClose2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getArcClose2DOptions().addInterest("requestRebuild",this):this.getBrowser().getArcClose2DOptions().removeInterest("requestRebuild",this)},getSweepAngle:function(){const e=r.interval(this._startAngle.getValue(),0,2*Math.PI),t=r.interval(this._endAngle.getValue(),0,2*Math.PI);if(e===t)return 2*Math.PI;const i=Math.abs(t-e);return e>t?2*Math.PI-i:isNaN(i)?0:i},build:function(){const e=new o(.5,.5);return function(){const t=this.getBrowser().getArcClose2DOptions(),i="CHORD"===this._closureType.getValue(),n=t._dimension.getValue(),s=this._startAngle.getValue(),r=Math.abs(this._radius.getValue()),a=this.getSweepAngle(),l=Math.max(4,Math.floor(a*n/(2*Math.PI))),c=this.getTexCoords(),u=this.getNormals(),g=this.getVertices(),h=[],d=[];this.getMultiTexCoords().push(c);const p=l-1;for(let t=0;t<l;++t){const i=s+a*(t/p);h.push(o.Polar(.5,i).add(e)),d.push(o.Polar(r,i))}if(i){const e=h[0],t=d[0];for(let i=1;i<p;++i){const n=h[i],s=h[i+1],o=d[i],r=d[i+1];c.push(e.real,e.imag,0,1,n.real,n.imag,0,1,s.real,s.imag,0,1),u.push(0,0,1,0,0,1,0,0,1),g.push(t.real,t.imag,0,1,o.real,o.imag,0,1,r.real,r.imag,0,1)}}else for(let e=0;e<p;++e){const t=h[e],i=h[e+1],n=d[e],s=d[e+1];c.push(.5,.5,0,1,t.real,t.imag,0,1,i.real,i.imag,0,1),u.push(0,0,1,0,0,1,0,0,1),g.push(0,0,0,1,n.real,n.imag,0,1,s.real,s.imag,0,1)}this.getMin().set(-r,-r,0),this.getMax().set(r,r,0),this.setSolid(this._solid.getValue())}}()}),a})),e("x_ite/Components/Geometry2D/Circle2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Circle2D),this._radius.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"radius",new e.SFFloat(1))]),getTypeName:function(){return"Circle2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getCircle2DOptions().addInterest("requestRebuild",this):this.getBrowser().getCircle2DOptions().removeInterest("requestRebuild",this)},build:function(){const e=this.getBrowser().getCircle2DOptions(),t=this.getVertices(),i=this._radius.getValue();if(1===i)this.setVertices(e.getVertices());else{const n=e.getVertices().getValue();for(let e=0,s=n.length;e<s;e+=4)t.push(n[e]*i,n[e+1]*i,0,1)}this.getMin().set(-i,-i,0),this.getMax().set(i,i,0)}}),o})),e("x_ite/Components/Geometry2D/Disk2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s,o){"use strict";function r(e){s.call(this,e),this.addType(o.Disk2D),this._innerRadius.setUnit("length"),this._outerRadius.setUnit("length")}return r.prototype=Object.assign(Object.create(n.prototype),{constructor:r,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(o.inputOutput,"metadata",new e.SFNode),new t(o.initializeOnly,"innerRadius",new e.SFFloat),new t(o.initializeOnly,"outerRadius",new e.SFFloat(1)),new t(o.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"Disk2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},initialize:function(){n.prototype.initialize.call(this)},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getDisk2DOptions().addInterest("requestRebuild",this):this.getBrowser().getDisk2DOptions().removeInterest("requestRebuild",this)},build:function(){const e=this.getBrowser().getDisk2DOptions(),t=Math.min(Math.abs(this._innerRadius.getValue()),Math.abs(this._outerRadius.getValue())),i=Math.max(Math.abs(this._innerRadius.getValue()),Math.abs(this._outerRadius.getValue()));if(t===i){const t=this.getVertices();if(0===i)return;if(1===i)this.setVertices(e.getCircleVertices());else{const n=e.getCircleVertices().getValue();for(let e=0,s=n.length;e<s;e+=4)t.push(n[e]*i,n[e+1]*i,0,1)}return this.getMin().set(-i,-i,0),this.getMax().set(i,i,0),void this.setGeometryType(1)}if(0===t){if(this.getMultiTexCoords().push(e.getDiskTexCoords()),this.setNormals(e.getDiskNormals()),1===i)this.setVertices(e.getDiskVertices());else{const t=e.getDiskVertices().getValue(),n=this.getVertices();for(let e=0,s=t.length;e<s;e+=4)n.push(t[e]*i,t[e+1]*i,0,1)}return this.getMin().set(-i,-i,0),this.getMax().set(i,i,0),this.setGeometryType(2),void this.setSolid(this._solid.getValue())}const n=t/i,s=(1-n)/2,o=e.getDiskTexCoords().getValue(),r=e.getDiskVertices().getValue(),a=this.getTexCoords(),l=this.getNormals(),c=this.getVertices();this.getMultiTexCoords().push(a);for(let e=0,u=r.length;e<u;e+=12)a.push(o[e+4]*n+s,o[e+5]*n+s,0,1,o[e+4],o[e+5],0,1,o[e+8],o[e+9],0,1,o[e+4]*n+s,o[e+5]*n+s,0,1,o[e+8],o[e+9],0,1,o[e+8]*n+s,o[e+9]*n+s,0,1),l.push(0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1),c.push(r[e+4]*t,r[e+5]*t,0,1,r[e+4]*i,r[e+5]*i,0,1,r[e+8]*i,r[e+9]*i,0,1,r[e+4]*t,r[e+5]*t,0,1,r[e+8]*i,r[e+9]*i,0,1,r[e+8]*t,r[e+9]*t,0,1);this.getMin().set(-i,-i,0),this.getMax().set(i,i,0),this.setGeometryType(2),this.setSolid(this._solid.getValue())},intersectsLine:function(e,t,i,o){return this.getGeometryType()<2?s.prototype.intersectsLine.call(this,e,t,i,o):n.prototype.intersectsLine.call(this,e,t,i,o)},intersectsBox:function(e,t,i){return this.getGeometryType()<2?s.prototype.intersectsBox.call(this,e,t,i):n.prototype.intersectsBox.call(this,e,t,i)},display:function(e,t){return this.getGeometryType()<2?s.prototype.display.call(this,e,t):n.prototype.display.call(this,e,t)},displayParticles:function(e,t,i,o){return this.getGeometryType()<2?s.prototype.displayParticles.call(this,e,t,i,o):n.prototype.displayParticles.call(this,e,t,i,o)}}),r})),e("x_ite/Components/Geometry2D/Polyline2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Polyline2D),this._lineSegments.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"lineSegments",new e.MFVec2f)]),getTypeName:function(){return"Polyline2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._lineSegments.getValue(),t=this.getVertices();for(let i=0,n=2*(this._lineSegments.length-1);i<n;i+=2)t.push(e[i+0],e[i+1],0,1),t.push(e[i+2],e[i+3],0,1)}}),o})),e("x_ite/Components/Geometry2D/Polypoint2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DPointGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Polypoint2D),this._point.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"point",new e.MFVec2f)]),getTypeName:function(){return"Polypoint2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._point.getValue(),t=this.getVertices();for(let i=0,n=2*this._point.length;i<n;i+=2)t.push(e[i],e[i+1],0,1)}}),o})),e("x_ite/Components/Geometry2D/Rectangle2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Vector2","standard/Math/Numbers/Vector3"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.Rectangle2D),this.setGeometryType(2),this._size.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"size",new e.SFVec2f(2,2)),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"Rectangle2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=new o(2,2);return function(){const t=this.getBrowser().getRectangle2DOptions().getGeometry(),i=this._size.getValue();if(this.setMultiTexCoords(t.getMultiTexCoords()),this.setNormals(t.getNormals()),i.equals(e))this.setVertices(t.getVertices()),this.getMin().assign(t.getMin()),this.getMax().assign(t.getMax());else{const e=r.divide(i,2),n=e.x,s=e.y,o=t.getVertices().getValue(),a=this.getVertices();for(let e=0;e<o.length;e+=4)a.push(n*o[e],s*o[e+1],0,1);this.getMin().set(-n,-s,0),this.getMax().set(n,s,0)}this.setSolid(this._solid.getValue())}}()}),a})),e("x_ite/Components/Geometry2D/TriangleSet2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.TriangleSet2D),this.setGeometryType(2),this._vertices.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"vertices",new e.MFVec2f),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"TriangleSet2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._vertices.getValue(),t=this.getNormals(),i=this.getVertices();for(let n=0,s=2*this._vertices.length;n<s;n+=2)t.push(0,0,1),i.push(e[n],e[n+1],0,1);this.setSolid(this._solid.getValue())},buildTexCoords:function(){const e=this.getTexCoords();if(0===e.length){const t=this.getTexCoordParams(),i=t.min,n=t.Ssize,s=this.getVertices().getValue();for(let t=0,o=s.length;t<o;t+=4)e.push((s[t]-i[0])/n,(s[t+1]-i[1])/n,0,1);e.shrinkToFit()}return e}}),o})),e(t.getComponentUrl("geometry2d"),["x_ite/Components","x_ite/Browser/Geometry2D/X3DGeometry2DContext","x_ite/Components/Geometry2D/Arc2D","x_ite/Components/Geometry2D/ArcClose2D","x_ite/Components/Geometry2D/Circle2D","x_ite/Components/Geometry2D/Disk2D","x_ite/Components/Geometry2D/Polyline2D","x_ite/Components/Geometry2D/Polypoint2D","x_ite/Components/Geometry2D/Rectangle2D","x_ite/Components/Geometry2D/TriangleSet2D"],(function(e,t,i,n,s,o,r,a,l,c){"use strict";e.addComponent({name:"Geometry2D",types:{Arc2D:i,ArcClose2D:n,Circle2D:s,Disk2D:o,Polyline2D:r,Polypoint2D:a,Rectangle2D:l,TriangleSet2D:c},abstractTypes:{},browser:t})}))}();
1
+ !function(){const e=window[Symbol.for("X_ITE.X3D-6.1.0")],t=e.define,i=e.require;t("x_ite/Browser/Geometry2D/Arc2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addChildObjects("dimension",new t.SFInt32(40))}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTypeName:function(){return"ArcClose2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"arcClose2DOptions"}}),i})),t("x_ite/Browser/Geometry2D/ArcClose2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields"],(function(e,t){"use strict";function i(i){e.call(this,i),this.addChildObjects("dimension",new t.SFInt32(40))}return i.prototype=Object.assign(Object.create(e.prototype),{constructor:i,getTypeName:function(){return"Arc2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"arc2DOptions"}}),i})),t("x_ite/Browser/Geometry2D/Circle2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields","x_ite/Components/Rendering/X3DGeometryNode","standard/Math/Numbers/Complex"],(function(e,t,i,n){"use strict";function s(n){e.call(this,n),this.addChildObjects("dimension",new t.SFInt32(40)),this.vertices=i.createArray()}return s.prototype=Object.assign(Object.create(e.prototype),{constructor:s,getTypeName:function(){return"Circle2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"circle2DOptions"},initialize:function(){this.addInterest("build",this),this.build()},getVertices:function(){return this.vertices},build:function(){const e=this._dimension.getValue(),t=2*Math.PI/e,i=this.vertices;i.length=0;for(let s=0;s<e;++s){const e=n.Polar(1,t*s),o=n.Polar(1,t*(s+1));i.push(e.real,e.imag,0,1),i.push(o.real,o.imag,0,1)}i.shrinkToFit()}}),s})),t("x_ite/Browser/Geometry2D/Disk2DOptions",["x_ite/Base/X3DBaseNode","x_ite/Fields","x_ite/Components/Rendering/X3DGeometryNode","standard/Math/Numbers/Complex","standard/Math/Numbers/Vector3"],(function(e,t,i,n,s){"use strict";function o(n){e.call(this,n),this.addChildObjects("dimension",new t.SFInt32(40)),this.circleVertices=i.createArray(),this.diskTexCoords=i.createArray(),this.diskNormals=i.createArray(),this.diskVertices=i.createArray()}return o.prototype=Object.assign(Object.create(e.prototype),{constructor:o,getTypeName:function(){return"Disk2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"circle2DOptions"},initialize:function(){this.addInterest("build",this),this.build()},getCircleVertices:function(){return this.circleVertices},getDiskTexCoords:function(){return this.diskTexCoords},getDiskNormals:function(){return this.diskNormals},getDiskVertices:function(){return this.diskVertices},build:function(){const e=new n(.5,.5),t=new n(0,0),i=new n(0,0),s=new n(0,0),o=new n(0,0);return function(){const n=this._dimension.getValue(),r=2*Math.PI/n,a=this.circleVertices,l=this.diskTexCoords,c=this.diskNormals,u=this.diskVertices;a.length=0,l.length=0,c.length=0,u.length=0;for(let g=0;g<n;++g){const n=r*g,h=r*(g+1);t.setPolar(.5,n).add(e),i.setPolar(.5,h).add(e),s.setPolar(1,n),o.setPolar(1,h),a.push(s.real,s.imag,0,1),a.push(o.real,o.imag,0,1),l.push(.5,.5,0,1,t.real,t.imag,0,1,i.real,i.imag,0,1),c.push(0,0,1,0,0,1,0,0,1),u.push(0,0,0,1,s.real,s.imag,0,1,o.real,o.imag,0,1)}a.shrinkToFit(),l.shrinkToFit(),c.shrinkToFit(),u.shrinkToFit()}}()}),o})),t("x_ite/Browser/Geometry2D/Rectangle2DOptions",["x_ite/Fields","x_ite/Base/X3DBaseNode","x_ite/Components/Geometry3D/IndexedFaceSet","x_ite/Components/Rendering/Coordinate","x_ite/Components/Texturing/TextureCoordinate"],(function(e,t,i,n,s){"use strict";function o(e){t.call(this,e)}return o.prototype=Object.assign(Object.create(t.prototype),{constructor:o,getTypeName:function(){return"Rectangle2DOptions"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"rectangle2DOptions"},initialize:function(){t.prototype.initialize.call(this)},getGeometry:function(){if(this.geometry)return this.geometry;this.geometry=new i(this.getExecutionContext()),this.geometry._texCoord=new s(this.getExecutionContext()),this.geometry._coord=new n(this.getExecutionContext());const t=this.geometry,o=this.geometry._texCoord.getValue(),r=this.geometry._coord.getValue();return t._texCoordIndex=new e.MFInt32(0,1,2,3,-1),t._coordIndex=new e.MFInt32(0,1,2,3,-1),o._point=new e.MFVec2f(new e.SFVec2f(1,1),new e.SFVec2f(0,1),new e.SFVec2f(0,0),new e.SFVec2f(1,0)),r._point=new e.MFVec3f(new e.SFVec3f(1,1,0),new e.SFVec3f(-1,1,0),new e.SFVec3f(-1,-1,0),new e.SFVec3f(1,-1,0)),o.setup(),r.setup(),t.setup(),this.geometry}}),o})),t("x_ite/Browser/Geometry2D/X3DGeometry2DContext",["x_ite/Browser/Geometry2D/Arc2DOptions","x_ite/Browser/Geometry2D/ArcClose2DOptions","x_ite/Browser/Geometry2D/Circle2DOptions","x_ite/Browser/Geometry2D/Disk2DOptions","x_ite/Browser/Geometry2D/Rectangle2DOptions","x_ite/Browser/Core/PrimitiveQuality"],(function(e,t,i,n,s,o){"use strict";function r(){}function a(e,t){const i=new t(this.getPrivateScene());return i.setup(),this[e]=function(){return i},Object.defineProperty(this,e,{enumerable:!1}),i}return r.prototype={initialize:function(){this.setPrimitiveQuality2D(this.getBrowserOptions().getPrimitiveQuality())},getArc2DOptions:function(){return a.call(this,"getArc2DOptions",e)},getArcClose2DOptions:function(){return a.call(this,"getArcClose2DOptions",t)},getCircle2DOptions:function(){return a.call(this,"getCircle2DOptions",i)},getDisk2DOptions:function(){return a.call(this,"getDisk2DOptions",n)},getRectangle2DOptions:function(){return a.call(this,"getRectangle2DOptions",s)},setPrimitiveQuality2D:function(e){const t=this.getArc2DOptions(),i=this.getArcClose2DOptions(),n=this.getCircle2DOptions(),s=this.getDisk2DOptions();switch(e){case o.LOW:t._dimension=20,i._dimension=20,n._dimension=20,s._dimension=20;break;case o.MEDIUM:t._dimension=40,i._dimension=40,n._dimension=40,s._dimension=40;break;case o.HIGH:t._dimension=80,i._dimension=80,n._dimension=80,s._dimension=80}}},r})),t("x_ite/Components/Geometry2D/Arc2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Complex","standard/Math/Algorithm"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.Arc2D),this._startAngle.setUnit("angle"),this._endAngle.setUnit("angle"),this._radius.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"startAngle",new e.SFFloat),new t(s.initializeOnly,"endAngle",new e.SFFloat(1.5708)),new t(s.initializeOnly,"radius",new e.SFFloat(1))]),getTypeName:function(){return"Arc2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getArc2DOptions().addInterest("requestRebuild",this):this.getBrowser().getArc2DOptions().removeInterest("requestRebuild",this)},getSweepAngle:function(){const e=r.interval(this._startAngle.getValue(),0,2*Math.PI),t=r.interval(this._endAngle.getValue(),0,2*Math.PI);if(e===t)return 2*Math.PI;const i=Math.abs(t-e);return e>t?2*Math.PI-i:isNaN(i)?0:i},build:function(){const e=this.getBrowser().getArc2DOptions()._dimension.getValue(),t=this._startAngle.getValue(),i=Math.abs(this._radius.getValue()),n=this.getSweepAngle(),s=Math.max(3,Math.floor(n*e/(2*Math.PI))),r=this.getVertices();for(let e=0;e<s;++e){const a=t+n*(e/s),l=o.Polar(i,a),c=t+n*((e+1)/s),u=o.Polar(i,c);r.push(l.real,l.imag,0,1),r.push(u.real,u.imag,0,1)}this.getMin().set(-i,-i,0),this.getMax().set(i,i,0)}}),a})),t("x_ite/Components/Geometry2D/ArcClose2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Complex","standard/Math/Algorithm"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.ArcClose2D),this.setGeometryType(2),this._startAngle.setUnit("angle"),this._endAngle.setUnit("angle"),this._radius.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"closureType",new e.SFString("PIE")),new t(s.initializeOnly,"startAngle",new e.SFFloat),new t(s.initializeOnly,"endAngle",new e.SFFloat(1.5708)),new t(s.initializeOnly,"radius",new e.SFFloat(1)),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"ArcClose2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getArcClose2DOptions().addInterest("requestRebuild",this):this.getBrowser().getArcClose2DOptions().removeInterest("requestRebuild",this)},getSweepAngle:function(){const e=r.interval(this._startAngle.getValue(),0,2*Math.PI),t=r.interval(this._endAngle.getValue(),0,2*Math.PI);if(e===t)return 2*Math.PI;const i=Math.abs(t-e);return e>t?2*Math.PI-i:isNaN(i)?0:i},build:function(){const e=new o(.5,.5);return function(){const t=this.getBrowser().getArcClose2DOptions(),i="CHORD"===this._closureType.getValue(),n=t._dimension.getValue(),s=this._startAngle.getValue(),r=Math.abs(this._radius.getValue()),a=this.getSweepAngle(),l=Math.max(4,Math.floor(a*n/(2*Math.PI))),c=this.getTexCoords(),u=this.getNormals(),g=this.getVertices(),h=[],d=[];this.getMultiTexCoords().push(c);const p=l-1;for(let t=0;t<l;++t){const i=s+a*(t/p);h.push(o.Polar(.5,i).add(e)),d.push(o.Polar(r,i))}if(i){const e=h[0],t=d[0];for(let i=1;i<p;++i){const n=h[i],s=h[i+1],o=d[i],r=d[i+1];c.push(e.real,e.imag,0,1,n.real,n.imag,0,1,s.real,s.imag,0,1),u.push(0,0,1,0,0,1,0,0,1),g.push(t.real,t.imag,0,1,o.real,o.imag,0,1,r.real,r.imag,0,1)}}else for(let e=0;e<p;++e){const t=h[e],i=h[e+1],n=d[e],s=d[e+1];c.push(.5,.5,0,1,t.real,t.imag,0,1,i.real,i.imag,0,1),u.push(0,0,1,0,0,1,0,0,1),g.push(0,0,0,1,n.real,n.imag,0,1,s.real,s.imag,0,1)}this.getMin().set(-r,-r,0),this.getMax().set(r,r,0),this.setSolid(this._solid.getValue())}}()}),a})),t("x_ite/Components/Geometry2D/Circle2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Circle2D),this._radius.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"radius",new e.SFFloat(1))]),getTypeName:function(){return"Circle2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getCircle2DOptions().addInterest("requestRebuild",this):this.getBrowser().getCircle2DOptions().removeInterest("requestRebuild",this)},build:function(){const e=this.getBrowser().getCircle2DOptions(),t=this.getVertices(),i=this._radius.getValue();if(1===i)this.setVertices(e.getVertices());else{const n=e.getVertices().getValue();for(let e=0,s=n.length;e<s;e+=4)t.push(n[e]*i,n[e+1]*i,0,1)}this.getMin().set(-i,-i,0),this.getMax().set(i,i,0)}}),o})),t("x_ite/Components/Geometry2D/Disk2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Components/Rendering/X3DPointGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s,o,r){"use strict";function a(e){s.call(this,e),this.addType(r.Disk2D),this._innerRadius.setUnit("length"),this._outerRadius.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(r.inputOutput,"metadata",new e.SFNode),new t(r.initializeOnly,"innerRadius",new e.SFFloat),new t(r.initializeOnly,"outerRadius",new e.SFFloat(1)),new t(r.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"Disk2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},initialize:function(){n.prototype.initialize.call(this)},set_live__:function(){n.prototype.set_live__.call(this),this.isLive().getValue()?this.getBrowser().getDisk2DOptions().addInterest("requestRebuild",this):this.getBrowser().getDisk2DOptions().removeInterest("requestRebuild",this)},build:function(){const e=this.getBrowser(),t=e.getContext(),i=e.getDisk2DOptions(),r=Math.min(Math.abs(this._innerRadius.getValue()),Math.abs(this._outerRadius.getValue())),a=Math.max(Math.abs(this._innerRadius.getValue()),Math.abs(this._outerRadius.getValue()));if(r===a){const e=this.getVertices();if(0===a)return e.push(0,0,0,1),this.getMin().set(0,0,0),this.getMax().set(0,0,0),this.setGeometryType(0),this.setPrimitiveMode(t.POINTS),this.setTransparent(!0),void this.setBase(o);if(1===a)this.setVertices(i.getCircleVertices());else{const t=i.getCircleVertices().getValue();for(let i=0,n=t.length;i<n;i+=4)e.push(t[i]*a,t[i+1]*a,0,1)}return this.getMin().set(-a,-a,0),this.getMax().set(a,a,0),this.setGeometryType(1),this.setPrimitiveMode(t.LINES),this.setTransparent(!1),void this.setBase(s)}if(0===r){if(this.getMultiTexCoords().push(i.getDiskTexCoords()),this.setNormals(i.getDiskNormals()),1===a)this.setVertices(i.getDiskVertices());else{const e=i.getDiskVertices().getValue(),t=this.getVertices();for(let i=0,n=e.length;i<n;i+=4)t.push(e[i]*a,e[i+1]*a,0,1)}return this.getMin().set(-a,-a,0),this.getMax().set(a,a,0),this.setGeometryType(2),this.setPrimitiveMode(t.TRIANGLES),this.setTransparent(!1),this.setSolid(this._solid.getValue()),void this.setBase(n)}const l=r/a,c=(1-l)/2,u=i.getDiskTexCoords().getValue(),g=i.getDiskVertices().getValue(),h=this.getTexCoords(),d=this.getNormals(),p=this.getVertices();this.getMultiTexCoords().push(h);for(let e=0,t=g.length;e<t;e+=12)h.push(u[e+4]*l+c,u[e+5]*l+c,0,1,u[e+4],u[e+5],0,1,u[e+8],u[e+9],0,1,u[e+4]*l+c,u[e+5]*l+c,0,1,u[e+8],u[e+9],0,1,u[e+8]*l+c,u[e+9]*l+c,0,1),d.push(0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1),p.push(g[e+4]*r,g[e+5]*r,0,1,g[e+4]*a,g[e+5]*a,0,1,g[e+8]*a,g[e+9]*a,0,1,g[e+4]*r,g[e+5]*r,0,1,g[e+8]*a,g[e+9]*a,0,1,g[e+8]*r,g[e+9]*r,0,1);this.getMin().set(-a,-a,0),this.getMax().set(a,a,0),this.setGeometryType(2),this.setPrimitiveMode(t.TRIANGLES),this.setTransparent(!1),this.setSolid(this._solid.getValue()),this.setBase(n)},setBase:function(e){this.intersectsLine=e.prototype.intersectsLine,this.intersectsBox=e.prototype.intersectsBox,this.display=e.prototype.display,this.displayParticles=e.prototype.displayParticles},setRenderFunctions:function(){}}),a})),t("x_ite/Components/Geometry2D/Polyline2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DLineGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Polyline2D),this._lineSegments.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"lineSegments",new e.MFVec2f)]),getTypeName:function(){return"Polyline2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._lineSegments.getValue(),t=this.getVertices();for(let i=0,n=2*(this._lineSegments.length-1);i<n;i+=2)t.push(e[i+0],e[i+1],0,1),t.push(e[i+2],e[i+3],0,1)}}),o})),t("x_ite/Components/Geometry2D/Polypoint2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DPointGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.Polypoint2D),this._point.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"point",new e.MFVec2f)]),getTypeName:function(){return"Polypoint2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._point.getValue(),t=this.getVertices();for(let i=0,n=2*this._point.length;i<n;i+=2)t.push(e[i],e[i+1],0,1)}}),o})),t("x_ite/Components/Geometry2D/Rectangle2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants","standard/Math/Numbers/Vector2","standard/Math/Numbers/Vector3"],(function(e,t,i,n,s,o,r){"use strict";function a(e){n.call(this,e),this.addType(s.Rectangle2D),this.setGeometryType(2),this._size.setUnit("length")}return a.prototype=Object.assign(Object.create(n.prototype),{constructor:a,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.initializeOnly,"size",new e.SFVec2f(2,2)),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"Rectangle2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=new o(2,2);return function(){const t=this.getBrowser().getRectangle2DOptions().getGeometry(),i=this._size.getValue();if(this.setMultiTexCoords(t.getMultiTexCoords()),this.setNormals(t.getNormals()),i.equals(e))this.setVertices(t.getVertices()),this.getMin().assign(t.getMin()),this.getMax().assign(t.getMax());else{const e=r.divide(i,2),n=e.x,s=e.y,o=t.getVertices().getValue(),a=this.getVertices();for(let e=0;e<o.length;e+=4)a.push(n*o[e],s*o[e+1],0,1);this.getMin().set(-n,-s,0),this.getMax().set(n,s,0)}this.setSolid(this._solid.getValue())}}()}),a})),t("x_ite/Components/Geometry2D/TriangleSet2D",["x_ite/Fields","x_ite/Base/X3DFieldDefinition","x_ite/Base/FieldDefinitionArray","x_ite/Components/Rendering/X3DGeometryNode","x_ite/Base/X3DConstants"],(function(e,t,i,n,s){"use strict";function o(e){n.call(this,e),this.addType(s.TriangleSet2D),this.setGeometryType(2),this._vertices.setUnit("length")}return o.prototype=Object.assign(Object.create(n.prototype),{constructor:o,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new i([new t(s.inputOutput,"metadata",new e.SFNode),new t(s.inputOutput,"vertices",new e.MFVec2f),new t(s.initializeOnly,"solid",new e.SFBool)]),getTypeName:function(){return"TriangleSet2D"},getComponentName:function(){return"Geometry2D"},getContainerField:function(){return"geometry"},build:function(){const e=this._vertices.getValue(),t=this.getNormals(),i=this.getVertices();for(let n=0,s=2*this._vertices.length;n<s;n+=2)t.push(0,0,1),i.push(e[n],e[n+1],0,1);this.setSolid(this._solid.getValue())},buildTexCoords:function(){const e=this.getTexCoords();if(0===e.length){const t=this.getTexCoordParams(),i=t.min,n=t.Ssize,s=this.getVertices().getValue();for(let t=0,o=s.length;t<o;t+=4)e.push((s[t]-i[0])/n,(s[t+1]-i[1])/n,0,1);e.shrinkToFit()}this.getMultiTexCoords().push(e)}}),o})),t(i.getComponentUrl("geometry2d"),["x_ite/Components","x_ite/Browser/Geometry2D/X3DGeometry2DContext","x_ite/Components/Geometry2D/Arc2D","x_ite/Components/Geometry2D/ArcClose2D","x_ite/Components/Geometry2D/Circle2D","x_ite/Components/Geometry2D/Disk2D","x_ite/Components/Geometry2D/Polyline2D","x_ite/Components/Geometry2D/Polypoint2D","x_ite/Components/Geometry2D/Rectangle2D","x_ite/Components/Geometry2D/TriangleSet2D"],(function(e,t,i,n,s,o,r,a,l,c){"use strict";e.addComponent({name:"Geometry2D",types:{Arc2D:i,ArcClose2D:n,Circle2D:s,Disk2D:o,Polyline2D:r,Polypoint2D:a,Rectangle2D:l,TriangleSet2D:c},abstractTypes:{},context:t})}))}();