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
@@ -0,0 +1,103 @@
1
+ /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
2
+ *******************************************************************************
3
+ *
4
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5
+ *
6
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011.
7
+ *
8
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
9
+ *
10
+ * The copyright notice above does not evidence any actual of intended
11
+ * publication of such source code, and is an unpublished work by create3000.
12
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
13
+ * create3000.
14
+ *
15
+ * No permission is granted to copy, distribute, or create derivative works from
16
+ * the contents of this software, in whole or in part, without the prior written
17
+ * permission of create3000.
18
+ *
19
+ * NON-MILITARY USE ONLY
20
+ *
21
+ * All create3000 software are effectively free software with a non-military use
22
+ * restriction. It is free. Well commented source is provided. You may reuse the
23
+ * source in any way you please with the exception anything that uses it must be
24
+ * marked to indicate is contains 'non-military use only' components.
25
+ *
26
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
27
+ *
28
+ * Copyright 2015, 2016 Holger Seelig <holger.seelig@yahoo.de>.
29
+ *
30
+ * This file is part of the X_ITE Project.
31
+ *
32
+ * X_ITE is free software: you can redistribute it and/or modify it under the
33
+ * terms of the GNU General Public License version 3 only, as published by the
34
+ * Free Software Foundation.
35
+ *
36
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
37
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
38
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
39
+ * details (a copy is included in the LICENSE file that accompanied this code).
40
+ *
41
+ * You should have received a copy of the GNU General Public License version 3
42
+ * along with X_ITE. If not, see <http://www.gnu.org/licenses/gpl.html> for a
43
+ * copy of the GPLv3 License.
44
+ *
45
+ * For Silvio, Joy and Adi.
46
+ *
47
+ ******************************************************************************/
48
+
49
+
50
+ define (function ()
51
+ {
52
+ "use strict";
53
+
54
+ function VertexArray ()
55
+ {
56
+ this .vertexArray = null;
57
+ this .shaderNode = null;
58
+ this .tainted = true;
59
+ }
60
+
61
+ VertexArray .prototype =
62
+ {
63
+ update: function (value = true)
64
+ {
65
+ this .tainted = this .tainted || value;
66
+
67
+ return this;
68
+ },
69
+ enable: function (gl, shaderNode)
70
+ {
71
+ if (this .tainted || this .shaderNode !== shaderNode)
72
+ {
73
+ gl .deleteVertexArray (this .vertexArray);
74
+
75
+ this .vertexArray = gl .createVertexArray ();
76
+ this .shaderNode = shaderNode;
77
+ this .tainted = false;
78
+
79
+ gl .bindVertexArray (this .vertexArray);
80
+
81
+ // console .log ("update vao");
82
+
83
+ return true;
84
+ }
85
+ else
86
+ {
87
+ gl .bindVertexArray (this .vertexArray);
88
+
89
+ return false;
90
+ }
91
+ },
92
+ disable: function (gl)
93
+ {
94
+ gl .bindVertexArray (null);
95
+ },
96
+ delete: function (gl)
97
+ {
98
+ gl .deleteVertexArray (this .vertexArray);
99
+ },
100
+ };
101
+
102
+ return VertexArray;
103
+ });
@@ -290,7 +290,7 @@ function (TextureBuffer,
290
290
  {
291
291
  // Move.
292
292
 
293
- const length = translation .abs ();
293
+ const length = translation .magnitude ();
294
294
 
295
295
  if (length > distance)
296
296
  {
@@ -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 ()
@@ -452,7 +445,7 @@ function (TextureBuffer,
452
445
  modelViewMatrix .multVecMatrix (bboxCenter .assign (shapeNode .getBBoxCenter ()));
453
446
 
454
447
  const
455
- radius = bboxSize .abs () / 2,
448
+ radius = bboxSize .magnitude () / 2,
456
449
  viewVolume = this .viewVolumes .at (-1);
457
450
 
458
451
  if (viewVolume .intersectsSphere (radius, bboxCenter))
@@ -498,7 +491,7 @@ function (TextureBuffer,
498
491
  modelViewMatrix .multVecMatrix (bboxCenter .assign (shapeNode .getBBoxCenter ()));
499
492
 
500
493
  const
501
- radius = bboxSize .abs () / 2,
494
+ radius = bboxSize .magnitude () / 2,
502
495
  viewVolume = this .viewVolumes .at (-1);
503
496
 
504
497
  if (viewVolume .intersectsSphere (radius, bboxCenter))
@@ -540,7 +533,7 @@ function (TextureBuffer,
540
533
  modelViewMatrix .multVecMatrix (bboxCenter .assign (shapeNode .getBBoxCenter ()));
541
534
 
542
535
  const
543
- radius = bboxSize .abs () / 2,
536
+ radius = bboxSize .magnitude () / 2,
544
537
  viewVolume = this .viewVolumes .at (-1);
545
538
 
546
539
  if (viewVolume .intersectsSphere (radius, bboxCenter))
@@ -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",