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/src/x_ite.css CHANGED
@@ -1,71 +1,73 @@
1
1
  /* X_ITE CSS StyleSheet */
2
2
 
3
+ /* Do not include this file directly! This is not needed anymore. */
4
+
3
5
  @charset "utf-8";
4
6
 
5
- @import url(https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic);
6
- @import url(spinner.css);
7
+ @import url("https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic");
7
8
 
9
+ :host,
8
10
  X3DCanvas {
9
- overflow: hidden;
10
- position: relative;
11
11
  display: inline-block;
12
+ overflow: hidden;
12
13
  outline: none;
13
14
  margin: 0;
14
- padding: 0;
15
15
  border: 0;
16
16
  border-radius: 0;
17
+ padding: 0;
17
18
  width: 300px;
18
19
  height: 150px;
20
+ user-select: none;
21
+ -webkit-user-select: none;
19
22
  }
20
23
 
21
- X3DCanvas.x_ite-fullscreen {
24
+ :host([hidden]) {
25
+ display: none;
26
+ }
27
+
28
+ :host(.x_ite-fullscreen) {
22
29
  width: 100vw !important;
23
30
  height: 100vh !important;
24
31
  }
25
32
 
26
- X3DCanvas > *:not(.x_ite-fallback) {
33
+ X3DCanvas > :not(.x_ite-private-browser, .x_ite-private-menu) {
27
34
  display: none;
28
35
  }
29
36
 
30
- .x_ite-console {
31
- font-family: monospace;
32
- white-space: pre;
33
- }
34
-
35
- X3DCanvas .x_ite-private-browser {
36
- z-index: 0;
37
- display: block;
38
- position: absolute;
39
- inset: 0;
37
+ .x_ite-private-browser {
38
+ overflow: hidden;
39
+ position: relative;
40
40
  margin: 0;
41
- padding: 0;
42
41
  border: 0;
43
42
  border-radius: 0;
43
+ padding: 0;
44
+ width: 100%;
45
+ height: 100%;
46
+ user-select: none;
47
+ -webkit-user-select: none;
44
48
  }
45
49
 
46
- X3DCanvas .x_ite-private-surface {
50
+ .x_ite-private-surface {
51
+ position: absolute; /* Must be absolute to get ResizeSensor work. */
47
52
  margin: 0;
48
- padding: 0;
49
53
  border: 0;
50
54
  border-radius: 0;
51
- height: 100%;
52
- margin-right: 0;
55
+ padding: 0;
56
+ inset: 0;
53
57
  }
54
58
 
55
- X3DCanvas canvas.x_ite-private-canvas {
59
+ .x_ite-private-canvas {
56
60
  display: block;
57
61
  outline: none;
58
62
  margin: 0;
59
- padding: 0;
60
63
  border: 0;
61
64
  border-radius: 0;
65
+ padding: 0;
62
66
  width: 100%;
63
67
  height: 100%;
64
68
  }
65
69
 
66
- X3DCanvas .x_ite-private-notification {
67
- display: none;
68
- padding: 5px;
70
+ .x_ite-private-notification {
69
71
  position: absolute;
70
72
  top: 20px;
71
73
  right: -4px;
@@ -75,10 +77,11 @@ X3DCanvas .x_ite-private-notification {
75
77
  background: -moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%); /* FF3.6-15 */
76
78
  background: -webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* Chrome10-25,Safari5.1-6 */
77
79
  background: linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
78
- border: 4px solid rgba(60,60,60,0.61803);
79
- border-radius: 5px;
80
80
  -webkit-background-clip: padding-box; /* for Safari */
81
81
  background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
82
+ border: 4px solid rgba(60,60,60,0.61803);
83
+ border-radius: 5px;
84
+ padding: 5px;
82
85
  color: white;
83
86
  font-family: PT Sans, sans-serif;
84
87
  font-size: 10pt;
@@ -88,28 +91,27 @@ X3DCanvas .x_ite-private-notification {
88
91
  pointer-events: none;
89
92
  }
90
93
 
91
- X3DCanvas .x_ite-private-notification span {
94
+ .x_ite-private-notification span {
92
95
  padding: 0 24px 0 20px;
93
- background: url(assets/images/icon.bw.png) no-repeat 0 2px;
96
+ background: url("assets/images/icon.bw.png") no-repeat 0 2px;
94
97
  }
95
98
 
96
- X3DCanvas .x_ite-private-browser-timings {
97
- display: none;
99
+ .x_ite-private-browser-timings {
98
100
  position: absolute;
99
101
  bottom: -4px;
100
102
  left: -4px;
101
- padding: 10px 15px 14px 14px;
102
103
  -webkit-backdrop-filter: blur(8px);
103
104
  backdrop-filter: blur(8px);
104
105
  background: rgba(0,0,0,0.61803);
105
106
  background: -moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%); /* FF3.6-15 */
106
107
  background: -webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* Chrome10-25,Safari5.1-6 */
107
108
  background: linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
109
+ -webkit-background-clip: padding-box; /* for Safari */
110
+ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
108
111
  border-top: 4px solid rgba(60,60,60,0.61803);
109
112
  border-right: 4px solid rgba(60,60,60,0.61803);
110
113
  border-radius: 5px;
111
- -webkit-background-clip: padding-box; /* for Safari */
112
- background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
114
+ padding: 10px 15px 14px 14px;
113
115
  color: white;
114
116
  font-family: PT Sans, sans-serif;
115
117
  font-size: 9pt;
@@ -117,13 +119,13 @@ X3DCanvas .x_ite-private-browser-timings {
117
119
  pointer-events: none;
118
120
  }
119
121
 
120
- X3DCanvas .x_ite-private-browser-timings table,
121
- X3DCanvas .x_ite-private-browser-timings thead,
122
- X3DCanvas .x_ite-private-browser-timings tbody,
123
- X3DCanvas .x_ite-private-browser-timings tfoot,
124
- X3DCanvas .x_ite-private-browser-timings tr,
125
- X3DCanvas .x_ite-private-browser-timings th,
126
- X3DCanvas .x_ite-private-browser-timings td {
122
+ .x_ite-private-browser-timings table,
123
+ .x_ite-private-browser-timings thead,
124
+ .x_ite-private-browser-timings tbody,
125
+ .x_ite-private-browser-timings tfoot,
126
+ .x_ite-private-browser-timings tr,
127
+ .x_ite-private-browser-timings th,
128
+ .x_ite-private-browser-timings td {
127
129
  box-sizing: border-box;
128
130
  outline: 0;
129
131
  margin: 0;
@@ -140,9 +142,9 @@ X3DCanvas .x_ite-private-browser-timings td {
140
142
  text-align: left;
141
143
  }
142
144
 
143
- X3DCanvas .x_ite-private-browser-timings table {
145
+ .x_ite-private-browser-timings table {
144
146
  overflow: hidden;
145
- background: url(assets/images/Time.png) no-repeat;
147
+ background: url("assets/images/Time.png") no-repeat;
146
148
  width: 100%;
147
149
  max-width: 100%;
148
150
  border-collapse: separate;
@@ -150,33 +152,33 @@ X3DCanvas .x_ite-private-browser-timings table {
150
152
  empty-cells: show;
151
153
  }
152
154
 
153
- X3DCanvas .x_ite-private-browser-timings thead th {
155
+ .x_ite-private-browser-timings thead th {
154
156
  padding-left: 20px;
155
157
  padding-bottom: 5px;
156
158
  font-weight: bold;
157
159
  }
158
160
 
159
- X3DCanvas .x_ite-private-browser-timings td:first-child {
161
+ .x_ite-private-browser-timings td:first-child {
160
162
  padding-right: 10px;
161
163
  }
162
164
 
163
- X3DCanvas .x_ite-private-browser-timings tr.x_ite-private-more td {
165
+ .x_ite-private-browser-timings tr.x_ite-private-more td {
164
166
  padding-bottom: 5px;
165
167
  }
166
168
 
167
- X3DCanvas .x_ite-private-browser-timings td {
169
+ .x_ite-private-browser-timings td {
168
170
  padding-bottom: 2px;
169
171
  }
170
172
 
171
- X3DCanvas .x_ite-private-browser-timings tfoot td:first-child {
173
+ .x_ite-private-browser-timings tfoot td:first-child {
172
174
  padding-right: 0;
173
175
  }
174
176
 
175
- X3DCanvas .x_ite-private-browser-timings tfoot td {
177
+ .x_ite-private-browser-timings tfoot td {
176
178
  padding-top: 4px;
177
179
  }
178
180
 
179
- X3DCanvas .x_ite-private-browser-timings button {
181
+ .x_ite-private-browser-timings button {
180
182
  box-sizing: border-box;
181
183
  border: 0;
182
184
  border-radius: 10px;
@@ -194,28 +196,33 @@ X3DCanvas .x_ite-private-browser-timings button {
194
196
  cursor: pointer;
195
197
  }
196
198
 
197
- X3DCanvas .x_ite-private-world-info-overlay {
199
+ .x_ite-private-world-info-overlay {
198
200
  position: absolute;
199
201
  inset: 0;
200
202
  }
201
203
 
202
- X3DCanvas .x_ite-private-world-info {
204
+ .x_ite-private-world-info {
203
205
  overflow-y: auto;
204
206
  position: absolute;
205
207
  inset: 0;
208
+ margin: 21pt;
206
209
  -webkit-backdrop-filter: blur(8px);
207
210
  backdrop-filter: blur(8px);
208
211
  background: rgba(0,0,0,0.61803);
209
- margin: 21pt;
212
+ background: -moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%); /* FF3.6-15 */
213
+ background: -webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* Chrome10-25,Safari5.1-6 */
214
+ background: linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
215
+ -webkit-background-clip: padding-box; /* for Safari */
216
+ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
210
217
  border: 4px solid rgba(60,60,60,0.61803);
211
218
  border-radius: 15px;
212
219
  padding: 21pt;
213
220
  }
214
221
 
215
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-top,
216
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-title,
217
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-info,
218
- X3DCanvas .x_ite-private-world-info p {
222
+ .x_ite-private-world-info .x_ite-private-world-info-top,
223
+ .x_ite-private-world-info .x_ite-private-world-info-title,
224
+ .x_ite-private-world-info .x_ite-private-world-info-info,
225
+ .x_ite-private-world-info p {
219
226
  box-sizing: border-box;
220
227
  outline: 0;
221
228
  margin: 0;
@@ -233,159 +240,123 @@ X3DCanvas .x_ite-private-world-info p {
233
240
  text-align: left;
234
241
  }
235
242
 
236
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-top {
243
+ .x_ite-private-world-info .x_ite-private-world-info-top {
237
244
  font-weight: bold;
238
245
  font-style: italic;
239
246
  font-size: 9pt;
240
247
  }
241
248
 
242
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-title {
249
+ .x_ite-private-world-info .x_ite-private-world-info-title {
243
250
  margin: 0.3em 0 1em 0;
244
251
  font-weight: bold;
245
252
  font-size: 21pt;
246
253
  }
247
254
 
248
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-info,
249
- X3DCanvas .x_ite-private-world-info .x_ite-private-world-info-info p {
255
+ .x_ite-private-world-info .x_ite-private-world-info-info,
256
+ .x_ite-private-world-info .x_ite-private-world-info-info p {
250
257
  margin: 1em 0 1em 0;
251
258
  font-size: 14pt;
252
259
  }
253
260
 
254
- X3DCanvas .x_ite-private-world-info a {
261
+ .x_ite-private-world-info a {
255
262
  text-decoration: underline;
256
263
  color: #fd9f2e;
257
264
  }
258
265
 
259
- /*!
260
- * jQuery contextMenu - Plugin for simple contextMenu handling
261
- *
262
- * Version: v1.8.1
263
- *
264
- * Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
265
- * Web: http://swisnl.github.io/jQuery-contextMenu/
266
- *
267
- * Copyright (c) 2011-2015 SWIS BV and contributors
268
- *
269
- * Licensed under
270
- * MIT License http://www.opensource.org/licenses/mit-license
271
-
272
- * Date: 2015-09-20T18:47:54.927Z
273
- */
266
+ /* Context Menu */
274
267
 
275
- /* fullscreen support */
276
- X3DCanvas #context-menu-layer {
277
- z-index: 0 !important;
268
+ .x_ite-private-menu.context-menu-layer {
269
+ position: fixed;
270
+ z-index: 10000;
271
+ inset: 0;
278
272
  }
279
273
 
280
- /* menu title */
281
- .x_ite-private-menu.x_ite-private-menu-title:before {
282
- content: "X_ITE Browser";
283
- display: block;
284
- padding: 4px 32px 4px 8px;
285
- font-weight: bold;
274
+ .x_ite-private-menu.context-menu-list {
275
+ position: fixed;
276
+ z-index: 10000;
277
+ isolation: isolate;
286
278
  }
287
279
 
288
- .x_ite-private-menu .context-menu-selected {
289
- font-weight: bold;
290
- font-style: italic;
280
+ .x_ite-private-menu .context-menu-list {
281
+ position: absolute;
291
282
  }
292
283
 
293
284
  .x_ite-private-menu.context-menu-list,
294
285
  .x_ite-private-menu .context-menu-list {
295
- position: absolute;
296
- display: inline-block;
286
+ display: block;
287
+ box-sizing: border-box;
297
288
  min-width: 120px;
298
- padding: 0;
299
289
  margin: 0;
300
290
  margin-left: 1px;
301
- white-space: pre;
291
+ -webkit-backdrop-filter: blur(8px);
292
+ backdrop-filter: blur(8px);
293
+ background: rgba(0,0,0,0.61803);
294
+ background: -moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%); /* FF3.6-15 */
295
+ background: -webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* Chrome10-25,Safari5.1-6 */
296
+ background: linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%,rgba(0,0,0,0.61803) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
297
+ -webkit-background-clip: padding-box; /* for Safari */
298
+ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
299
+ border: 4px solid rgba(60,60,60,0.61803);
300
+ border-radius: 5px;
301
+ padding: 5px 10px 9px 9px;
302
+ color: white;
302
303
  font-family: PT Sans, sans-serif;
303
304
  font-size: 10pt;
305
+ white-space: pre;
304
306
  line-height: 1.2;
305
307
  list-style-type: none;
306
- background: #222;
307
- color: #eee;
308
- border: 0 solid #ddd;
309
- -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
310
- box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
311
308
  }
312
309
 
313
310
  .x_ite-private-menu .context-menu-item {
311
+ cursor: pointer;
314
312
  position: relative;
315
- background-color: #222;
313
+ border-radius: 5px;
316
314
  margin: 0;
317
- border-top: 1px solid #222;
318
- border-bottom: 1px solid #222;
319
- padding: 3px 24px 3px 24px;
320
- -webkit-user-select: none;
321
- -moz-user-select: none;
322
- -ms-user-select: none;
323
- user-select: none;
315
+ padding: 5px 24px;
324
316
  font-size: 10pt;
325
317
  line-height: 1;
326
318
  letter-spacing: unset;
327
319
  text-align: left;
328
320
  }
329
321
 
330
- .x_ite-private-menu .context-menu-item > label > input,
331
- .x_ite-private-menu .context-menu-item > label > textarea {
332
- all: revert;
333
- -webkit-user-select: text;
334
- -moz-user-select: text;
335
- -ms-user-select: text;
336
- user-select: text;
322
+ .x_ite-private-menu .context-menu-item:hover:not(.context-menu-not-selectable) {
323
+ background-color: rgba(255, 69, 58, 0.8);
337
324
  }
338
325
 
339
- .x_ite-private-menu .context-menu-input > label > input[type="checkbox"] {
340
- -webkit-appearance: checkbox;
341
- -moz-appearance: checkbox;
342
- }
343
-
344
- .x_ite-private-menu .context-menu-input > label > input[type="radio"] {
345
- -webkit-appearance: radio;
346
- -moz-appearance: radio;
326
+ .x_ite-private-menu .context-menu-item:hover > .context-menu-list {
327
+ display: block;
347
328
  }
348
329
 
349
- .x_ite-private-menu .context-menu-item:hover {
350
- cursor: pointer;
351
- background-color: #444;
352
- border-top: 1px solid #eee;
353
- border-bottom: 1px solid #eee;
330
+ .x_ite-private-menu .context-menu-not-selectable {
331
+ cursor: default;
354
332
  }
355
333
 
356
- .x_ite-private-menu .context-menu-item.context-menu-separator {
334
+ .x_ite-private-menu .context-menu-separator {
335
+ cursor: default;
336
+ margin: 2px 0;
337
+ border-top: 0;
338
+ border-bottom: 1px solid rgb(138, 138, 138);
357
339
  padding-top: 0;
358
340
  padding-bottom: 0;
359
- border-top: 0;
360
- border-bottom: 1px solid #111;
361
341
  }
362
342
 
363
343
  .x_ite-private-menu .context-menu-separator + .context-menu-separator {
364
344
  display: none !important;
365
345
  }
366
346
 
367
- .x_ite-private-menu .context-menu-disabled {
368
- color: #666;
369
- }
370
-
371
- .x_ite-private-menu .context-menu-input.context-menu-hover,
372
- .x_ite-private-menu .context-menu-disabled.context-menu-hover {
373
- cursor: default;
374
- }
375
-
376
347
  .x_ite-private-menu .context-menu-submenu:after {
377
348
  content: "";
378
349
  position: absolute;
379
350
  display: block;
380
351
  right: 0;
381
- top: 5px;
352
+ top: 8px;
382
353
  margin-right: 2px;
383
354
  /* CSS triangle */
384
- width: 0;
385
- height: 0;
386
355
  border-style: solid;
387
356
  border-width: 4px 0 4px 5px;
388
357
  border-color: transparent transparent transparent #eee;
358
+ width: 0;
359
+ height: 0;
389
360
  }
390
361
 
391
362
  /* icons
@@ -395,9 +366,16 @@ X3DCanvas #context-menu-layer {
395
366
  .context-menu-item.icon:before {}
396
367
  */
397
368
 
398
- .x_ite-private-menu .context-menu-item.context-menu-icon {
399
- background-repeat: no-repeat;
400
- background-position: 3px 2px;
369
+ .x_ite-private-menu .context-menu-input > label {
370
+ cursor: pointer;
371
+ display: block;
372
+ box-sizing: border-box;
373
+ margin: 0;
374
+ padding: 0;
375
+ width: 100%;
376
+ font-size: 10pt;
377
+ letter-spacing: unset;
378
+ line-height: 1;
401
379
  }
402
380
 
403
381
  /* vertically align inside labels */
@@ -409,36 +387,24 @@ X3DCanvas #context-menu-layer {
409
387
  line-height: 1;
410
388
  }
411
389
 
390
+ .x_ite-private-menu .context-menu-item > label > input {
391
+ all: revert;
392
+ cursor: pointer;
393
+ }
394
+
412
395
  /* position checkboxes and radios like icons */
413
396
  .x_ite-private-menu .context-menu-input > label > input[type="checkbox"],
414
397
  .x_ite-private-menu .context-menu-input > label > input[type="radio"] {
398
+ accent-color: rgb(255, 69, 58);
415
399
  display: inline;
400
+ width: 12px;
416
401
  margin: 0;
417
402
  margin-left: -20px;
418
- margin-right: 3px;
419
403
  padding: 0;
420
404
  }
421
405
 
422
406
  .x_ite-private-menu .context-menu-input > label > span {
423
- margin-left: 2px;
424
- }
425
-
426
- .x_ite-private-menu .context-menu-input > label,
427
- .x_ite-private-menu .context-menu-input > label > input[type="text"],
428
- .x_ite-private-menu .context-menu-input > label > textarea,
429
- .x_ite-private-menu .context-menu-input > label > select {
430
- display: block;
431
- box-sizing: border-box;
432
- margin: 0;
433
- padding: 0;
434
- width: 100%;
435
- font-size: 10pt;
436
- letter-spacing: unset;
437
- line-height: 1;
438
- }
439
-
440
- .x_ite-private-menu .context-menu-input > label > textarea {
441
- height: 100px;
407
+ padding-left: 8px;
442
408
  }
443
409
 
444
410
  .x_ite-private-menu .context-menu-item > .context-menu-list {
@@ -448,21 +414,25 @@ X3DCanvas #context-menu-layer {
448
414
  display: none;
449
415
  }
450
416
 
451
- /* display submenus on left side if there is no space on right side */
452
- .x_ite-private-menu.x_ite-private-menu-submenus-left .context-menu-item > .context-menu-list {
453
- left: unset !important;
454
- }
417
+ /* Item styles */
455
418
 
456
- .x_ite-private-menu .context-menu-item:hover > .context-menu-list {
457
- display: block;
419
+ .x_ite-private-menu .context-menu-title {
420
+ font-weight: bold;
421
+ padding: 4px 32px 4px 8px;
458
422
  }
459
423
 
460
- .x_ite-private-menu .context-menu-accesskey {
461
- text-decoration: underline;
424
+ .x_ite-private-menu .context-menu-selected {
425
+ font-weight: bold;
426
+ font-style: italic;
462
427
  }
463
428
 
464
429
  /* Icons */
465
430
 
431
+ .x_ite-private-menu .context-menu-icon {
432
+ background-repeat: no-repeat;
433
+ background-position: 2px 3px;
434
+ }
435
+
466
436
  .x_ite-private-icon-viewpoint {
467
437
  background: url("assets/images/Viewpoint.png");
468
438
  }
@@ -507,7 +477,11 @@ X3DCanvas #context-menu-layer {
507
477
  background: url("assets/images/TextureQuality.png");
508
478
  }
509
479
 
510
- .x_ite-private-icon-fullscreen {
480
+ .x_ite-private-icon-shading {
481
+ background: url("assets/images/Shading.png");
482
+ }
483
+
484
+ .x_ite-private-icon-enter-fullscreen {
511
485
  background: url("assets/images/gtk-fullscreen.png");
512
486
  }
513
487
 
@@ -522,3 +496,70 @@ X3DCanvas #context-menu-layer {
522
496
  .x_ite-private-icon-help-about {
523
497
  background: url("assets/images/help-about.png");
524
498
  }
499
+
500
+ /* Spinner */
501
+
502
+ .x_ite-private-splash-screen {
503
+ position: absolute;
504
+ inset: 0;
505
+ background: #1b1d21;
506
+ background: -moz-radial-gradient(center, ellipse cover, #2f3135 0%, #1b1d21 100%);
507
+ background: -webkit-radial-gradient(center, ellipse cover, #2f3135 0%,#1b1d21 100%);
508
+ background: radial-gradient(ellipse at center, #2f3135 0%,#1b1d21 100%);
509
+ }
510
+
511
+ .x_ite-private-spinner {
512
+ position: absolute;
513
+ top: calc(50% - (138px / 2));
514
+ left: calc(50% - (134px / 2));
515
+ width: 138px;
516
+ height: 134px;
517
+ background: url("assets/images/logo.128.png") no-repeat;
518
+ -webkit-animation: spinner-animation-spin 32s linear infinite;
519
+ -moz-animation: spinner-animation-spin 32s linear infinite;
520
+ animation: spinner-animation-spin 32s linear infinite;
521
+ }
522
+ @-moz-keyframes spinner-animation-spin { 100% { -moz-transform: rotate(360deg); } }
523
+ @-webkit-keyframes spinner-animation-spin { 100% { -webkit-transform: rotate(360deg); } }
524
+ @keyframes spinner-animation-spin { 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
525
+
526
+ .x_ite-private-progress {
527
+ position: absolute;
528
+ top: calc(50% - 28pt - 11pt);
529
+ left: calc(50% - 100px);
530
+ width: 200px;
531
+ }
532
+
533
+ .x_ite-private-x_ite {
534
+ color: white;
535
+ font-size: 28pt;
536
+ text-align: center;
537
+ text-shadow: 1px 1px 0 black;
538
+ font-family: PT Sans, sans-serif;
539
+ }
540
+
541
+ .x_ite-private-x_ite span.x_ite-private-x3d {
542
+ font-weight: bold;
543
+ }
544
+
545
+ .x_ite-private-spinner-text {
546
+ color: white;
547
+ font-size: 11pt;
548
+ text-align: center;
549
+ text-shadow: 1px 1px 0 black;
550
+ font-family: PT Sans, sans-serif;
551
+ }
552
+
553
+ .x_ite-private-progressbar {
554
+ margin: 8px;
555
+ border-left: 2px solid rgba(255, 255, 255, 0.5);
556
+ border-right: 2px solid rgba(255, 255, 255, 0.5);
557
+ padding: 0 2px;
558
+ text-align: left;
559
+ }
560
+
561
+ .x_ite-private-progressbar div {
562
+ width: 0%;
563
+ height: 6px;
564
+ background: rgba(255, 255, 255, 0.5);
565
+ }