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
package/docs/index.md CHANGED
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Getting Started
2
8
 
3
9
  ## Overview
@@ -816,6 +822,8 @@ It can be used in [Electron](https://www.electronjs.org) apps in the **renderer
816
822
  const X3D = require ("x_ite")
817
823
  ```
818
824
 
825
+ Make sure that contextIsolation is set to **false** when creating a BrowserWindow instance.
826
+
819
827
  ### Using X\_ITE with a CDN
820
828
 
821
829
  CDNs can offer a performance benefit by hosting X\_ITE on servers spread across the globe. This also offers an advantage that if the visitor to your webpage has already downloaded a copy of X\_ITE from the same CDN, it won't have to be re-downloaded. To use the X\_ITE CDN, just reference the CSS and JavaScript file in the script element directly from the GitHub CDN or jsDelivr CDN domain.
@@ -829,7 +837,6 @@ GitCDN serves raw files directly from GitHub with proper Content-Type headers an
829
837
  If you are a developer or you always wanna be up to date:
830
838
 
831
839
  ```html
832
- <link rel="stylesheet" type="text/css" href="https://create3000.github.io/code/x_ite/latest/dist/x_ite.css"/>
833
840
  <script type="text/javascript" src="https://create3000.github.io/code/x_ite/latest/dist/x_ite.min.js"></script>
834
841
  ```
835
842
 
@@ -838,8 +845,7 @@ If you are a developer or you always wanna be up to date:
838
845
  If you are on production and everything works fine, then use a numbered version.
839
846
 
840
847
  ```html
841
- <link rel="stylesheet" type="text/css" href="https://create3000.github.io/code/x_ite/5.0.3/dist/x_ite.css"/>
842
- <script type="text/javascript" src="https://create3000.github.io/code/x_ite/5.0.3/dist/x_ite.min.js"></script>
848
+ <script type="text/javascript" src="https://create3000.github.io/code/x_ite/6.1.0/dist/x_ite.min.js"></script>
843
849
  ```
844
850
 
845
851
  ### jsDelivr CDN
@@ -849,56 +855,42 @@ Open Source CDN, free, fast, and reliable.
849
855
  #### Snipped
850
856
 
851
857
  ```html
852
- <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/create3000/x_ite@latest/dist/x_ite.css"/>
853
858
  <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/create3000/x_ite@latest/dist/x_ite.min.js"></script>
854
859
  ```
855
860
 
856
- ## WordPress Plug-In
857
-
858
- WordPress users can use our plug-in to embed X\_ITE into their web page.
859
-
860
- [Download WordPress plug-in](https://github.com/create3000/x_ite-wordpress/raw/main/dist/x_ite.zip)
861
-
862
- ### Installation
863
-
864
- 1. Unzip package and put it into the *plugins* folder of your WordPress installation.
865
- 2. Install and activate the plugin on the Plugins page.
866
- 3. Add shortcode `[X3DCanvas src="https://cdn.rawgit.com/create3000/Library/main/Examples/X_ITE/info.x3d" class="x_ite-browser"]` to page or post content.
867
- 4. Modify "src" and "class" attribute.
868
-
869
861
  ## Embedding X\_ITE within a Web Page
870
862
 
871
863
  To display your X3D scene in a HTML5 page first save your scene as X3D XML Encoded file, X3D JSON Encoded file, or as X3D Classic Encoded file, i.e. create a file with the extension .x3d, .x3dj, .x3dv, or .wrl.
872
864
 
873
- The HTML5 page is quite easy to create, the HTML5 code below shows you the minimum requirements. The path to the X3D scene is specified in the src attribute of the &lt;X3DCanvas&gt; element.
865
+ The HTML5 page is quite easy to create, the HTML5 code below shows you the minimum requirements. The path to the X3D scene is specified in the src attribute of the &lt;x3d-canvas&gt; element.
874
866
 
875
867
  ```html
876
868
  <!DOCTYPE html>
877
869
  <html>
878
870
  <head>
879
871
  <meta charset="utf-8"/>
880
- <link rel="stylesheet" type="text/css" href="https://create3000.github.io/code/x_ite/latest/dist/x_ite.css"/>
881
872
  <script type="text/javascript" src="https://create3000.github.io/code/x_ite/latest/dist/x_ite.min.js"></script>
882
873
  <style type="text/css">
883
- X3DCanvas {
874
+ x3d-canvas {
884
875
  width: 768px;
885
876
  height: 432px;
886
877
  }
887
878
  </style>
888
879
  </head>
889
880
  <body>
890
- <X3DCanvas src="path/to/your/X3D/world.x3d">
881
+ <x3d-canvas src="path/to/your/X3D/world.x3d">
891
882
  <p>Your browser may not support all features required by X_ITE.
892
883
  For a better experience, keep your browser up to date.
893
- <a href="http://outdatedbrowser.com">Check here for latest versions.</a></p>
894
- </X3DCanvas>
884
+ <a href="http://outdatedbrowser.com">Check here for latest versions.</a>
885
+ </p>
886
+ </x3d-canvas>
895
887
  </body>
896
888
  </html>
897
889
  ```
898
890
 
899
- To get X\_ITE working you must include the CSS file »x\_ite.css« and the JavaScript file »x\_ite.min.js«. After x\_ite is successfully loaded a new HTML element &lt;X3DCanvas&gt; is available on your page.
891
+ To get X\_ITE working you must include the JavaScript file »x\_ite.min.js«. After x\_ite is successfully loaded a new HTML element &lt;x3d-canvas&gt; is available on your page.
900
892
 
901
- **Note:** You can style the &lt;X3DCanvas&gt; element as every HTML element with CSS as well as you can place it everywhere within the DOM tree.
893
+ **Note:** You can style the &lt;x3d-canvas&gt; element as every HTML element with CSS as well as you can place it everywhere within the DOM tree.
902
894
  {: .notice--info}
903
895
 
904
896
  ### Supported File Formats
@@ -914,31 +906,31 @@ Additionally files can be compressed using GZip compression.
914
906
  | Classic VRML | .x3dv, .x3dvz | model/x3d+vrml |
915
907
  | VRML | .wrl, .wrz | model/vrml |
916
908
 
917
- For more information see [How to Configure Your Web Server](/x_ite/How-To-Configure-Your-Web-Server.html).
909
+ For more information see [How to Configure Your Web Server](w-To-Configure-Your-Web-Server.html).
918
910
 
919
911
  ### Fallback Content
920
912
 
921
- The &lt;X3DCanvas&gt; element is equal to the &lt;canvas&gt; element in that, it is easy to define some fallback content, to be displayed in older browsers not supporting it. You should always provide fallback content to be displayed by those browsers.
913
+ The &lt;x3d-canvas&gt; element is equal to the &lt;canvas&gt; element in that, it is easy to define some fallback content, to be displayed in older browsers not supporting it. You should always provide fallback content to be displayed by those browsers.
922
914
 
923
- Providing fallback content is very straightforward: just insert the alternate content inside the &lt;X3DCanvas&gt; element. Browsers that don't support &lt;X3DCanvas&gt; will ignore the container and render the fallback content inside it. Browsers that do support &lt;X3DCanvas&gt; will ignore the content inside the container, and just render the canvas normally.
915
+ Providing fallback content is very straightforward: just insert the alternate content inside the &lt;x3d-canvas&gt; element. Browsers that don't support &lt;x3d-canvas&gt; will ignore the container and render the fallback content inside it. Browsers that do support &lt;x3d-canvas&gt; will ignore the content inside the container, and just render the canvas normally.
924
916
 
925
917
  For example, we could provide a text description of the X3D element or provide a static image of the dynamically rendered content. This can look something like this:
926
918
 
927
919
  ```html
928
- <X3DCanvas src="world.x3d">
920
+ <x3d-canvas src="world.x3d">
929
921
  <p>Current stock price: $3.15 +0.15</p>
930
- </X3DCanvas>
922
+ </x3d-canvas>
931
923
  ```
932
924
 
933
925
  ```html
934
- <X3DCanvas src="world.x3dv">
926
+ <x3d-canvas src="world.x3dv">
935
927
  <img src="images/clock.png"/>
936
- </X3DCanvas>
928
+ </x3d-canvas>
937
929
  ```
938
930
 
939
- ## Attributes of the X3DCanvas Tag
931
+ ## Attributes of the x3d-canvas Tag
940
932
 
941
- The HTML **&lt;X3DCanvas&gt;** element defines the main content of the X3D document. The &lt;X3DCanvas&gt; element has three attributes that define different behaviours. All of these attributes are optional.
933
+ The HTML **&lt;x3d-canvas&gt;** element defines the main content of the X3D document. The &lt;x3d-canvas&gt; element has three attributes that define different behaviours. All of these attributes are optional.
942
934
 
943
935
  ### cache
944
936
 
@@ -957,17 +949,17 @@ A Boolean value (`true` or `false`) to indicate whether the notification bubble
957
949
 
958
950
  ### onerror
959
951
 
960
- Type: script code. This event is sent to an X3DCanvas element when an error occurs loading a scene.
952
+ Type: script code. This event is sent to an x3d-canvas element when an error occurs loading a scene.
961
953
  {: .notice}
962
954
 
963
955
  ### onload
964
956
 
965
- Type: script code. This event handler will be called on the X3DCanvas element when a scene has finished loading. This applies whether the scene is applied via the src attribute or when a scene is loaded or replaced by another world. If you change the scene, the event will fire again when the new scene loads. This event will not bubble up the element tree.
957
+ Type: script code. This event handler will be called on the x3d-canvas element when a scene has finished loading. This applies whether the scene is applied via the src attribute or when a scene is loaded or replaced by another world. If you change the scene, the event will fire again when the new scene loads. This event will not bubble up the element tree.
966
958
  {: .notice}
967
959
 
968
960
  ### onshutdown
969
961
 
970
- Type: script code. This event handler will be called on the X3DCanvas element when a scene is unloaded or replaced by another world.
962
+ Type: script code. This event handler will be called on the x3d-canvas element when a scene is unloaded or replaced by another world.
971
963
  {: .notice}
972
964
 
973
965
  ### preserveDrawingBuffer
@@ -993,16 +985,16 @@ A MFString value with urls that should be loaded on page load. If no url attribu
993
985
  ### Example
994
986
 
995
987
  ```html
996
- <X3DCanvas cache="true" src="path/to/your/X3D/world.x3d"></X3DCanvas>
988
+ <x3d-canvas cache="true" src="path/to/your/X3D/world.x3d"></x3d-canvas>
997
989
  ```
998
990
 
999
991
  ### More Options
1000
992
 
1001
- More options can be adjusted using the [Browser Object](/x_ite/reference/Browser-Services.html#browser-object) and [Browser Options](/x_ite/reference/Browser-Services.html#browser-options) for scene specific adjustments.
993
+ More options can be adjusted using the [Browser Object](reference/Browser-Services.html#browser-object) and [Browser Options](reference/Browser-Services.html#browser-options) for scene specific adjustments.
1002
994
 
1003
995
  ## Keyboard Shortcuts
1004
996
 
1005
- If the X3DCanvas element is focused, the following keyboard shortcuts are available.
997
+ If the x3d-canvas element is focused, the following keyboard shortcuts are available.
1006
998
 
1007
999
  ### Home (Pos 1)
1008
1000
 
@@ -1026,27 +1018,27 @@ Display browser timings.
1026
1018
 
1027
1019
  ### Ctrl+S
1028
1020
 
1029
- If X3DCanvas attribute *debug* is `true`, toggle begin/end update of browser.
1021
+ If x3d-canvas attribute *debug* is `true`, toggle begin/end update of browser.
1030
1022
 
1031
1023
  ### Ctrl+1
1032
1024
 
1033
- If X3DCanvas attribute *debug* is `true`, set shading to POINT.
1025
+ If x3d-canvas attribute *debug* is `true`, set shading to POINT.
1034
1026
 
1035
1027
  ### Ctrl+2
1036
1028
 
1037
- If X3DCanvas attribute *debug* is `true`, set shading to WIREFRAME.
1029
+ If x3d-canvas attribute *debug* is `true`, set shading to WIREFRAME.
1038
1030
 
1039
1031
  ### Ctrl+3
1040
1032
 
1041
- If X3DCanvas attribute *debug* is `true`, set shading to FLAT.
1033
+ If x3d-canvas attribute *debug* is `true`, set shading to FLAT.
1042
1034
 
1043
1035
  ### Ctrl+4
1044
1036
 
1045
- If X3DCanvas attribute *debug* is `true`, set shading to GOURAUD.
1037
+ If x3d-canvas attribute *debug* is `true`, set shading to GOURAUD.
1046
1038
 
1047
1039
  ### Ctrl+5
1048
1040
 
1049
- If X3DCanvas attribute *debug* is `true`, set shading to PHONG.
1041
+ If x3d-canvas attribute *debug* is `true`, set shading to PHONG.
1050
1042
 
1051
1043
  ### Shift+F8
1052
1044
 
@@ -1064,9 +1056,9 @@ Browser .getContextMenu () .setUserMenu (function ()
1064
1056
  return {
1065
1057
  "command-1": {
1066
1058
  name: "Command 1",
1067
- callback: function (key, opt)
1059
+ callback: function (event)
1068
1060
  {
1069
- console .log ("Clicked on " + key);
1061
+ console .log ("Clicked on Command 1");
1070
1062
  },
1071
1063
  },
1072
1064
  };
@@ -1077,13 +1069,13 @@ Browser .getContextMenu () .setUserMenu (function ()
1077
1069
 
1078
1070
  X\_ITE is designed to provide access to a browser and its contained scene graph via JavaScript, either within an internal X3D Script node or an external HTML script.
1079
1071
 
1080
- [Learn more how to access the external browser.](/x_ite/Accessing-the-External-Browser.html)
1072
+ [Learn more how to access the external browser.](Accessing-the-External-Browser.html)
1081
1073
 
1082
1074
  ## XHTML DOM Integration
1083
1075
 
1084
1076
  XHTML DOM integration allows you to integrate 3D content seamlessly into your webpage, with just a JavaScript file included the scene can be written directly into the XHTML markup. There are no further plug-ins needed anymore.
1085
1077
 
1086
- [Learn more about how XHTML and X3D can operate together.](/x_ite/XHTML-DOM-Integration.html)
1078
+ [Learn more about how XHTML and X3D can operate together.](XHTML-DOM-Integration.html)
1087
1079
 
1088
1080
  We show you a simple example how you can manipulate the X3D DOM in JavaScript like you would do it with any HTML.
1089
1081
 
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Browser Services
2
8
 
3
9
  ## Browser Object
@@ -76,7 +82,7 @@ Returns a browser property with the corresponding name.
76
82
 
77
83
  #### Browser Properties
78
84
 
79
- <table class=" table">
85
+ <table>
80
86
  <thead>
81
87
  <tr>
82
88
  <th>Name</th>
@@ -134,7 +140,7 @@ Returns a browser option with the corresponding name.
134
140
 
135
141
  #### Browser Options
136
142
 
137
- <table class=" table">
143
+ <table>
138
144
  <thead>
139
145
  <tr>
140
146
  <th>Name</th>
@@ -241,7 +247,7 @@ Returns a rendering property with the corresponding *name*.
241
247
 
242
248
  #### Rendering Properties
243
249
 
244
- <table class=" table">
250
+ <table>
245
251
  <thead>
246
252
  <tr>
247
253
  <th>Name</th>
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Constants Services
2
8
 
3
9
  ## X3DConstants
@@ -1,15 +1,21 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # ECMAScript Object and Function Definitions
2
8
 
3
9
  ## Overview
4
10
 
5
11
  There are a fixed set of objects in ECMAScript, each of which have a fixed set of properties (i.e. values) and methods (i.e. functions). For all object types except Math, there are functions to create an instance of the object. The supported set of objects are:
6
12
 
7
- * [Browser Services](/x_ite/reference/Browser-Services.html)
8
- * [Scene Services](/x_ite/reference/Scene-Services.html)
9
- * [Field Services and Objects](/x_ite/reference/Field-Services-and-Objects.html)
10
- * [Route Services](/x_ite/reference/Route-Services.html)
11
- * [Prototype Services](/x_ite/reference/Prototype-Services.html)
12
- * [Constants Services](/x_ite/reference/Constants-Services.html)
13
+ * [Browser Services](Browser-Services.html)
14
+ * [Scene Services](Scene-Services.html)
15
+ * [Field Services and Objects](Field-Services-and-Objects.html)
16
+ * [Route Services](Route-Services.html)
17
+ * [Prototype Services](Prototype-Services.html)
18
+ * [Constants Services](Constants-Services.html)
13
19
 
14
20
  ### parseInt and parseFloat Functions
15
21
 
@@ -1,5 +1,41 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Field Services and Objects
2
8
 
9
+ * [X3DFieldDefinition](#x3dfielddefinition)
10
+ * [FieldDefinitionArray](#fielddefinitionarray)
11
+ * [Field Hierarchy](#field-hierarchy)
12
+ * [X3DField](#x3dfield)
13
+ * [SFColor](#sfcolor-object)
14
+ * [SFColorRGBA](#sfcolorrgba-object)
15
+ * [SFImage](#sfimage-object)
16
+ * [SFMatrix3d/f](#sfmatrix3dsfmatrix3f-object)
17
+ * [SFMatrix4d/f](#sfmatrix4dsfmatrix4f-object)
18
+ * [SFNode](#sfnode-object)
19
+ * [SFRotation](#sfrotation-object)
20
+ * [SFVec2d/f](#sfvec2dsfvec2f-object)
21
+ * [SFVec3d/f](#sfvec3dsfvec3f-object)
22
+ * [SFVec4d/f](#sfvec4dsfvec4f-object)
23
+ * [X3DArrayField](#x3darrayfield)
24
+ * [MFBool](#mfbool-object)
25
+ * [MFColor/MFColorRGBA](#mfcolormfcolorrgba-object)
26
+ * [MFDouble/MFFloat](#mfdoublemffloat-object)
27
+ * [MFImage](#mfimage-object)
28
+ * [MFInt32](#mfint32-object)
29
+ * [MFMatrix3d/f](#mfmatrix3dmfmatrix3f-object)
30
+ * [MFMatrix3d/f](#mfmatrix4dmfmatrix4f-object)
31
+ * [MFNode](#mfnode-object)
32
+ * [MFRotation](#mfrotation-object)
33
+ * [MFString](#mfstring-object)
34
+ * [MFTime](#mftime-object)
35
+ * [MFVec2d/f](#mfvec2dmfvec2f-object)
36
+ * [MFVec3d/f](#mfvec3dmfvec3f-object)
37
+ * [MFVec4d/f](#mfvec4dmfvec4f-object)
38
+
3
39
  ## X3DFieldDefinition
4
40
 
5
41
  The X3DFieldDefinition object represents all of the descriptive properties of a single field of a node.
@@ -477,6 +513,10 @@ Returns the second value of the vector.
477
513
 
478
514
  ### Methods
479
515
 
516
+ #### SFVec2f **abs** ()
517
+
518
+ Returns an SFVec2f whose value is the absolute value of the object.
519
+
480
520
  #### SFVec2f **add** (*vec*)
481
521
 
482
522
  Returns an SFVec2f whose value is the passed SFVec2f added, componentwise, to the object.
@@ -497,6 +537,10 @@ Returns an SFVec2f whose value is the passed SFVec2f divided, componentwise, by
497
537
 
498
538
  Returns the dot product of this vector and SFVec2f *vec*.
499
539
 
540
+ #### SFVec2f **inverse** ()
541
+
542
+ Returns an SFVec2f whose value is the componentwise inverse of the object.
543
+
500
544
  #### Number **length** ()
501
545
 
502
546
  Returns the geometric length of this vector.
@@ -505,6 +549,14 @@ Returns the geometric length of this vector.
505
549
 
506
550
  Returns a SFVec2f whose value is the linear interpolation between this object's vector and *destVector* at value 0 &lt;= *t* &lt;= 1. For *t* = 0, the value is this object's vector. For *t* = 1, the value is *destVector*.
507
551
 
552
+ #### SFVec2f **min** (*vec*)
553
+
554
+ Returns an SFVec2f whose value is the minimum of the passed SFVec2f and the object.
555
+
556
+ #### SFVec2f **max** (*vec*)
557
+
558
+ Returns an SFVec2f whose value is the maximum of the passed SFVec2f and the object.
559
+
508
560
  #### SFVec2f **multiply** (*number*)
509
561
 
510
562
  Returns an SFVec2f whose value is the object multiplied by the passed numeric value.
@@ -551,6 +603,10 @@ Returns the third value of the vector.
551
603
 
552
604
  ### Methods
553
605
 
606
+ #### SFVec3f **abs** ()
607
+
608
+ Returns an SFVec3f whose value is the absolute value of the object.
609
+
554
610
  #### SFVec3f **add** (*vec*)
555
611
 
556
612
  Returns an SFVec3f whose value is the passed SFVec3f added, componentwise, to the object.
@@ -575,6 +631,10 @@ Returns an SFVec3f whose value is the passed SFVec3f divided, componentwise, by
575
631
 
576
632
  Returns the dot product of this vector and SFVec3f *vec*.
577
633
 
634
+ #### SFVec3f **inverse** ()
635
+
636
+ Returns an SFVec3f whose value is the componentwise inverse of the object.
637
+
578
638
  #### Number **length** ()
579
639
 
580
640
  Returns the geometric length of this vector.
@@ -583,6 +643,14 @@ Returns the geometric length of this vector.
583
643
 
584
644
  Returns a SFVec3f whose value is the linear interpolation between this object's vector and *destVector* at value 0 &lt;= *t* &lt;= 1. For *t* = 0, the value is this object's vector. For *t* = 1, the value is *destVector*.
585
645
 
646
+ #### SFVec3f **min** (*vec*)
647
+
648
+ Returns an SFVec3f whose value is the minimum of the passed SFVec3f and the object.
649
+
650
+ #### SFVec3f **max** (*vec*)
651
+
652
+ Returns an SFVec3f whose value is the maximum of the passed SFVec3f and the object.
653
+
586
654
  #### SFVec3f **multiply** (*number*)
587
655
 
588
656
  Returns an SFVec3f whose value is the object multiplied by the passed numeric value.
@@ -633,6 +701,10 @@ Returns the fourth value of the vector.
633
701
 
634
702
  ### Methods
635
703
 
704
+ #### SFVec4f **abs** ()
705
+
706
+ Returns an SFVec4f whose value is the absolute value of the object.
707
+
636
708
  #### SFVec4f **add** (*vec*)
637
709
 
638
710
  Returns an SFVec4f whose value is the passed SFVec4f added, componentwise, to the object.
@@ -653,6 +725,10 @@ Returns an SFVec4f whose value is the passed SFVec4f divided, componentwise, by
653
725
 
654
726
  Returns the dot product of this vector and SFVec4f *vec*.
655
727
 
728
+ #### SFVec4f **inverse** ()
729
+
730
+ Returns an SFVec4f whose value is the componentwise inverse of the object.
731
+
656
732
  #### Number **length** ()
657
733
 
658
734
  Returns the geometric length of this vector.
@@ -661,6 +737,14 @@ Returns the geometric length of this vector.
661
737
 
662
738
  Returns a SFVec4f whose value is the linear interpolation between this object's vector and *destVector* at value 0 &lt;= *t* &lt;= 1. For *t* = 0, the value is this object's vector. For *t* = 1, the value is *destVector*.
663
739
 
740
+ #### SFVec4f **min** (*vec*)
741
+
742
+ Returns an SFVec4f whose value is the minimum of the passed SFVec4f and the object.
743
+
744
+ #### SFVec4f **max** (*vec*)
745
+
746
+ Returns an SFVec4f whose value is the maximum of the passed SFVec4f and the object.
747
+
664
748
  #### SFVec4f **multiply** (*number*)
665
749
 
666
750
  Returns an SFVec4f whose value is the object multiplied by the passed numeric value.
@@ -681,7 +765,7 @@ Returns an SFVec4f of object converted to unit length.
681
765
 
682
766
  Returns an SFVec4f whose value is the passed SFVec4f subtracted, componentwise, from the object.
683
767
 
684
- ## X3DArrayField Object
768
+ ## X3DArrayField
685
769
 
686
770
  The X3DArrayField object is the base object of all MF\* objects. It is used to store a one-dimensional array of the corresponding SF\* objects. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. X3D*ArrayFieldObjectName*\[*index*\], where *index* is an integer-valued expression with 0&lt;=*index*&lt;length and length is the number of elements in the array). Assigning to an element with *index* &gt; length results in the array being dynamically expanded to contain length elements. All elements not explicitly initialized are set to 0.0.
687
771
 
@@ -945,6 +1029,26 @@ An integer containing the number of elements in the array. Assigning an integer
945
1029
 
946
1030
  None
947
1031
 
1032
+ ## MFTime Object
1033
+
1034
+ The MFTime object corresponds to a X3D MFTime field. It is used to store a one-dimensional array of SFTime objects. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. *mfTimeObjectName*\[*index*\], where *index* is an integer-valued expression with 0&lt;=*index*&lt;length and length is the number of elements in the array). Assigning to an element with *index* &gt; length results in the array being dynamically expanded to contain length elements. All elements not explicitly initialized are set to the empty string.
1035
+
1036
+ ### Instance Creation Method\(s\)
1037
+
1038
+ #### *mfTimeObjectName =* **new MFTime** (*\[string, string, ...\])*
1039
+
1040
+ The creation method can be passed 0 or more string-valued expressions to initialize the elements of the array.
1041
+
1042
+ ### Properties
1043
+
1044
+ #### **length**
1045
+
1046
+ An integer containing the number of elements in the array. Assigning an integer to length changes the number of elements in the array.
1047
+
1048
+ ### Methods
1049
+
1050
+ None
1051
+
948
1052
  ## MFVec2d/MFVec2f Object
949
1053
 
950
1054
  The MFVec2f object corresponds to a X3D MFVec2f field. It is used to store a one-dimensional array of SFVec2f objects. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. *mfVec2fObjectName*\[*index*\], where *index* is an integer-valued expression with 0&lt;=*index*&lt;length and length is the number of elements in the array). Assigning to an element with *index* &gt; length results in the array being dynamically expanded to contain length elements. All elements not explicitly initialized are set to SFVec2f (0, 0).
@@ -1,5 +1,16 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Prototype Services
2
8
 
9
+ * [X3DProtoDeclaration](#x3dprotodeclaration)
10
+ * [X3DExternProtoDeclaration](#x3dexternprotodeclaration)
11
+ * [ProtoDeclarationArray](#protodeclarationarray)
12
+ * [ExternProtoDeclarationArray](#externprotodeclarationarray)
13
+
3
14
  ## X3DProtoDeclaration
4
15
 
5
16
  A PROTO declaration is represented by the X3DProtoDeclaration object. This object can only be fetched using the X3DExecutionContext object.
@@ -1,5 +1,14 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Route Services
2
8
 
9
+ * [X3DRoute](#x3droute)
10
+ * [RouteArray](#routearray)
11
+
3
12
  ## X3DRoute
4
13
 
5
14
  Routes are represented by the X3DRoute object. Routes can only be created through calls to the addRoute () function of X3DExecutionContext.
@@ -1,5 +1,20 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Scene Services
2
8
 
9
+ * [X3DExecutionContext](#x3dexecutioncontext)
10
+ * [X3DScene](#x3dscene)
11
+ * [ProfileInfo](#profileinfo)
12
+ * [ComponentInfo](#componentinfo)
13
+ * [UnitInfo](#unitinfo)
14
+ * [ProfileInfoArray](#profileinfoarray)
15
+ * [ComponentInfoArray](#componentinfoarray)
16
+ * [UnitInfoArray](#unitinfoarray)
17
+
3
18
  ## X3DExecutionContext
4
19
 
5
20
  This section lists the methods available in the X3DExecutionContext object, which allows scripts to get access to the scene graph.
@@ -227,7 +242,7 @@ The category of default unit being modified as defined in the table. This proper
227
242
 
228
243
  #### Standard units
229
244
 
230
- <table class=" table" style="height: 210px;" width="466">
245
+ <table style="height: 210px;" width="466">
231
246
  <thead>
232
247
  <tr>
233
248
  <th style="width: 229.833px;">Category</th>
@@ -260,7 +275,7 @@ Additional units, called *derived units* are used in this International Standard
260
275
 
261
276
  #### Derived Units
262
277
 
263
- <table class=" table">
278
+ <table>
264
279
  <thead>
265
280
  <tr>
266
281
  <th>Category</th>
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Script Node Authoring Interface
2
8
 
3
9
  ## Overview
@@ -111,7 +117,7 @@ let b = new MFFloat (1, 2, 3, 4) // 'b' has a MFFloat containing 4 floats
111
117
 
112
118
  Combining objects of different types in a single expression or assignment statement will often perform implicit type conversion. Rules for this conversion are described in the following table:
113
119
 
114
- <table class=" table">
120
+ <table>
115
121
  <thead>
116
122
  <tr>
117
123
  <th>Type</th>
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Adding Backgrounds
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Adding Fog
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Adding Sound
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Animating Transforms
2
8
 
3
9
  ## Motivation
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Basic Nodes
2
8
 
3
9
  ## Overview
@@ -1,3 +1,9 @@
1
+ ---
2
+ # Feel free to add content and custom Front Matter to this file.
3
+ # To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4
+
5
+ layout: single
6
+ ---
1
7
  # Building a X3D World
2
8
 
3
9
  ## X3D file structure