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
@@ -324,57 +324,50 @@ function (TextureBuffer,
324
324
  {
325
325
  /// Returns the distance to the closest object in @a direction. The maximum determinable value is avatarHeight * 2.
326
326
 
327
- try
328
- {
329
- const t0 = performance .now ();
327
+ const t0 = performance .now ();
330
328
 
331
- const
332
- viewpoint = this .getViewpoint (),
333
- navigationInfo = this .getNavigationInfo (),
334
- collisionRadius = navigationInfo .getCollisionRadius (),
335
- bottom = navigationInfo .getStepHeight () - navigationInfo .getAvatarHeight (),
336
- nearValue = navigationInfo .getNearValue (),
337
- avatarHeight = navigationInfo .getAvatarHeight ();
329
+ const
330
+ viewpoint = this .getViewpoint (),
331
+ navigationInfo = this .getNavigationInfo (),
332
+ collisionRadius = navigationInfo .getCollisionRadius (),
333
+ bottom = navigationInfo .getStepHeight () - navigationInfo .getAvatarHeight (),
334
+ nearValue = navigationInfo .getNearValue (),
335
+ avatarHeight = navigationInfo .getAvatarHeight ();
338
336
 
339
- // Determine width and height of camera
337
+ // Determine width and height of camera
340
338
 
341
- // Reshape camera
339
+ // Reshape camera
342
340
 
343
- Camera .ortho (-collisionRadius,
344
- collisionRadius,
345
- Math .min (bottom, -collisionRadius), /// TODO: bottom could be a positive value if stepHeight > avatarHeight.
346
- collisionRadius,
347
- nearValue,
348
- Math .max (collisionRadius * 2, avatarHeight * 2),
349
- projectionMatrix);
341
+ Camera .ortho (-collisionRadius,
342
+ collisionRadius,
343
+ Math .min (bottom, -collisionRadius), /// TODO: bottom could be a positive value if stepHeight > avatarHeight.
344
+ collisionRadius,
345
+ nearValue,
346
+ Math .max (collisionRadius * 2, avatarHeight * 2),
347
+ projectionMatrix);
350
348
 
351
- // Translate camera to user position and to look in the direction of the direction.
349
+ // Translate camera to user position and to look in the direction of the direction.
352
350
 
353
- localOrientation .assign (viewpoint ._orientation .getValue ()) .inverse () .multRight (viewpoint .getOrientation ());
354
- rotation .setFromToVec (Vector3 .zAxis, vector .assign (direction) .negate ()) .multRight (localOrientation);
355
- viewpoint .straightenHorizon (rotation);
351
+ localOrientation .assign (viewpoint ._orientation .getValue ()) .inverse () .multRight (viewpoint .getOrientation ());
352
+ rotation .setFromToVec (Vector3 .zAxis, vector .assign (direction) .negate ()) .multRight (localOrientation);
353
+ viewpoint .straightenHorizon (rotation);
356
354
 
357
- cameraSpaceProjectionMatrix .assign (viewpoint .getModelMatrix ());
358
- cameraSpaceProjectionMatrix .translate (viewpoint .getUserPosition ());
359
- cameraSpaceProjectionMatrix .rotate (rotation);
360
- cameraSpaceProjectionMatrix .inverse ();
355
+ cameraSpaceProjectionMatrix .assign (viewpoint .getModelMatrix ());
356
+ cameraSpaceProjectionMatrix .translate (viewpoint .getUserPosition ());
357
+ cameraSpaceProjectionMatrix .rotate (rotation);
358
+ cameraSpaceProjectionMatrix .inverse ();
361
359
 
362
- cameraSpaceProjectionMatrix .multRight (projectionMatrix);
363
- cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
360
+ cameraSpaceProjectionMatrix .multRight (projectionMatrix);
361
+ cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
364
362
 
365
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
363
+ this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
366
364
 
367
- const depth = this .getDepth (projectionMatrix);
365
+ const depth = this .getDepth (projectionMatrix);
368
366
 
369
- this .getProjectionMatrix () .pop ();
367
+ this .getProjectionMatrix () .pop ();
370
368
 
371
- this .collisionTime += performance .now () - t0;
372
- return -depth;
373
- }
374
- catch (error)
375
- {
376
- console .error (error);
377
- }
369
+ this .collisionTime += performance .now () - t0;
370
+ return -depth;
378
371
  };
379
372
  })(),
380
373
  getDepth: (function ()
@@ -613,28 +606,21 @@ function (TextureBuffer,
613
606
 
614
607
  for (let i = 0, length = this .numCollisionShapes; i < length; ++ i)
615
608
  {
616
- try
609
+ const
610
+ context = this .collisionShapes [i],
611
+ collisions = context .collisions;
612
+
613
+ if (collisions .length)
617
614
  {
618
- const
619
- context = this .collisionShapes [i],
620
- collisions = context .collisions;
615
+ collisionBox .set (collisionSize, Vector3 .Zero);
616
+ collisionBox .multRight (invModelViewMatrix .assign (context .modelViewMatrix) .inverse ());
621
617
 
622
- if (collisions .length)
618
+ if (context .shapeNode .intersectsBox (collisionBox, context .clipPlanes, modelViewMatrix .assign (context .modelViewMatrix)))
623
619
  {
624
- collisionBox .set (collisionSize, Vector3 .Zero);
625
- collisionBox .multRight (invModelViewMatrix .assign (context .modelViewMatrix) .inverse ());
626
-
627
- if (context .shapeNode .intersectsBox (collisionBox, context .clipPlanes, modelViewMatrix .assign (context .modelViewMatrix)))
628
- {
629
- for (const collision of collisions)
630
- activeCollisions .add (collision);
631
- }
620
+ for (const collision of collisions)
621
+ activeCollisions .add (collision);
632
622
  }
633
623
  }
634
- catch (error)
635
- {
636
- console .error (error);
637
- }
638
624
  }
639
625
 
640
626
  // Set isActive to FALSE for affected nodes.
@@ -667,122 +653,115 @@ function (TextureBuffer,
667
653
 
668
654
  return function ()
669
655
  {
670
- try
656
+ const
657
+ browser = this .getBrowser (),
658
+ shaderNode = browser .getDepthShader ();
659
+
660
+ if (shaderNode .isValid ())
671
661
  {
672
- const
673
- browser = this .getBrowser (),
674
- shaderNode = browser .getDepthShader ();
662
+ // Terrain following and gravitation
675
663
 
676
- if (shaderNode .getValid ())
664
+ if (browser .getActiveLayer () === this)
677
665
  {
678
- // Terrain following and gravitation
679
-
680
- if (browser .getActiveLayer () === this)
681
- {
682
- if (browser .getCurrentViewer () !== "WALK")
683
- return;
684
- }
685
- else if (this .getNavigationInfo () .getViewer () !== "WALK")
666
+ if (browser .getCurrentViewer () !== "WALK")
686
667
  return;
668
+ }
669
+ else if (this .getNavigationInfo () .getViewer () !== "WALK")
670
+ return;
687
671
 
688
- // Get NavigationInfo values
689
-
690
- const
691
- navigationInfo = this .getNavigationInfo (),
692
- viewpoint = this .getViewpoint (),
693
- collisionRadius = navigationInfo .getCollisionRadius (),
694
- nearValue = navigationInfo .getNearValue (),
695
- avatarHeight = navigationInfo .getAvatarHeight (),
696
- stepHeight = navigationInfo .getStepHeight ();
672
+ // Get NavigationInfo values
697
673
 
698
- // Reshape viewpoint for gravite.
674
+ const
675
+ navigationInfo = this .getNavigationInfo (),
676
+ viewpoint = this .getViewpoint (),
677
+ collisionRadius = navigationInfo .getCollisionRadius (),
678
+ nearValue = navigationInfo .getNearValue (),
679
+ avatarHeight = navigationInfo .getAvatarHeight (),
680
+ stepHeight = navigationInfo .getStepHeight ();
699
681
 
700
- Camera .ortho (-collisionRadius,
701
- collisionRadius,
702
- -collisionRadius,
703
- collisionRadius,
704
- nearValue,
705
- Math .max (collisionRadius * 2, avatarHeight * 2),
706
- projectionMatrix);
682
+ // Reshape viewpoint for gravite.
707
683
 
708
- // Transform viewpoint to look down the up vector
684
+ Camera .ortho (-collisionRadius,
685
+ collisionRadius,
686
+ -collisionRadius,
687
+ collisionRadius,
688
+ nearValue,
689
+ Math .max (collisionRadius * 2, avatarHeight * 2),
690
+ projectionMatrix);
709
691
 
710
- const
711
- upVector = viewpoint .getUpVector (),
712
- down = rotation .setFromToVec (Vector3 .zAxis, upVector);
692
+ // Transform viewpoint to look down the up vector
713
693
 
714
- cameraSpaceProjectionMatrix .assign (viewpoint .getModelMatrix ());
715
- cameraSpaceProjectionMatrix .translate (viewpoint .getUserPosition ());
716
- cameraSpaceProjectionMatrix .rotate (down);
717
- cameraSpaceProjectionMatrix .inverse ();
694
+ const
695
+ upVector = viewpoint .getUpVector (),
696
+ down = rotation .setFromToVec (Vector3 .zAxis, upVector);
718
697
 
719
- cameraSpaceProjectionMatrix .multRight (projectionMatrix);
720
- cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
698
+ cameraSpaceProjectionMatrix .assign (viewpoint .getModelMatrix ());
699
+ cameraSpaceProjectionMatrix .translate (viewpoint .getUserPosition ());
700
+ cameraSpaceProjectionMatrix .rotate (down);
701
+ cameraSpaceProjectionMatrix .inverse ();
721
702
 
722
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
703
+ cameraSpaceProjectionMatrix .multRight (projectionMatrix);
704
+ cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
723
705
 
724
- let distance = -this .getDepth (projectionMatrix);
706
+ this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
725
707
 
726
- this .getProjectionMatrix () .pop ();
708
+ let distance = -this .getDepth (projectionMatrix);
727
709
 
728
- // Gravite or step up
710
+ this .getProjectionMatrix () .pop ();
729
711
 
730
- distance -= avatarHeight;
712
+ // Gravite or step up
731
713
 
732
- const up = rotation .setFromToVec (Vector3 .yAxis, upVector);
714
+ distance -= avatarHeight;
733
715
 
734
- if (distance > 0)
735
- {
736
- // Gravite and fall down the to the floor
716
+ const up = rotation .setFromToVec (Vector3 .yAxis, upVector);
737
717
 
738
- const currentFrameRate = this .speed ? browser .getCurrentFrameRate () : 1000000;
718
+ if (distance > 0)
719
+ {
720
+ // Gravite and fall down the to the floor
739
721
 
740
- this .speed -= browser .getBrowserOptions () ._Gravity .getValue () / currentFrameRate;
722
+ const currentFrameRate = this .speed ? browser .getCurrentFrameRate () : 1000000;
741
723
 
742
- let y = this .speed / currentFrameRate;
724
+ this .speed -= browser .getBrowserOptions () ._Gravity .getValue () / currentFrameRate;
743
725
 
744
- if (y < -distance)
745
- {
746
- // The ground is reached.
747
- y = -distance;
748
- this .speed = 0;
749
- }
726
+ let y = this .speed / currentFrameRate;
750
727
 
751
- viewpoint ._positionOffset = viewpoint ._positionOffset .getValue () .add (up .multVecRot (translation .set (0, y, 0)));
752
- }
753
- else
728
+ if (y < -distance)
754
729
  {
730
+ // The ground is reached.
731
+ y = -distance;
755
732
  this .speed = 0;
733
+ }
756
734
 
757
- distance = -distance;
758
-
759
- if (distance > 0.01 && distance < stepHeight)
760
- {
761
- // Step up
762
- this .constrainTranslation (up .multVecRot (translation .set (0, distance, 0)), false);
763
-
764
- //if (getBrowser () -> getBrowserOptions () -> animateStairWalks ())
765
- //{
766
- // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
767
- // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
768
- //
769
- // Vector3f offset = Vector3f (0, step, 0) * up;
770
- //
771
- // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
772
- // offset = translation;
773
- //
774
- // getViewpoint () -> positionOffset () += offset;
775
- //}
776
- //else
777
- viewpoint ._positionOffset = translation .add (viewpoint ._positionOffset .getValue ());
778
- }
735
+ viewpoint ._positionOffset = viewpoint ._positionOffset .getValue () .add (up .multVecRot (translation .set (0, y, 0)));
736
+ }
737
+ else
738
+ {
739
+ this .speed = 0;
740
+
741
+ distance = -distance;
742
+
743
+ if (distance > 0.01 && distance < stepHeight)
744
+ {
745
+ // Step up
746
+ this .constrainTranslation (up .multVecRot (translation .set (0, distance, 0)), false);
747
+
748
+ //if (getBrowser () -> getBrowserOptions () -> animateStairWalks ())
749
+ //{
750
+ // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
751
+ // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
752
+ //
753
+ // Vector3f offset = Vector3f (0, step, 0) * up;
754
+ //
755
+ // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
756
+ // offset = translation;
757
+ //
758
+ // getViewpoint () -> positionOffset () += offset;
759
+ //}
760
+ //else
761
+ viewpoint ._positionOffset = translation .add (viewpoint ._positionOffset .getValue ());
779
762
  }
780
763
  }
781
764
  }
782
- catch (error)
783
- {
784
- console .error (error);
785
- }
786
765
  };
787
766
  })(),
788
767
  depth: (function ()
@@ -799,7 +778,7 @@ function (TextureBuffer,
799
778
 
800
779
  // Configure depth shader.
801
780
 
802
- if (shaderNode .getValid ())
781
+ if (shaderNode .isValid ())
803
782
  {
804
783
  shaderNode .enable (gl);
805
784
 
package/src/x_ite/X3D.js CHANGED
@@ -126,35 +126,43 @@ function ($,
126
126
 
127
127
  function createBrowser (url, parameter)
128
128
  {
129
- const element = $("<X3DCanvas></X3DCanvas>");
129
+ const element = $("<x3d-canvas></x3d-canvas>");
130
130
 
131
131
  if (url instanceof Fields .MFString)
132
132
  element .attr ("url", url .toString ())
133
133
 
134
- createBrowserFromElement (element);
135
-
136
- return element [0];
134
+ return element .get (0);
137
135
  }
138
136
 
139
- function getBrowser (dom)
137
+ function getBrowser (element)
140
138
  {
141
- return $(dom || "X3DCanvas") .data ("browser");
139
+ return $(element || "x3d-canvas, X3DCanvas") .data ("browser");
142
140
  }
143
141
 
144
- function createBrowserFromElement (dom)
142
+ function createBrowserFromElement (element)
145
143
  {
146
- dom = $(dom);
144
+ try
145
+ {
146
+ element = $(element);
147
147
 
148
- if (dom .find (".x_ite-private-browser") .length)
149
- return;
148
+ if (element .find (".x_ite-private-browser") .length)
149
+ return;
150
+
151
+ const browser = new X3DBrowser (element);
150
152
 
151
- const browser = new X3DBrowser (dom);
153
+ element .data ("browser", browser);
152
154
 
153
- dom .data ("browser", browser);
155
+ browser .setup ();
154
156
 
155
- browser .setup ();
157
+ setTimeout (function () { callbacks .resolve (); }, 1);
156
158
 
157
- return browser;
159
+ return browser;
160
+ }
161
+ catch (error)
162
+ {
163
+ Fallback .show ($("x3d-canvas, X3DCanvas"), error);
164
+ fallbacks .resolve (error);
165
+ }
158
166
  }
159
167
 
160
168
  const
@@ -180,18 +188,10 @@ function ($,
180
188
  {
181
189
  const elements = $("X3DCanvas");
182
190
 
183
- elements .children () .hide ();
184
-
185
- try
186
- {
187
- $.map (elements, createBrowserFromElement);
188
- callbacks .resolve ();
189
- }
190
- catch (error)
191
- {
192
- Fallback .show (elements, error);
193
- fallbacks .resolve (error);
194
- }
191
+ if (elements .length)
192
+ console .warn ("Use of <X3DCanvas> element is depreciated, please use <x3d-canvas> element instead.");
193
+
194
+ $.map (elements, createBrowserFromElement);
195
195
  });
196
196
  }
197
197
 
@@ -199,11 +199,17 @@ function ($,
199
199
 
200
200
  Object .assign (X3D,
201
201
  {
202
+ hidden: [
203
+ "hidden",
204
+ "createBrowserFromElement",
205
+ ],
206
+
202
207
  require: require,
203
208
  define: define,
204
209
 
205
210
  getBrowser: getBrowser,
206
211
  createBrowser: createBrowser,
212
+ createBrowserFromElement: createBrowserFromElement,
207
213
 
208
214
  X3DConstants: X3DConstants,
209
215
  X3DBrowser: X3DBrowser,
@@ -36,11 +36,6 @@ require .config ({
36
36
  "location": "../node_modules/opentype.js",
37
37
  "main": "dist/opentype.js"
38
38
  },
39
- {
40
- "name": "contextMenu",
41
- "location": "../node_modules/jquery-contextmenu",
42
- "main": "dist/jquery.contextMenu.js"
43
- },
44
39
  {
45
40
  "name": "nurbs",
46
41
  "location": "lib/nurbs",