x_ite 5.0.2 → 6.0.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 (340) hide show
  1. package/.vscode/settings.json +12 -5
  2. package/.vscode/tasks.json +21 -0
  3. package/Makefile +10 -15
  4. package/README.md +6 -11
  5. package/build/bin/dist.pl +0 -6
  6. package/build/bin/version.pl +1 -4
  7. package/dist/assets/components/annotation.js +2 -2
  8. package/dist/assets/components/annotation.min.js +1 -1
  9. package/dist/assets/components/cad-geometry.js +2 -2
  10. package/dist/assets/components/cad-geometry.min.js +1 -1
  11. package/dist/assets/components/cube-map-texturing.js +6 -19
  12. package/dist/assets/components/cube-map-texturing.min.js +1 -1
  13. package/dist/assets/components/dis.js +2 -2
  14. package/dist/assets/components/dis.min.js +1 -1
  15. package/dist/assets/components/event-utilities.js +3 -3
  16. package/dist/assets/components/event-utilities.min.js +1 -1
  17. package/dist/assets/components/geometry2d.js +4 -4
  18. package/dist/assets/components/geometry2d.min.js +1 -1
  19. package/dist/assets/components/geospatial.js +32 -1685
  20. package/dist/assets/components/geospatial.min.js +1 -1
  21. package/dist/assets/components/h-anim.js +70 -77
  22. package/dist/assets/components/h-anim.min.js +1 -1
  23. package/dist/assets/components/key-device-sensor.js +3 -3
  24. package/dist/assets/components/key-device-sensor.min.js +1 -1
  25. package/dist/assets/components/layout.js +38 -52
  26. package/dist/assets/components/layout.min.js +1 -1
  27. package/dist/assets/components/nurbs.js +277 -194
  28. package/dist/assets/components/nurbs.min.js +1 -1
  29. package/dist/assets/components/particle-systems.js +1918 -1658
  30. package/dist/assets/components/particle-systems.min.js +1 -1
  31. package/dist/assets/components/picking.js +33 -41
  32. package/dist/assets/components/picking.min.js +1 -1
  33. package/dist/assets/components/projective-texture-mapping.js +72 -86
  34. package/dist/assets/components/projective-texture-mapping.min.js +1 -1
  35. package/dist/assets/components/rigid-body-physics.js +36 -57
  36. package/dist/assets/components/rigid-body-physics.min.js +1 -1
  37. package/dist/assets/components/scripting.js +2 -2
  38. package/dist/assets/components/scripting.min.js +1 -1
  39. package/dist/assets/components/texturing-3d.js +26 -75
  40. package/dist/assets/components/texturing-3d.min.js +3 -3
  41. package/dist/assets/components/volume-rendering.js +10 -10
  42. package/dist/assets/components/volume-rendering.min.js +1 -1
  43. package/dist/assets/components/x_ite.js +2 -2
  44. package/dist/assets/components/x_ite.min.js +1 -1
  45. package/dist/assets/linetype/1.png +0 -0
  46. package/dist/assets/linetype/10.png +0 -0
  47. package/dist/assets/linetype/11.png +0 -0
  48. package/dist/assets/linetype/12.png +0 -0
  49. package/dist/assets/linetype/13.png +0 -0
  50. package/dist/assets/linetype/14.png +0 -0
  51. package/dist/assets/linetype/15.png +0 -0
  52. package/dist/assets/linetype/16.png +0 -0
  53. package/dist/assets/linetype/2.png +0 -0
  54. package/dist/assets/linetype/3.png +0 -0
  55. package/dist/assets/linetype/4.png +0 -0
  56. package/dist/assets/linetype/5.png +0 -0
  57. package/dist/assets/linetype/6.png +0 -0
  58. package/dist/assets/linetype/7.png +0 -0
  59. package/dist/assets/linetype/8.png +0 -0
  60. package/dist/assets/linetype/9.png +0 -0
  61. package/dist/assets/shaders/webgl1/Line.fs +0 -21
  62. package/dist/assets/shaders/webgl1/Line.vs +0 -10
  63. package/dist/assets/shaders/webgl1/PBR.vs +1 -1
  64. package/dist/assets/shaders/webgl2/Depth.vs +29 -1
  65. package/dist/assets/shaders/webgl2/Gouraud.vs +31 -3
  66. package/dist/assets/shaders/webgl2/Line.fs +24 -12
  67. package/dist/assets/shaders/webgl2/Line.vs +36 -11
  68. package/dist/assets/shaders/webgl2/LineTransform.fs +4 -0
  69. package/dist/assets/shaders/webgl2/LineTransform.vs +57 -0
  70. package/dist/assets/shaders/webgl2/PBR.vs +35 -7
  71. package/dist/assets/shaders/webgl2/Phong.vs +31 -3
  72. package/dist/assets/shaders/webgl2/Point.vs +29 -1
  73. package/dist/assets/shaders/webgl2/Unlit.vs +31 -3
  74. package/dist/example.html +6 -6
  75. package/dist/x_ite.css +180 -208
  76. package/dist/x_ite.js +16477 -16629
  77. package/dist/x_ite.min.js +17 -17
  78. package/dist/x_ite.zip +0 -0
  79. package/docs/404.md +6 -0
  80. package/docs/Accessing-the-External-Browser.md +20 -14
  81. package/docs/Browser-Support.md +6 -0
  82. package/docs/Custom-Shaders.md +17 -24
  83. package/docs/Features.md +7 -1
  84. package/docs/Gemfile +44 -0
  85. package/docs/Gemfile.lock +122 -0
  86. package/docs/Glossary.md +6 -0
  87. package/docs/How-To-Configure-Your-Web-Server.md +6 -0
  88. package/docs/Supported-Nodes.md +9 -1
  89. package/docs/What's-New.md +31 -0
  90. package/docs/XHTML-DOM-Integration.md +6 -0
  91. package/docs/_config.yml +1 -1
  92. package/docs/assets/css/main.scss +26 -0
  93. package/docs/index.md +38 -46
  94. package/docs/reference/Browser-Services.md +9 -3
  95. package/docs/reference/Constants-Services.md +6 -0
  96. package/docs/reference/ECMAScript-Object-and-Function-Definitions.md +6 -0
  97. package/docs/reference/Field-Services-and-Objects.md +6 -0
  98. package/docs/reference/Prototype-Services.md +6 -0
  99. package/docs/reference/Route-Services.md +6 -0
  100. package/docs/reference/Scene-Services.md +8 -2
  101. package/docs/reference/Script-Node-Authoring-Interface.md +7 -1
  102. package/docs/tutorials/Adding-backgrounds.md +6 -0
  103. package/docs/tutorials/Adding-fog.md +6 -0
  104. package/docs/tutorials/Adding-sound.md +6 -0
  105. package/docs/tutorials/Animating-transforms.md +6 -0
  106. package/docs/tutorials/Basic-Nodes.md +6 -0
  107. package/docs/tutorials/Building-a-X3D-world.md +6 -0
  108. package/docs/tutorials/Building-elevation-grids.md +6 -0
  109. package/docs/tutorials/Building-extruded-shapes.md +6 -0
  110. package/docs/tutorials/Building-primitive-shapes.md +6 -0
  111. package/docs/tutorials/Building-shapes-out-of-points,-lines,-and-faces.md +6 -0
  112. package/docs/tutorials/Controlling-appearance-with-materials.md +6 -0
  113. package/docs/tutorials/Controlling-color-on-coordinate-based-geometry.md +6 -0
  114. package/docs/tutorials/Controlling-detail.md +6 -0
  115. package/docs/tutorials/Controlling-how-textures-are-mapped.md +6 -0
  116. package/docs/tutorials/Controlling-navigation.md +6 -0
  117. package/docs/tutorials/Controlling-shading-on-coordinate-based-geometry.md +6 -0
  118. package/docs/tutorials/Controlling-the-viewpoint.md +6 -0
  119. package/docs/tutorials/Creating-new-node-types.md +6 -0
  120. package/docs/tutorials/Grouping-nodes.md +6 -0
  121. package/docs/tutorials/Hello,-World!.md +6 -0
  122. package/docs/tutorials/Improving-Performance.md +6 -0
  123. package/docs/tutorials/Increasing-Rendering-Speed.md +6 -0
  124. package/docs/tutorials/Introducing-X3D.md +6 -0
  125. package/docs/tutorials/Introducing-animation.md +6 -0
  126. package/docs/tutorials/Introducing-script-use.md +6 -0
  127. package/docs/tutorials/Lighting-your-world.md +6 -0
  128. package/docs/tutorials/Mapping-textures.md +6 -0
  129. package/docs/tutorials/Naming-nodes.md +6 -0
  130. package/docs/tutorials/Providing-information-about-your-world.md +6 -0
  131. package/docs/tutorials/Sensing-the-viewer.md +6 -0
  132. package/docs/tutorials/Sensing-viewer-actions.md +6 -0
  133. package/docs/tutorials/Transforming-Shapes.md +6 -0
  134. package/docs/tutorials/Writing-program-scripts-with-ECMAScript.md +6 -0
  135. package/docs/tutorials/index.md +6 -0
  136. package/package.json +6 -7
  137. package/src/assets/components/geometry2d.js +1 -1
  138. package/src/assets/components/key-device-sensor.js +1 -1
  139. package/src/assets/components/layout.js +1 -1
  140. package/src/assets/components/particle-systems.js +1 -1
  141. package/src/assets/components/volume-rendering.js +1 -1
  142. package/src/assets/linetype/1.png +0 -0
  143. package/src/assets/linetype/10.png +0 -0
  144. package/src/assets/linetype/11.png +0 -0
  145. package/src/assets/linetype/12.png +0 -0
  146. package/src/assets/linetype/13.png +0 -0
  147. package/src/assets/linetype/14.png +0 -0
  148. package/src/assets/linetype/15.png +0 -0
  149. package/src/assets/linetype/16.png +0 -0
  150. package/src/assets/linetype/2.png +0 -0
  151. package/src/assets/linetype/3.png +0 -0
  152. package/src/assets/linetype/4.png +0 -0
  153. package/src/assets/linetype/5.png +0 -0
  154. package/src/assets/linetype/6.png +0 -0
  155. package/src/assets/linetype/7.png +0 -0
  156. package/src/assets/linetype/8.png +0 -0
  157. package/src/assets/linetype/9.png +0 -0
  158. package/src/assets/shaders/Types.glsl +1 -9
  159. package/src/assets/shaders/webgl1/Line.fs +3 -28
  160. package/src/assets/shaders/webgl1/Line.vs +5 -19
  161. package/src/assets/shaders/webgl1/PBR.vs +1 -1
  162. package/src/assets/shaders/webgl1/Point.vs +2 -3
  163. package/src/assets/shaders/webgl2/Depth.vs +4 -1
  164. package/src/assets/shaders/webgl2/Gouraud.vs +5 -3
  165. package/src/assets/shaders/webgl2/Line.fs +11 -17
  166. package/src/assets/shaders/webgl2/Line.vs +16 -20
  167. package/src/assets/shaders/webgl2/LineTransform.fs +6 -0
  168. package/src/assets/shaders/webgl2/LineTransform.vs +77 -0
  169. package/src/assets/shaders/webgl2/PBR.vs +10 -7
  170. package/src/assets/shaders/webgl2/Phong.vs +6 -3
  171. package/src/assets/shaders/webgl2/Point.vs +6 -6
  172. package/src/assets/shaders/webgl2/Unlit.vs +6 -3
  173. package/src/assets/shaders/webgl2/include/Line2.glsl +20 -0
  174. package/src/assets/shaders/webgl2/include/Particle.glsl +36 -0
  175. package/src/example.html +6 -6
  176. package/src/standard/Math/Algorithm.js +12 -28
  177. package/src/standard/Math/Geometry/Plane3.js +0 -2
  178. package/src/standard/Math/Geometry/ViewVolume.js +88 -83
  179. package/src/standard/Math/Numbers/Color3.js +6 -0
  180. package/src/standard/Math/Numbers/Color4.js +7 -0
  181. package/src/standard/Math/Numbers/Complex.js +5 -0
  182. package/src/standard/Math/Numbers/Matrix2.js +20 -2
  183. package/src/standard/Math/Numbers/Matrix3.js +129 -110
  184. package/src/standard/Math/Numbers/Matrix4.js +138 -119
  185. package/src/standard/Math/Numbers/Quaternion.js +7 -0
  186. package/src/standard/Math/Numbers/Rotation4.js +7 -0
  187. package/src/standard/Math/Numbers/Vector2.js +8 -5
  188. package/src/standard/Math/Numbers/Vector3.js +16 -10
  189. package/src/standard/Math/Numbers/Vector4.js +12 -7
  190. package/src/standard/Math/Utility/BVH.js +45 -17
  191. package/src/tests.js +6 -1
  192. package/src/x_ite/Base/X3DBaseNode.js +22 -11
  193. package/src/x_ite/Base/X3DField.js +1 -1
  194. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -2
  195. package/src/x_ite/Browser/Core/BrowserTimings.js +4 -2
  196. package/src/x_ite/Browser/Core/Context.js +185 -0
  197. package/src/x_ite/Browser/Core/ContextMenu.js +299 -193
  198. package/src/x_ite/Browser/Core/Notification.js +1 -0
  199. package/src/x_ite/Browser/Core/X3DCoreContext.js +35 -146
  200. package/src/x_ite/Browser/Layout/ScreenText.js +11 -4
  201. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +4 -15
  202. package/src/x_ite/Browser/Navigation/ExamineViewer.js +12 -19
  203. package/src/x_ite/Browser/Navigation/LookAtViewer.js +0 -3
  204. package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -3
  205. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +14 -7
  206. package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -20
  207. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +11 -7
  208. package/src/x_ite/Browser/ParticleSystems/BVH.glsl +183 -0
  209. package/src/x_ite/Browser/ParticleSystems/Box3.glsl +47 -0
  210. package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +66 -0
  211. package/src/x_ite/Browser/ParticleSystems/Line3.glsl +55 -0
  212. package/src/x_ite/Browser/ParticleSystems/Plane3.glsl +160 -0
  213. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +27 -3
  214. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +37 -37
  215. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +19 -13
  216. package/src/x_ite/Browser/Shaders/Shader.js +33 -12
  217. package/src/x_ite/Browser/Shaders/ShaderSource.js +6 -0
  218. package/src/x_ite/Browser/Shaders/ShaderTest.js +16 -10
  219. package/src/x_ite/Browser/Shape/X3DShapeContext.js +50 -9
  220. package/src/x_ite/Browser/Text/X3DTextContext.js +4 -13
  221. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +23 -33
  222. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +2 -2
  223. package/src/x_ite/Browser/Time/X3DTimeContext.js +3 -1
  224. package/src/x_ite/Browser/VERSION.js +1 -1
  225. package/src/x_ite/Browser/X3DBrowser.js +7 -6
  226. package/src/x_ite/Browser/X3DBrowserContext.js +35 -10
  227. package/src/x_ite/Components/Core/X3DNode.js +4 -0
  228. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -2
  229. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +3 -4
  230. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +1 -12
  231. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +0 -1
  232. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +1 -1
  233. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +76 -77
  234. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +2 -9
  235. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +51 -65
  236. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +1 -1
  237. package/src/x_ite/Components/Followers/X3DChaserNode.js +18 -32
  238. package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -6
  239. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +1 -1
  240. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +12 -4
  241. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +4 -4
  242. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +10 -27
  243. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +5 -10
  244. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +9 -16
  245. package/src/x_ite/Components/Geospatial/GeoTransform.js +6 -18
  246. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +20 -27
  247. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +8 -8
  248. package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -4
  249. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +68 -75
  250. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +4 -11
  251. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +1 -1
  252. package/src/x_ite/Components/Layout/LayoutGroup.js +4 -9
  253. package/src/x_ite/Components/Layout/ScreenFontStyle.js +1 -1
  254. package/src/x_ite/Components/Layout/ScreenGroup.js +18 -23
  255. package/src/x_ite/Components/Lighting/DirectionalLight.js +28 -36
  256. package/src/x_ite/Components/Lighting/PointLight.js +32 -47
  257. package/src/x_ite/Components/Lighting/SpotLight.js +33 -48
  258. package/src/x_ite/Components/Navigation/Billboard.js +49 -56
  259. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  260. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +82 -111
  261. package/src/x_ite/Components/Networking/Anchor.js +10 -4
  262. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +6 -6
  263. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +44 -36
  264. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +26 -17
  265. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +20 -7
  266. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +461 -876
  267. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +39 -35
  268. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +112 -128
  269. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +105 -112
  270. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +138 -176
  271. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +16 -11
  272. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +807 -217
  273. package/src/x_ite/Components/Picking/LinePickSensor.js +31 -39
  274. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +90 -107
  275. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +48 -55
  276. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +53 -70
  277. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +8 -15
  278. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +43 -50
  279. package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorPerspective.js +32 -39
  280. package/src/x_ite/Components/Rendering/ClipPlane.js +3 -11
  281. package/src/x_ite/Components/Rendering/Color.js +12 -37
  282. package/src/x_ite/Components/Rendering/ColorRGBA.js +13 -38
  283. package/src/x_ite/Components/Rendering/IndexedLineSet.js +12 -4
  284. package/src/x_ite/Components/Rendering/LineSet.js +21 -13
  285. package/src/x_ite/Components/Rendering/PointSet.js +21 -13
  286. package/src/x_ite/Components/Rendering/X3DColorNode.js +13 -0
  287. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +13 -5
  288. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +248 -325
  289. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +305 -134
  290. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +99 -122
  291. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +24 -38
  292. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +10 -17
  293. package/src/x_ite/Components/Shaders/ComposedShader.js +35 -75
  294. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +5 -15
  295. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +7 -24
  296. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +7 -24
  297. package/src/x_ite/Components/Shaders/ShaderPart.js +1 -10
  298. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +219 -209
  299. package/src/x_ite/Components/Shaders/X3DShaderNode.js +1 -1
  300. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +23 -1
  301. package/src/x_ite/Components/Shape/Appearance.js +12 -0
  302. package/src/x_ite/Components/Shape/FillProperties.js +12 -1
  303. package/src/x_ite/Components/Shape/LineProperties.js +33 -1
  304. package/src/x_ite/Components/Shape/PointProperties.js +23 -1
  305. package/src/x_ite/Components/Shape/Shape.js +27 -34
  306. package/src/x_ite/Components/Sound/Sound.js +30 -40
  307. package/src/x_ite/Components/Text/Text.js +6 -20
  308. package/src/x_ite/Components/Texturing/TextureCoordinate.js +5 -26
  309. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
  310. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +21 -0
  311. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +5 -4
  312. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +24 -33
  313. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +5 -26
  314. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +5 -26
  315. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +12 -19
  316. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +7 -7
  317. package/src/x_ite/Components.js +2 -2
  318. package/src/x_ite/Fallback.js +9 -3
  319. package/src/x_ite/Fields/SFColor.js +4 -0
  320. package/src/x_ite/Fields/SFColorRGBA.js +4 -0
  321. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +4 -0
  322. package/src/x_ite/Fields/SFRotation.js +4 -0
  323. package/src/x_ite/Fields/SFString.js +4 -0
  324. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +4 -0
  325. package/src/x_ite/Parser/XMLParser.js +1 -1
  326. package/src/x_ite/Rendering/TextureBuffer.js +43 -36
  327. package/src/x_ite/Rendering/VertexArray.js +101 -0
  328. package/src/x_ite/Rendering/X3DRenderObject.js +123 -144
  329. package/src/x_ite/X3D.js +32 -26
  330. package/src/x_ite.config.js +0 -5
  331. package/src/x_ite.css +200 -162
  332. package/src/x_ite.html +26 -10
  333. package/src/x_ite.js +42 -0
  334. package/x_ite.min.html +26 -10
  335. package/dist/assets/hatching/0.png +0 -0
  336. package/dist/assets/linetype/0.png +0 -0
  337. package/src/assets/hatching/0.png +0 -0
  338. package/src/assets/linetype/0.png +0 -0
  339. package/src/spinner.css +0 -67
  340. package/src/x_ite/Browser/Shape/LineStipples.xcf +0 -0
@@ -102,27 +102,10 @@ function (Fields,
102
102
  {
103
103
  X3DCoordinateNode .prototype .initialize .call (this);
104
104
  X3DGeospatialObject .prototype .initialize .call (this);
105
-
106
- this ._point .addInterest ("set_point__", this);
107
-
108
- this .set_point__ ();
109
- },
110
- set_point__: function ()
111
- {
112
- this .point = this ._point .getValue ();
113
- this .length = this ._point .length;
114
- },
115
- isEmpty: function ()
116
- {
117
- return this .length === 0;
118
- },
119
- getSize: function ()
120
- {
121
- return this .length;
122
105
  },
123
106
  set1Point: (function ()
124
107
  {
125
- var result = new Vector3 (0, 0, 0);
108
+ const result = new Vector3 (0, 0, 0);
126
109
 
127
110
  return function (index, point)
128
111
  {
@@ -131,7 +114,7 @@ function (Fields,
131
114
  })(),
132
115
  get1Point: (function ()
133
116
  {
134
- var p = new Vector3 (0, 0, 0);
117
+ const p = new Vector3 (0, 0, 0);
135
118
 
136
119
  return function (index, result)
137
120
  {
@@ -151,7 +134,7 @@ function (Fields,
151
134
  })(),
152
135
  addPoint: (function ()
153
136
  {
154
- var
137
+ const
155
138
  p = new Vector3 (0, 0, 0),
156
139
  g = new Vector3 (0, 0, 0);
157
140
 
@@ -175,7 +158,7 @@ function (Fields,
175
158
  })(),
176
159
  addPoints: (function ()
177
160
  {
178
- var
161
+ const
179
162
  p = new Vector3 (0, 0, 0),
180
163
  g = new Vector3 (0, 0, 0);
181
164
 
@@ -183,20 +166,20 @@ function (Fields,
183
166
  {
184
167
  const point = this .point;
185
168
 
186
- for (var index = 0, length = this .length * 3; index < length; index += 3)
169
+ for (let index = 0, length = this .length * 3; index < length; index += 3)
187
170
  {
188
171
  this .getCoord (p .set (point [index], point [index + 1], point [index + 2]), g);
189
172
 
190
173
  array .push (g [0], g [1], g [2], 1);
191
174
  }
192
175
 
193
- for (var index = length, length = min * 3; index < length; index += 3)
176
+ for (let index = this .length * 3, length = min * 3; index < length; index += 3)
194
177
  array .push (0, 0, 0, 1);
195
178
  };
196
179
  })(),
197
180
  getNormal: (function ()
198
181
  {
199
- var
182
+ const
200
183
  point1 = new Vector3 (0, 0, 0),
201
184
  point2 = new Vector3 (0, 0, 0),
202
185
  point3 = new Vector3 (0, 0, 0);
@@ -205,7 +188,7 @@ function (Fields,
205
188
  {
206
189
  // The index[1,2,3] cannot be less than 0.
207
190
 
208
- var length = this .length;
191
+ const length = this .length;
209
192
 
210
193
  if (index1 < length && index2 < length && index3 < length)
211
194
  {
@@ -220,7 +203,7 @@ function (Fields,
220
203
  })(),
221
204
  getQuadNormal: (function ()
222
205
  {
223
- var
206
+ const
224
207
  point1 = new Vector3 (0, 0, 0),
225
208
  point2 = new Vector3 (0, 0, 0),
226
209
  point3 = new Vector3 (0, 0, 0),
@@ -230,7 +213,7 @@ function (Fields,
230
213
  {
231
214
  // The index[1,2,3,4] cannot be less than 0.
232
215
 
233
- var length = this .length;
216
+ const length = this .length;
234
217
 
235
218
  if (index1 < length && index2 < length && index3 < length && index4 < length)
236
219
  {
@@ -133,18 +133,13 @@ function (Fields,
133
133
  },
134
134
  interpolate: function (index0, index1, weight)
135
135
  {
136
- try
137
- {
138
- this .getCoord (this ._keyValue [index0] .getValue (), this .keyValue0);
139
- this .getCoord (this ._keyValue [index1] .getValue (), this .keyValue1);
136
+ this .getCoord (this ._keyValue [index0] .getValue (), this .keyValue0);
137
+ this .getCoord (this ._keyValue [index1] .getValue (), this .keyValue1);
140
138
 
141
- var coord = this .geocentric .slerp (this .keyValue0, this .keyValue1, weight);
139
+ var coord = this .geocentric .slerp (this .keyValue0, this .keyValue1, weight);
142
140
 
143
- this ._geovalue_changed = this .getGeoCoord (coord, this .geovalue);
144
- this ._value_changed = coord;
145
- }
146
- catch (error)
147
- { }
141
+ this ._geovalue_changed = this .getGeoCoord (coord, this .geovalue);
142
+ this ._value_changed = coord;
148
143
  },
149
144
  });
150
145
 
@@ -119,25 +119,18 @@ function (Fields,
119
119
  },
120
120
  set_over__: function (over, hit, modelViewMatrix, projectionMatrix, viewport)
121
121
  {
122
- try
123
- {
124
- X3DTouchSensorNode .prototype .set_over__ .call (this, over, hit, modelViewMatrix, projectionMatrix, viewport);
122
+ X3DTouchSensorNode .prototype .set_over__ .call (this, over, hit, modelViewMatrix, projectionMatrix, viewport);
125
123
 
126
- if (this ._isOver .getValue ())
127
- {
128
- var intersection = hit .intersection;
124
+ if (this ._isOver .getValue ())
125
+ {
126
+ var intersection = hit .intersection;
129
127
 
130
- invModelViewMatrix .assign (modelViewMatrix) .inverse ();
128
+ invModelViewMatrix .assign (modelViewMatrix) .inverse ();
131
129
 
132
- this ._hitTexCoord_changed = intersection .texCoord;
133
- this ._hitNormal_changed = modelViewMatrix .multMatrixDir (intersection .normal .copy ()) .normalize ();
134
- this ._hitPoint_changed = invModelViewMatrix .multVecMatrix (intersection .point .copy ());
135
- this ._hitGeoCoord_changed = this .getGeoCoord (this ._hitPoint_changed .getValue (), geoCoords);
136
- }
137
- }
138
- catch (error)
139
- {
140
- console .error (error);
130
+ this ._hitTexCoord_changed = intersection .texCoord;
131
+ this ._hitNormal_changed = modelViewMatrix .multMatrixDir (intersection .normal .copy ()) .normalize ();
132
+ this ._hitPoint_changed = invModelViewMatrix .multVecMatrix (intersection .point .copy ());
133
+ this ._hitGeoCoord_changed = this .getGeoCoord (this ._hitPoint_changed .getValue (), geoCoords);
141
134
  }
142
135
  },
143
136
  });
@@ -124,26 +124,14 @@ function (Fields,
124
124
  },
125
125
  eventsProcessed: function ()
126
126
  {
127
- try
128
- {
129
- this .setHidden (this ._scale .x === 0 ||
130
- this ._scale .y === 0 ||
131
- this ._scale .z === 0);
127
+ this .getLocationMatrix (this ._geoCenter .getValue (), locationMatrix);
132
128
 
133
- this .getLocationMatrix (this ._geoCenter .getValue (), locationMatrix);
129
+ matrix .set (this ._translation .getValue (),
130
+ this ._rotation .getValue (),
131
+ this ._scale .getValue (),
132
+ this ._scaleOrientation .getValue ());
134
133
 
135
- matrix .set (this ._translation .getValue (),
136
- this ._rotation .getValue (),
137
- this ._scale .getValue (),
138
- this ._scaleOrientation .getValue ());
139
-
140
- this .setMatrix (matrix .multRight (locationMatrix) .multLeft (locationMatrix .inverse ()));
141
- }
142
- catch (error)
143
- {
144
- // Should normally not happen.
145
- this .setHidden (true);
146
- }
134
+ this .setMatrix (matrix .multRight (locationMatrix) .multLeft (locationMatrix .inverse ()));
147
135
  },
148
136
  });
149
137
 
@@ -130,42 +130,35 @@ function (X3DConstants,
130
130
  },
131
131
  set_originMatrix__: function ()
132
132
  {
133
- try
133
+ if (this .geoOriginNode)
134
134
  {
135
- if (this .geoOriginNode)
136
- {
137
- // Position
138
- var t = this .origin;
135
+ // Position
136
+ var t = this .origin;
139
137
 
140
- // Let's work out the orientation at that location in order
141
- // to maintain a view where +Y is in the direction of gravitional
142
- // up for that region of the planet's surface. This will be the
143
- // value of the rotation matrix for the transform.
138
+ // Let's work out the orientation at that location in order
139
+ // to maintain a view where +Y is in the direction of gravitional
140
+ // up for that region of the planet's surface. This will be the
141
+ // value of the rotation matrix for the transform.
144
142
 
145
- this .elevationFrame .normal (t, y);
143
+ this .elevationFrame .normal (t, y);
146
144
 
147
- x .set (0, 0, 1) .cross (y);
145
+ x .set (0, 0, 1) .cross (y);
148
146
 
149
- // Handle pole cases.
150
- if (x .equals (Vector3 .Zero))
151
- x .set (1, 0, 0);
147
+ // Handle pole cases.
148
+ if (x .equals (Vector3 .Zero))
149
+ x .set (1, 0, 0);
152
150
 
153
- z .assign (x) .cross (y);
151
+ z .assign (x) .cross (y);
154
152
 
155
- x .normalize ();
156
- z .normalize ();
153
+ x .normalize ();
154
+ z .normalize ();
157
155
 
158
- this .originMatrix .set (x .x, x .y, x .z, 0,
159
- y .x, y .y, y .z, 0,
160
- z .x, z .y, z .z, 0,
161
- t .x, t .y, t .z, 1);
156
+ this .originMatrix .set (x .x, x .y, x .z, 0,
157
+ y .x, y .y, y .z, 0,
158
+ z .x, z .y, z .z, 0,
159
+ t .x, t .y, t .z, 1);
162
160
 
163
- this .invOriginMatrix .assign (this .originMatrix) .inverse ();
164
- }
165
- }
166
- catch (error)
167
- {
168
- /// ???
161
+ this .invOriginMatrix .assign (this .originMatrix) .inverse ();
169
162
  }
170
163
  },
171
164
  set_rotateYUp__: function ()
@@ -587,18 +587,18 @@ function (X3DChildNode,
587
587
  {
588
588
  const
589
589
  pointingDeviceSensorNodes = this .pointingDeviceSensorNodes,
590
- clipPlaneNodes = this .clipPlaneNodes;
590
+ clipPlaneNodes = this .clipPlaneNodes,
591
+ sensors = this .sensors;
592
+
593
+ sensors .clear ();
591
594
 
592
595
  if (pointingDeviceSensorNodes .length)
593
596
  {
594
- const sensors = this .sensors;
595
-
596
- sensors .clear ();
597
-
598
- renderObject .getBrowser () .getSensors () .push (sensors);
599
-
600
597
  for (const pointingDeviceSensorNode of pointingDeviceSensorNodes)
601
598
  pointingDeviceSensorNode .push (renderObject, sensors);
599
+
600
+ if (sensors .size)
601
+ renderObject .getBrowser () .getSensors () .push (sensors);
602
602
  }
603
603
 
604
604
  for (const clipPlaneNode of clipPlaneNodes)
@@ -610,7 +610,7 @@ function (X3DChildNode,
610
610
  for (const clipPlaneNode of clipPlaneNodes)
611
611
  clipPlaneNode .pop (renderObject);
612
612
 
613
- if (pointingDeviceSensorNodes .length)
613
+ if (sensors .size)
614
614
  renderObject .getBrowser () .getSensors () .pop ();
615
615
 
616
616
  return;
@@ -79,10 +79,6 @@ function (X3DTransformMatrix3DNode,
79
79
  },
80
80
  eventsProcessed: function ()
81
81
  {
82
- this .setHidden (this ._scale .x === 0 ||
83
- this ._scale .y === 0 ||
84
- this ._scale .z === 0);
85
-
86
82
  this .setTransform (this ._translation .getValue (),
87
83
  this ._rotation .getValue (),
88
84
  this ._scale .getValue (),
@@ -255,103 +255,96 @@ function (Fields,
255
255
 
256
256
  return function (type, renderObject)
257
257
  {
258
- try
259
- {
260
- if (type !== TraverseType .CAMERA)
261
- return;
258
+ if (type !== TraverseType .CAMERA)
259
+ return;
262
260
 
263
- if (! this .skinCoordNode)
264
- return;
261
+ if (! this .skinCoordNode)
262
+ return;
265
263
 
266
- var
267
- jointNodes = this .jointNodes,
268
- skinNormalNode = this .skinNormalNode,
269
- skinCoordNode = this .skinCoordNode,
270
- restNormalNode = this .restNormalNode,
271
- restCoordNode = this .restCoordNode;
264
+ var
265
+ jointNodes = this .jointNodes,
266
+ skinNormalNode = this .skinNormalNode,
267
+ skinCoordNode = this .skinCoordNode,
268
+ restNormalNode = this .restNormalNode,
269
+ restCoordNode = this .restCoordNode;
272
270
 
273
- // Reset skin normals and coords.
271
+ // Reset skin normals and coords.
274
272
 
275
- if (skinNormalNode)
276
- skinNormalNode ._vector .assign (restNormalNode ._vector);
273
+ if (skinNormalNode)
274
+ skinNormalNode ._vector .assign (restNormalNode ._vector);
277
275
 
278
- skinCoordNode ._point .assign (restCoordNode ._point);
276
+ skinCoordNode ._point .assign (restCoordNode ._point);
279
277
 
280
- // Determine inverse model matrix of humanoid.
278
+ // Determine inverse model matrix of humanoid.
281
279
 
282
- invModelMatrix .assign (this .transformNode .getMatrix ()) .multRight (renderObject .getModelViewMatrix () .get ()) .inverse ();
280
+ invModelMatrix .assign (this .transformNode .getMatrix ()) .multRight (renderObject .getModelViewMatrix () .get ()) .inverse ();
283
281
 
284
- // Apply joint transformations.
282
+ // Apply joint transformations.
285
283
 
286
- for (var j = 0, jointNodesLength = jointNodes .length; j < jointNodesLength; ++ j)
287
- {
288
- var
289
- jointNode = jointNodes [j],
290
- skinCoordIndexLength = jointNode ._skinCoordIndex .length;
284
+ for (var j = 0, jointNodesLength = jointNodes .length; j < jointNodesLength; ++ j)
285
+ {
286
+ var
287
+ jointNode = jointNodes [j],
288
+ skinCoordIndexLength = jointNode ._skinCoordIndex .length;
291
289
 
292
- if (skinCoordIndexLength === 0)
293
- continue;
290
+ if (skinCoordIndexLength === 0)
291
+ continue;
294
292
 
295
- var
296
- jointMatrix = jointNode .getModelMatrix () .multRight (invModelMatrix),
297
- displacerNodes = jointNode .getDisplacers ();
293
+ var
294
+ jointMatrix = jointNode .getModelMatrix () .multRight (invModelMatrix),
295
+ displacerNodes = jointNode .getDisplacers ();
298
296
 
299
- for (var d = 0, displacerNodesLength = displacerNodes .length; d < displacerNodesLength; ++ d)
297
+ for (var d = 0, displacerNodesLength = displacerNodes .length; d < displacerNodesLength; ++ d)
298
+ {
299
+ var
300
+ displacerNode = displacerNodes [d],
301
+ coordIndex = displacerNode ._coordIndex .getValue (),
302
+ coordIndexLength = displacerNode ._coordIndex .length,
303
+ weight = displacerNode ._weight .getValue (),
304
+ displacements = displacerNode ._displacements .getValue (),
305
+ displacementsLength = displacerNode ._displacements .length;
306
+
307
+ for (var i = 0; i < coordIndexLength; ++ i)
300
308
  {
301
309
  var
302
- displacerNode = displacerNodes [d],
303
- coordIndex = displacerNode ._coordIndex .getValue (),
304
- coordIndexLength = displacerNode ._coordIndex .length,
305
- weight = displacerNode ._weight .getValue (),
306
- displacements = displacerNode ._displacements .getValue (),
307
- displacementsLength = displacerNode ._displacements .length;
308
-
309
- for (var i = 0; i < coordIndexLength; ++ i)
310
- {
311
- var
312
- i3 = i * 3,
313
- index = coordIndex [i],
314
- displacement = i < displacementsLength ? point .set (displacements [i3], displacements [i3 + 1], displacements [i3 + 2]) : point .assign (Vector3 .Zero);
315
-
316
- skinCoordNode .get1Point (index, skin);
317
- jointMatrix .multDirMatrix (displacement) .multiply (weight) .add (skin);
318
- skinCoordNode .set1Point (index, displacement);
319
- }
310
+ i3 = i * 3,
311
+ index = coordIndex [i],
312
+ displacement = i < displacementsLength ? point .set (displacements [i3], displacements [i3 + 1], displacements [i3 + 2]) : point .assign (Vector3 .Zero);
313
+
314
+ skinCoordNode .get1Point (index, skin);
315
+ jointMatrix .multDirMatrix (displacement) .multiply (weight) .add (skin);
316
+ skinCoordNode .set1Point (index, displacement);
320
317
  }
318
+ }
321
319
 
320
+ var
321
+ normalMatrix = skinNormalNode ? jointMatrix .submatrix .transpose () .inverse () : null,
322
+ skinCoordIndex = jointNode ._skinCoordIndex .getValue (),
323
+ skinCoordWeight = jointNode ._skinCoordWeight .getValue (),
324
+ skinCoordWeightLength = jointNode ._skinCoordWeight .length;
325
+
326
+ for (var i = 0; i < skinCoordIndexLength; ++ i)
327
+ {
322
328
  var
323
- normalMatrix = skinNormalNode ? jointMatrix .submatrix .transpose () .inverse () : null,
324
- skinCoordIndex = jointNode ._skinCoordIndex .getValue (),
325
- skinCoordWeight = jointNode ._skinCoordWeight .getValue (),
326
- skinCoordWeightLength = jointNode ._skinCoordWeight .length;
329
+ index = skinCoordIndex [i],
330
+ weight = i < skinCoordWeightLength ? skinCoordWeight [i] : 1;
327
331
 
328
- for (var i = 0; i < skinCoordIndexLength; ++ i)
332
+ if (skinNormalNode)
329
333
  {
330
- var
331
- index = skinCoordIndex [i],
332
- weight = i < skinCoordWeightLength ? skinCoordWeight [i] : 1;
333
-
334
- if (skinNormalNode)
335
- {
336
- rest .assign (restNormalNode .get1Vector (index, vector));
337
- skinNormalNode .get1Vector (index, skin);
338
- normalMatrix .multVecMatrix (vector) .subtract (rest) .multiply (weight) .add (skin);
339
- skinNormalNode .set1Vector (index, vector);
340
- // Should the normals be normalzed at end, or let it the shader do?
341
- }
342
-
343
- //skin += (rest * J - rest) * weight
344
- rest .assign (restCoordNode .get1Point (index, point));
345
- skinCoordNode .get1Point (index, skin);
346
- jointMatrix .multVecMatrix (point) .subtract (rest) .multiply (weight) .add (skin);
347
- skinCoordNode .set1Point (index, point);
334
+ rest .assign (restNormalNode .get1Vector (index, vector));
335
+ skinNormalNode .get1Vector (index, skin);
336
+ normalMatrix .multVecMatrix (vector) .subtract (rest) .multiply (weight) .add (skin);
337
+ skinNormalNode .set1Vector (index, vector);
338
+ // Should the normals be normalized at end, or let it the shader do?
348
339
  }
340
+
341
+ //skin += (rest * J - rest) * weight
342
+ rest .assign (restCoordNode .get1Point (index, point));
343
+ skinCoordNode .get1Point (index, skin);
344
+ jointMatrix .multVecMatrix (point) .subtract (rest) .multiply (weight) .add (skin);
345
+ skinCoordNode .set1Point (index, point);
349
346
  }
350
347
  }
351
- catch (error)
352
- {
353
- console .error (error);
354
- }
355
348
  };
356
349
  })(),
357
350
  });
@@ -119,18 +119,11 @@ function (Fields,
119
119
 
120
120
  return function (index0, index1, weight)
121
121
  {
122
- try
123
- {
124
- // Both values can change in slerp.
125
- keyValue0 .assign (this ._keyValue [index0] .getValue ());
126
- keyValue1 .assign (this ._keyValue [index1] .getValue ());
122
+ // Both values can change in slerp.
123
+ keyValue0 .assign (this ._keyValue [index0] .getValue ());
124
+ keyValue1 .assign (this ._keyValue [index1] .getValue ());
127
125
 
128
- this ._value_changed = keyValue0 .slerp (keyValue1, weight);
129
- }
130
- catch (error)
131
- {
132
- //console .error (error);
133
- }
126
+ this ._value_changed = keyValue0 .slerp (keyValue1, weight);
134
127
  };
135
128
  }) (),
136
129
  });
@@ -107,7 +107,7 @@ function (X3DChildNode,
107
107
  if (fraction <= key [0])
108
108
  return this .interpolate (0, 1, 0);
109
109
 
110
- const index1 = Algorithm .upperBound (key, 0, length, fraction, Algorithm .less);
110
+ const index1 = Algorithm .upperBound (key, 0, length, fraction);
111
111
 
112
112
  if (index1 !== length)
113
113
  {
@@ -131,15 +131,10 @@ function (Fields,
131
131
  },
132
132
  getMatrix: function ()
133
133
  {
134
- try
135
- {
136
- if (this .layoutNode)
137
- this .matrix .assign (this .modelViewMatrix) .inverse () .multLeft (this .screenMatrix);
138
- else
139
- this .matrix .identity ();
140
- }
141
- catch (error)
142
- { }
134
+ if (this .layoutNode)
135
+ this .matrix .assign (this .modelViewMatrix) .inverse () .multLeft (this .screenMatrix);
136
+ else
137
+ this .matrix .identity ();
143
138
 
144
139
  return this .matrix;
145
140
  },
@@ -104,7 +104,7 @@ function (Fields,
104
104
  },
105
105
  getScale: function ()
106
106
  {
107
- return this ._pointSize .getValue () * this .getBrowser () .getPointSize ();
107
+ return this ._pointSize .getValue () * this .getBrowser () .getPixelPerPoint ();
108
108
  },
109
109
  });
110
110
 
@@ -169,31 +169,26 @@ function (Fields,
169
169
  })(),
170
170
  traverse: function (type, renderObject)
171
171
  {
172
- try
172
+ switch (type)
173
173
  {
174
- switch (type)
175
- {
176
- case TraverseType .CAMERA:
177
- case TraverseType .PICKING:
178
- case TraverseType .SHADOW: // ???
179
- // No clone support for shadow, generated cube map texture and bbox
180
- break;
181
- default:
182
- this .scale (renderObject);
183
- break;
184
- }
185
-
186
- var modelViewMatrix = renderObject .getModelViewMatrix ();
187
-
188
- modelViewMatrix .push ();
189
- modelViewMatrix .multLeft (this .matrix);
190
-
191
- X3DGroupingNode .prototype .traverse .call (this, type, renderObject);
192
-
193
- modelViewMatrix .pop ();
174
+ case TraverseType .CAMERA:
175
+ case TraverseType .PICKING:
176
+ case TraverseType .SHADOW: // ???
177
+ // No clone support for shadow, generated cube map texture and bbox
178
+ break;
179
+ default:
180
+ this .scale (renderObject);
181
+ break;
194
182
  }
195
- catch (error)
196
- { }
183
+
184
+ var modelViewMatrix = renderObject .getModelViewMatrix ();
185
+
186
+ modelViewMatrix .push ();
187
+ modelViewMatrix .multLeft (this .matrix);
188
+
189
+ X3DGroupingNode .prototype .traverse .call (this, type, renderObject);
190
+
191
+ modelViewMatrix .pop ();
197
192
  },
198
193
  });
199
194