x_ite 16.0.3 → 16.0.5

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 (57) hide show
  1. package/README.md +6 -6
  2. package/dist/assets/components/AnnotationComponent.js +1 -1
  3. package/dist/assets/components/AnnotationComponent.min.js +1 -1
  4. package/dist/assets/components/CADGeometryComponent.js +1 -1
  5. package/dist/assets/components/CADGeometryComponent.min.js +1 -1
  6. package/dist/assets/components/CubeMapTexturingComponent.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +1 -1
  9. package/dist/assets/components/DISComponent.min.js +1 -1
  10. package/dist/assets/components/EventUtilitiesComponent.js +1 -1
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +1 -1
  12. package/dist/assets/components/GaussianSplatsComponent.js +1 -1
  13. package/dist/assets/components/GaussianSplatsComponent.min.js +1 -1
  14. package/dist/assets/components/Geometry2DComponent.js +1 -1
  15. package/dist/assets/components/Geometry2DComponent.min.js +1 -1
  16. package/dist/assets/components/Geometry3DComponent.js +1 -1
  17. package/dist/assets/components/Geometry3DComponent.min.js +1 -1
  18. package/dist/assets/components/GeospatialComponent.js +1 -1
  19. package/dist/assets/components/GeospatialComponent.min.js +1 -1
  20. package/dist/assets/components/HAnimComponent.js +1 -1
  21. package/dist/assets/components/HAnimComponent.min.js +1 -1
  22. package/dist/assets/components/KeyDeviceSensorComponent.js +1 -1
  23. package/dist/assets/components/KeyDeviceSensorComponent.min.js +1 -1
  24. package/dist/assets/components/LayoutComponent.js +1 -3
  25. package/dist/assets/components/LayoutComponent.min.js +2 -2
  26. package/dist/assets/components/NURBSComponent.js +1 -1
  27. package/dist/assets/components/NURBSComponent.min.js +1 -1
  28. package/dist/assets/components/ParticleSystemsComponent.js +2 -2
  29. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  30. package/dist/assets/components/PickingComponent.js +1 -1
  31. package/dist/assets/components/PickingComponent.min.js +1 -1
  32. package/dist/assets/components/RigidBodyPhysicsComponent.js +1 -1
  33. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +1 -1
  34. package/dist/assets/components/ScriptingComponent.js +1 -1
  35. package/dist/assets/components/ScriptingComponent.min.js +1 -1
  36. package/dist/assets/components/TextComponent.js +1 -1
  37. package/dist/assets/components/TextComponent.min.js +1 -1
  38. package/dist/assets/components/TextureProjectionComponent.js +1 -1
  39. package/dist/assets/components/TextureProjectionComponent.min.js +1 -1
  40. package/dist/assets/components/Texturing3DComponent.js +9 -9
  41. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  42. package/dist/assets/components/VolumeRenderingComponent.js +3 -5
  43. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  44. package/dist/assets/components/WebXRComponent.js +1 -1
  45. package/dist/assets/components/WebXRComponent.min.js +1 -1
  46. package/dist/assets/components/X_ITEComponent.js +1 -1
  47. package/dist/assets/components/X_ITEComponent.min.js +1 -1
  48. package/dist/assets/lib/README.md +0 -1
  49. package/dist/example.html +1 -1
  50. package/dist/x_ite.css +1 -1
  51. package/dist/x_ite.d.ts +7 -7
  52. package/dist/x_ite.js +89 -92
  53. package/dist/x_ite.min.js +2 -2
  54. package/dist/x_ite.min.mjs +2 -2
  55. package/dist/x_ite.mjs +89 -92
  56. package/dist/x_ite.zip +0 -0
  57. package/package.json +1 -1
package/dist/x_ite.css CHANGED
@@ -1 +1 @@
1
- /* X_ITE v16.0.3 */:host,X3DCanvas{--red:#d71f1f;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(1647%) hue-rotate(335deg) brightness(101%) contrast(101%);--text-color:#fff;--text-color-dark:#fff;--text-shadow-color:#000;--link-color:#ff9230;--logo-opacity:0.6;--progress-color:hsla(0,0%,100%,.5);--color1:#232528;--color2:#0d1015;--gradient:linear-gradient(180deg,rgba(35,37,40,.553) 0%,rgba(13,16,21,.831));--border:4px solid rgba(43,45,47,.675);--tint-color:rgba(0,0,0,.382);--icon-filter:none}@media (prefers-color-scheme:light){:host(:not([theme=dark])),X3DCanvas:not([theme=dark]){--red:#e12b2b;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(2647%) hue-rotate(335deg) brightness(70%) contrast(121%);--text-color:#000;--text-shadow-color:#fff;--link-color:var(--red);--logo-opacity:0.8;--progress-color:rgba(0,0,0,.6);--color1:#f7f7fc;--color2:#dedde2;--gradient:linear-gradient(180deg,rgba(247,247,252,.642) 0%,hsla(252,8%,88%,.6));--border:4px solid rgba(229,229,234,.66);--tint-color:hsla(0,0%,100%,.382);--icon-filter:invert(100%)}}:host([theme=light]),X3DCanvas[theme=light]{--red:#e12b2b;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(2647%) hue-rotate(335deg) brightness(70%) contrast(121%);--text-color:#000;--text-shadow-color:#fff;--link-color:var(--red);--logo-opacity:0.8;--progress-color:rgba(0,0,0,.6);--color1:#f7f7fc;--color2:#dedde2;--gradient:linear-gradient(180deg,rgba(247,247,252,.642) 0%,hsla(252,8%,88%,.6));--border:4px solid rgba(229,229,234,.66);--tint-color:hsla(0,0%,100%,.382);--icon-filter:invert(100%)}:host,X3DCanvas{border:0;border-radius:0;display:inline-block;height:150px;margin:0;outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;width:300px}:host([hidden]){display:none}:host(.x_ite-fullscreen),X3DCanvas.x_ite-fullscreen{height:100vh!important;width:100vw!important}X3DCanvas>:not(.x_ite-private-browser,.x_ite-private-menu){display:none}.x_ite-private-browser{overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.x_ite-private-browser,.x_ite-private-canvas,.x_ite-private-surface{border:0;border-radius:0;height:100%;margin:0;outline:none;padding:0}.x_ite-private-canvas{display:block;width:100%}.x_ite-private-notification{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:5px;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:10pt;letter-spacing:unset;line-height:1;padding:5px 5px 3px;pointer-events:none;position:absolute;right:-4px;top:20px;white-space:pre}.x_ite-private-notification span{background:url(assets/images/logo.svg) no-repeat top -1px left 0;background-size:17px 17px;display:inline-block;padding:0 24px 2px 20px;position:relative;top:-1px}.x_ite-private-browser-timings{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border-radius:5px;border-right:var(--border);border-top:var(--border);bottom:-4px;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:9pt;left:-4px;padding:7px 15px 14px 14px;pointer-events:none;position:absolute;white-space:pre}.x_ite-private-browser-timings :is(table,thead,tbody,tfoot,tr,th,td){background:none;border:0;border-radius:0;box-sizing:border-box;color:var(--text-color);font-size:inherit;font-style:normal;font-weight:400;letter-spacing:unset;line-height:1;margin:0;outline:0;padding:0;text-align:left}.x_ite-private-browser-timings table{border-collapse:separate;border-spacing:2px;empty-cells:show;max-width:100%;overflow:hidden;width:100%}.x_ite-private-browser-timings thead th{background:url(assets/images/schedule.svg) no-repeat -1px -1px;background-size:17px 17px;color:var(--text-color-dark);filter:var(--icon-filter);font-weight:700;padding-bottom:5px;padding-left:20px;padding-top:3px}.x_ite-private-browser-timings td:first-child{padding-right:10px}.x_ite-private-browser-timings table.more tr.x_ite-private-more td{padding-bottom:5px}.x_ite-private-browser-timings table.less tr.x_ite-private-more~tr{display:none}.x_ite-private-browser-timings td{padding-bottom:2px}.x_ite-private-browser-timings td.pointer{pointer-events:all}.x_ite-private-browser-timings tfoot td:first-child{padding-right:0}.x_ite-private-browser-timings tfoot td{padding-top:4px}.x_ite-private-browser-timings button{background:var(--tint-color);border:0;border-radius:10px;box-sizing:border-box;color:var(--text-color);cursor:pointer;font-family:X_ITE PT Sans,sans-serif;font-size:9pt;font-style:italic;height:14pt;letter-spacing:unset;line-height:1.1;padding:0;pointer-events:all;text-align:center;width:100%}.x_ite-private-world-info-overlay{inset:0;position:absolute}.x_ite-private-world-info{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:15px;inset:0;margin:21pt;overflow-y:auto;padding:0 21pt 21pt;position:absolute}.x_ite-private-world-info .x_ite-private-world-info-buttons{border-bottom:4px solid var(--tint-color);margin-bottom:12pt}.x_ite-private-world-info button{background:none;border:none;color:var(--text-color);height:21pt;width:100pt}.x_ite-private-world-info button:hover{background-color:var(--tint-color)}.x_ite-private-world-info button.active{font-weight:700}.x_ite-private-world-info :is(.x_ite-private-world-info-top,.x_ite-private-world-info-title,.x_ite-private-world-info-info,p){background:none;border:0;border-radius:0;box-sizing:border-box;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:inherit;font-style:normal;font-weight:inherit;letter-spacing:unset;line-height:1.3;margin:0;outline:0;padding:0;text-align:left}.x_ite-private-world-info .x_ite-private-world-info-top{font-size:9pt;font-style:italic;font-weight:700;margin:.3em 0}.x_ite-private-world-info .x_ite-private-world-info-title{font-size:21pt;font-weight:700;margin:.3em 0;overflow-wrap:break-word;word-break:break-word}.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info .x_ite-private-world-info-info p{font-size:14pt;margin:.5em 0;overflow-wrap:break-word;word-break:break-word}.x_ite-private-world-info table{border-collapse:collapse;line-height:1.3;margin:.5em 0;width:100%}.x_ite-private-world-info tr:nth-child(odd){background-color:var(--tint-color)}.x_ite-private-world-info td:first-child{min-width:60px}.x_ite-private-world-info td{color:var(--text-color);font-size:12pt;overflow-wrap:break-word;padding:4pt;vertical-align:top;word-break:break-word}.x_ite-private-world-info a{color:var(--link-color)}.x_ite-private-menu.context-menu-layer{inset:0;position:fixed;z-index:10000}.x_ite-private-menu .context-menu-list,.x_ite-private-menu.context-menu-list{border:4px solid transparent;border-radius:5px;box-sizing:border-box;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:10pt;line-height:1.2;list-style-type:none;margin:0 0 0 1px;min-width:120px;overscroll-behavior:none;padding:5px 10px 4px 9px;white-space:pre}.x_ite-private-menu.context-menu-list{isolation:isolate;position:fixed;z-index:10000}.x_ite-private-menu .context-menu-list{display:none;position:absolute;top:-13px}.x_ite-private-menu .context-menu-background{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:5px;box-sizing:border-box;inset:0;margin:0 0 0 1px;min-width:120px;padding:5px 10px 9px 9px;position:absolute}.x_ite-private-menu .context-menu-item{border-radius:5px;cursor:pointer;font-size:10pt;letter-spacing:unset;line-height:1;margin:0;margin:0 4px;position:relative;text-align:left}.x_ite-private-menu .context-menu-item:first-of-type{margin-top:4px}.x_ite-private-menu .context-menu-item:last-of-type{margin-bottom:4px}.x_ite-private-menu .context-menu-item:hover:not(.context-menu-not-selectable){background-color:var(--red)}.x_ite-private-menu .context-menu-item:hover>.context-menu-list{display:block}.x_ite-private-menu .context-menu-not-selectable{cursor:default}.x_ite-private-menu .context-menu-separator{border-bottom:1px solid #8a8a8a;border-top:0;cursor:default;margin:2px 0;padding-bottom:0;padding-top:0}.x_ite-private-menu .context-menu-separator+.context-menu-separator{display:none!important}.x_ite-private-menu .context-menu-submenu:after{border-color:transparent transparent transparent #e8eaed;border-style:solid;border-width:4px 0 4px 5px;content:"";display:block;filter:var(--icon-filter);height:0;margin-right:2px;position:absolute;right:0;top:8px;width:0}.x_ite-private-menu .context-menu-item>span,.x_ite-private-menu label{display:block;padding:5px 24px;width:100%}.x_ite-private-menu label{box-sizing:border-box;cursor:pointer;font-size:10pt;font-weight:400;letter-spacing:unset;line-height:1;margin:0}.x_ite-private-menu label span{color:var(--text-color-dark);filter:var(--icon-filter)}.x_ite-private-menu label:has(>input[type=radio]:checked){font-weight:700}.x_ite-private-menu label>*{font-size:10pt;letter-spacing:unset;line-height:1;vertical-align:top}.x_ite-private-menu input{all:revert;appearance:none;cursor:pointer}.x_ite-private-menu input[type=checkbox],.x_ite-private-menu input[type=radio]{background:url(assets/images/radio_button_unchecked.svg) no-repeat left 0 top 0;background-size:17px 17px;display:inline;display:inline-block;filter:var(--icon-filter);height:17px;margin:0 0 0 -22px;padding:0;position:absolute;top:3px;width:17px}.x_ite-private-menu input:checked{filter:var(--orange-filter)}.x_ite-private-menu .context-menu-input:hover input:checked{filter:var(--icon-filter)}.x_ite-private-menu input[type=checkbox]:checked{background-image:url(assets/images/check_circle.svg)}.x_ite-private-menu input[type=radio]:checked{background-image:url(assets/images/radio_button_checked.svg)}.x_ite-private-menu span{padding-left:0}.x_ite-private-menu .context-menu-title{font-weight:700}.x_ite-private-menu .context-menu-icon>span{background-position:2px 3px;background-repeat:no-repeat;background-size:17px 17px;color:var(--text-color-dark);display:block;filter:var(--icon-filter)}.x_ite-private-menu .context-menu-icon.x_ite-private-icon-logo>span{background-image:url(assets/images/logo.svg);background-position:2px 4px;color:var(--text-color);filter:none}.x_ite-private-icon-viewpoint>span{background-image:url(assets/images/eye_tracking.svg)}.x_ite-private-menu .x_ite-private-viewpoint input{background-image:none}.x_ite-private-menu .x_ite-private-viewpoint input:checked{background-image:url(assets/images/visibility.svg)}.x_ite-private-icon-viewer>span{background-image:url(assets/images/stadia_controller.svg)}.x_ite-private-menu .x_ite-private-examine-viewer :is(input,input:checked){background-image:url(assets/images/language.svg)}.x_ite-private-menu .x_ite-private-walk-viewer :is(input,input:checked){background-image:url(assets/images/directions_run.svg)}.x_ite-private-menu .x_ite-private-fly-viewer :is(input,input:checked){background-image:url(assets/images/travel.svg)}.x_ite-private-menu .x_ite-private-plane-viewer :is(input,input:checked){background-image:url(assets/images/border_all.svg)}.x_ite-private-menu .x_ite-private-lookat-viewer :is(input,input:checked){background-image:url(assets/images/point_scan.svg)}.x_ite-private-menu .x_ite-private-none-viewer :is(input,input:checked){background-image:url(assets/images/block.svg)}.x_ite-private-icon-primitive-quality>span{background-image:url(assets/images/hexagon.svg)}.x_ite-private-icon-texture-quality>span{background-image:url(assets/images/texture.svg)}.x_ite-private-icon-shading>span{background-image:url(assets/images/stroke_partial.svg)}.x_ite-private-icon-animations>span{background-image:url(assets/images/animation.svg)}.x_ite-private-icon-play>span{background-image:url(assets/images/play_circle.svg)}.x_ite-private-icon-stop>span{background-image:url(assets/images/stop_circle.svg)}.x_ite-private-icon-enter-fullscreen>span{background-image:url(assets/images/fullscreen.svg)}.x_ite-private-icon-leave-fullscreen>span{background-image:url(assets/images/fullscreen_exit.svg)}.x_ite-private-icon-world-info>span{background-image:url(assets/images/globe.svg)}.x_ite-private-icon-info>span{background-image:url(assets/images/info.svg)}.x_ite-private-splash-screen{background:radial-gradient(ellipse at center,var(--color1) 0,var(--color2) 100%);inset:0;pointer-events:none;position:absolute}.x_ite-private-spinner{--size:160px;--center-x:calc(var(--size)*0.44727);--center-y:calc(var(--size)*0.52637);animation:x_ite-spinner-animation 32s linear infinite;background:url(assets/images/logo.svg) no-repeat;background-size:var(--size) var(--size);height:var(--size);left:calc(50% - var(--size)/2 + var(--size)/2 - var(--center-x));opacity:var(--logo-opacity);position:absolute;top:calc(50% - var(--size)/2 + var(--size)/2 - var(--center-y));transform-origin:var(--center-x) var(--center-y);width:var(--size)}@keyframes x_ite-spinner-animation{to{transform:rotate(1turn)}}.x_ite-private-progress{left:calc(50% - 100px);position:absolute;top:calc(50% - 39pt);width:200px}.x_ite-private-x_ite{color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:28pt;text-align:center;text-shadow:1px 1px 0 var(--text-shadow-color)}.x_ite-private-x_ite b{font-family:X_ITE PT Sans,sans-serif;font-weight:700}.x_ite-private-spinner-text{color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:11pt;text-align:center;text-shadow:1px 1px 0 var(--text-shadow-color)}.x_ite-private-progressbar{border-left:2px solid var(--progress-color);border-right:2px solid var(--progress-color);margin:8px;padding:0 2px;text-align:left}.x_ite-private-progressbar div{background:var(--progress-color);height:6px;width:0}.x_ite-private-buttons{bottom:10px;display:flex;gap:8px;height:18px;position:absolute;right:10px}.x_ite-private-button{align-self:center;background:no-repeat;cursor:pointer;transition:transform .2s ease-in-out}.x_ite-private-button:hover{transform:scale(1.2)}.x_ite-private-no-sound-button{background-image:url(assets/images/no_sound.svg);background-size:32px 32px;height:32px;order:1;width:32px}.x_ite-private-xr-button{background-image:url(assets/images/xr.svg);height:18px;order:2;width:32px}.x_ite-private-hidden{opacity:0;visibility:hidden}.x_ite-private-fade-out-splash-screen{opacity:0;transition:visibility 0s .2s,opacity .2s ease-in-out;visibility:hidden}.x_ite-private-fade-in-300{opacity:1;transition:opacity .3s ease-in-out;visibility:visible}.x_ite-private-fade-out-300{opacity:0;transition:visibility 0s .3s,opacity .3s ease-in-out;visibility:hidden}
1
+ /* X_ITE v16.0.5 */:host,X3DCanvas{--red:#d71f1f;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(1647%) hue-rotate(335deg) brightness(101%) contrast(101%);--text-color:#fff;--text-color-dark:#fff;--text-shadow-color:#000;--link-color:#ff9230;--logo-opacity:0.6;--progress-color:hsla(0,0%,100%,.5);--color1:#232528;--color2:#0d1015;--gradient:linear-gradient(180deg,rgba(35,37,40,.553) 0%,rgba(13,16,21,.831));--border:4px solid rgba(43,45,47,.675);--tint-color:rgba(0,0,0,.382);--icon-filter:none}@media (prefers-color-scheme:light){:host(:not([theme=dark])),X3DCanvas:not([theme=dark]){--red:#e12b2b;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(2647%) hue-rotate(335deg) brightness(70%) contrast(121%);--text-color:#000;--text-shadow-color:#fff;--link-color:var(--red);--logo-opacity:0.8;--progress-color:rgba(0,0,0,.6);--color1:#f7f7fc;--color2:#dedde2;--gradient:linear-gradient(180deg,rgba(247,247,252,.642) 0%,hsla(252,8%,88%,.6));--border:4px solid rgba(229,229,234,.66);--tint-color:hsla(0,0%,100%,.382);--icon-filter:invert(100%)}}:host([theme=light]),X3DCanvas[theme=light]{--red:#e12b2b;--orange-filter:brightness(0) saturate(100%) invert(71%) sepia(100%) saturate(2647%) hue-rotate(335deg) brightness(70%) contrast(121%);--text-color:#000;--text-shadow-color:#fff;--link-color:var(--red);--logo-opacity:0.8;--progress-color:rgba(0,0,0,.6);--color1:#f7f7fc;--color2:#dedde2;--gradient:linear-gradient(180deg,rgba(247,247,252,.642) 0%,hsla(252,8%,88%,.6));--border:4px solid rgba(229,229,234,.66);--tint-color:hsla(0,0%,100%,.382);--icon-filter:invert(100%)}:host,X3DCanvas{border:0;border-radius:0;display:inline-block;height:150px;margin:0;outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;width:300px}:host([hidden]){display:none}:host(.x_ite-fullscreen),X3DCanvas.x_ite-fullscreen{height:100vh!important;width:100vw!important}X3DCanvas>:not(.x_ite-private-browser,.x_ite-private-menu){display:none}.x_ite-private-browser{overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.x_ite-private-browser,.x_ite-private-canvas,.x_ite-private-surface{border:0;border-radius:0;height:100%;margin:0;outline:none;padding:0}.x_ite-private-canvas{display:block;width:100%}.x_ite-private-notification{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:5px;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:10pt;letter-spacing:unset;line-height:1;padding:5px 5px 3px;pointer-events:none;position:absolute;right:-4px;top:20px;white-space:pre}.x_ite-private-notification span{background:url(assets/images/logo.svg) no-repeat top -1px left 0;background-size:17px 17px;display:inline-block;padding:0 24px 2px 20px;position:relative;top:-1px}.x_ite-private-browser-timings{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border-radius:5px;border-right:var(--border);border-top:var(--border);bottom:-4px;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:9pt;left:-4px;padding:7px 15px 14px 14px;pointer-events:none;position:absolute;white-space:pre}.x_ite-private-browser-timings :is(table,thead,tbody,tfoot,tr,th,td){background:none;border:0;border-radius:0;box-sizing:border-box;color:var(--text-color);font-size:inherit;font-style:normal;font-weight:400;letter-spacing:unset;line-height:1;margin:0;outline:0;padding:0;text-align:left}.x_ite-private-browser-timings table{border-collapse:separate;border-spacing:2px;empty-cells:show;max-width:100%;overflow:hidden;width:100%}.x_ite-private-browser-timings thead th{background:url(assets/images/schedule.svg) no-repeat -1px -1px;background-size:17px 17px;color:var(--text-color-dark);filter:var(--icon-filter);font-weight:700;padding-bottom:5px;padding-left:20px;padding-top:3px}.x_ite-private-browser-timings td:first-child{padding-right:10px}.x_ite-private-browser-timings table.more tr.x_ite-private-more td{padding-bottom:5px}.x_ite-private-browser-timings table.less tr.x_ite-private-more~tr{display:none}.x_ite-private-browser-timings td{padding-bottom:2px}.x_ite-private-browser-timings td.pointer{pointer-events:all}.x_ite-private-browser-timings tfoot td:first-child{padding-right:0}.x_ite-private-browser-timings tfoot td{padding-top:4px}.x_ite-private-browser-timings button{background:var(--tint-color);border:0;border-radius:10px;box-sizing:border-box;color:var(--text-color);cursor:pointer;font-family:X_ITE PT Sans,sans-serif;font-size:9pt;font-style:italic;height:14pt;letter-spacing:unset;line-height:1.1;padding:0;pointer-events:all;text-align:center;width:100%}.x_ite-private-world-info-overlay{inset:0;position:absolute}.x_ite-private-world-info{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:15px;inset:0;margin:21pt;overflow-y:auto;padding:0 21pt 21pt;position:absolute}.x_ite-private-world-info .x_ite-private-world-info-buttons{border-bottom:4px solid var(--tint-color);margin-bottom:12pt}.x_ite-private-world-info button{background:none;border:none;color:var(--text-color);height:21pt;width:100pt}.x_ite-private-world-info button:hover{background-color:var(--tint-color)}.x_ite-private-world-info button.active{font-weight:700}.x_ite-private-world-info :is(.x_ite-private-world-info-top,.x_ite-private-world-info-title,.x_ite-private-world-info-info,p){background:none;border:0;border-radius:0;box-sizing:border-box;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:inherit;font-style:normal;font-weight:inherit;letter-spacing:unset;line-height:1.3;margin:0;outline:0;padding:0;text-align:left}.x_ite-private-world-info .x_ite-private-world-info-top{font-size:9pt;font-style:italic;font-weight:700;margin:.3em 0}.x_ite-private-world-info .x_ite-private-world-info-title{font-size:21pt;font-weight:700;margin:.3em 0;overflow-wrap:break-word;word-break:break-word}.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info .x_ite-private-world-info-info p{font-size:14pt;margin:.5em 0;overflow-wrap:break-word;word-break:break-word}.x_ite-private-world-info table{border-collapse:collapse;line-height:1.3;margin:.5em 0;width:100%}.x_ite-private-world-info tr:nth-child(odd){background-color:var(--tint-color)}.x_ite-private-world-info td:first-child{min-width:60px}.x_ite-private-world-info td{color:var(--text-color);font-size:12pt;overflow-wrap:break-word;padding:4pt;vertical-align:top;word-break:break-word}.x_ite-private-world-info a{color:var(--link-color)}.x_ite-private-menu.context-menu-layer{inset:0;position:fixed;z-index:10000}.x_ite-private-menu .context-menu-list,.x_ite-private-menu.context-menu-list{border:4px solid transparent;border-radius:5px;box-sizing:border-box;color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:10pt;line-height:1.2;list-style-type:none;margin:0 0 0 1px;min-width:120px;overscroll-behavior:none;padding:5px 10px 4px 9px;white-space:pre}.x_ite-private-menu.context-menu-list{isolation:isolate;position:fixed;z-index:10000}.x_ite-private-menu .context-menu-list{display:none;position:absolute;top:-13px}.x_ite-private-menu .context-menu-background{backdrop-filter:blur(8px);background:var(--gradient);background-clip:padding-box;border:var(--border);border-radius:5px;box-sizing:border-box;inset:0;margin:0 0 0 1px;min-width:120px;padding:5px 10px 9px 9px;position:absolute}.x_ite-private-menu .context-menu-item{border-radius:5px;cursor:pointer;font-size:10pt;letter-spacing:unset;line-height:1;margin:0;margin:0 4px;position:relative;text-align:left}.x_ite-private-menu .context-menu-item:first-of-type{margin-top:4px}.x_ite-private-menu .context-menu-item:last-of-type{margin-bottom:4px}.x_ite-private-menu .context-menu-item:hover:not(.context-menu-not-selectable){background-color:var(--red)}.x_ite-private-menu .context-menu-item:hover>.context-menu-list{display:block}.x_ite-private-menu .context-menu-not-selectable{cursor:default}.x_ite-private-menu .context-menu-separator{border-bottom:1px solid #8a8a8a;border-top:0;cursor:default;margin:2px 0;padding-bottom:0;padding-top:0}.x_ite-private-menu .context-menu-separator+.context-menu-separator{display:none!important}.x_ite-private-menu .context-menu-submenu:after{border-color:transparent transparent transparent #e8eaed;border-style:solid;border-width:4px 0 4px 5px;content:"";display:block;filter:var(--icon-filter);height:0;margin-right:2px;position:absolute;right:0;top:8px;width:0}.x_ite-private-menu .context-menu-item>span,.x_ite-private-menu label{display:block;padding:5px 24px;width:100%}.x_ite-private-menu label{box-sizing:border-box;cursor:pointer;font-size:10pt;font-weight:400;letter-spacing:unset;line-height:1;margin:0}.x_ite-private-menu label span{color:var(--text-color-dark);filter:var(--icon-filter)}.x_ite-private-menu label:has(>input[type=radio]:checked){font-weight:700}.x_ite-private-menu label>*{font-size:10pt;letter-spacing:unset;line-height:1;vertical-align:top}.x_ite-private-menu input{all:revert;appearance:none;cursor:pointer}.x_ite-private-menu input[type=checkbox],.x_ite-private-menu input[type=radio]{background:url(assets/images/radio_button_unchecked.svg) no-repeat left 0 top 0;background-size:17px 17px;display:inline;display:inline-block;filter:var(--icon-filter);height:17px;margin:0 0 0 -22px;padding:0;position:absolute;top:3px;width:17px}.x_ite-private-menu input:checked{filter:var(--orange-filter)}.x_ite-private-menu .context-menu-input:hover input:checked{filter:var(--icon-filter)}.x_ite-private-menu input[type=checkbox]:checked{background-image:url(assets/images/check_circle.svg)}.x_ite-private-menu input[type=radio]:checked{background-image:url(assets/images/radio_button_checked.svg)}.x_ite-private-menu span{padding-left:0}.x_ite-private-menu .context-menu-title{font-weight:700}.x_ite-private-menu .context-menu-icon>span{background-position:2px 3px;background-repeat:no-repeat;background-size:17px 17px;color:var(--text-color-dark);display:block;filter:var(--icon-filter)}.x_ite-private-menu .context-menu-icon.x_ite-private-icon-logo>span{background-image:url(assets/images/logo.svg);background-position:2px 4px;color:var(--text-color);filter:none}.x_ite-private-icon-viewpoint>span{background-image:url(assets/images/eye_tracking.svg)}.x_ite-private-menu .x_ite-private-viewpoint input{background-image:none}.x_ite-private-menu .x_ite-private-viewpoint input:checked{background-image:url(assets/images/visibility.svg)}.x_ite-private-icon-viewer>span{background-image:url(assets/images/stadia_controller.svg)}.x_ite-private-menu .x_ite-private-examine-viewer :is(input,input:checked){background-image:url(assets/images/language.svg)}.x_ite-private-menu .x_ite-private-walk-viewer :is(input,input:checked){background-image:url(assets/images/directions_run.svg)}.x_ite-private-menu .x_ite-private-fly-viewer :is(input,input:checked){background-image:url(assets/images/travel.svg)}.x_ite-private-menu .x_ite-private-plane-viewer :is(input,input:checked){background-image:url(assets/images/border_all.svg)}.x_ite-private-menu .x_ite-private-lookat-viewer :is(input,input:checked){background-image:url(assets/images/point_scan.svg)}.x_ite-private-menu .x_ite-private-none-viewer :is(input,input:checked){background-image:url(assets/images/block.svg)}.x_ite-private-icon-primitive-quality>span{background-image:url(assets/images/hexagon.svg)}.x_ite-private-icon-texture-quality>span{background-image:url(assets/images/texture.svg)}.x_ite-private-icon-shading>span{background-image:url(assets/images/stroke_partial.svg)}.x_ite-private-icon-animations>span{background-image:url(assets/images/animation.svg)}.x_ite-private-icon-play>span{background-image:url(assets/images/play_circle.svg)}.x_ite-private-icon-stop>span{background-image:url(assets/images/stop_circle.svg)}.x_ite-private-icon-enter-fullscreen>span{background-image:url(assets/images/fullscreen.svg)}.x_ite-private-icon-leave-fullscreen>span{background-image:url(assets/images/fullscreen_exit.svg)}.x_ite-private-icon-world-info>span{background-image:url(assets/images/globe.svg)}.x_ite-private-icon-info>span{background-image:url(assets/images/info.svg)}.x_ite-private-splash-screen{background:radial-gradient(ellipse at center,var(--color1) 0,var(--color2) 100%);inset:0;pointer-events:none;position:absolute}.x_ite-private-spinner{--size:160px;--center-x:calc(var(--size)*0.44727);--center-y:calc(var(--size)*0.52637);animation:x_ite-spinner-animation 32s linear infinite;background:url(assets/images/logo.svg) no-repeat;background-size:var(--size) var(--size);height:var(--size);left:calc(50% - var(--size)/2 + var(--size)/2 - var(--center-x));opacity:var(--logo-opacity);position:absolute;top:calc(50% - var(--size)/2 + var(--size)/2 - var(--center-y));transform-origin:var(--center-x) var(--center-y);width:var(--size)}@keyframes x_ite-spinner-animation{to{transform:rotate(1turn)}}.x_ite-private-progress{left:calc(50% - 100px);position:absolute;top:calc(50% - 39pt);width:200px}.x_ite-private-x_ite{color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:28pt;text-align:center;text-shadow:1px 1px 0 var(--text-shadow-color)}.x_ite-private-x_ite b{font-family:X_ITE PT Sans,sans-serif;font-weight:700}.x_ite-private-spinner-text{color:var(--text-color);font-family:X_ITE PT Sans,sans-serif;font-size:11pt;text-align:center;text-shadow:1px 1px 0 var(--text-shadow-color)}.x_ite-private-progressbar{border-left:2px solid var(--progress-color);border-right:2px solid var(--progress-color);margin:8px;padding:0 2px;text-align:left}.x_ite-private-progressbar div{background:var(--progress-color);height:6px;width:0}.x_ite-private-buttons{bottom:10px;display:flex;gap:8px;height:18px;position:absolute;right:10px}.x_ite-private-button{align-self:center;background:no-repeat;cursor:pointer;transition:transform .2s ease-in-out}.x_ite-private-button:hover{transform:scale(1.2)}.x_ite-private-no-sound-button{background-image:url(assets/images/no_sound.svg);background-size:32px 32px;height:32px;order:1;width:32px}.x_ite-private-xr-button{background-image:url(assets/images/xr.svg);height:18px;order:2;width:32px}.x_ite-private-hidden{opacity:0;visibility:hidden}.x_ite-private-fade-out-splash-screen{opacity:0;transition:visibility 0s .2s,opacity .2s ease-in-out;visibility:hidden}.x_ite-private-fade-in-300{opacity:1;transition:opacity .3s ease-in-out;visibility:visible}.x_ite-private-fade-out-300{opacity:0;transition:visibility 0s .3s,opacity .3s ease-in-out;visibility:hidden}
package/dist/x_ite.d.ts CHANGED
@@ -8868,7 +8868,7 @@ declare namespace X3D
8868
8868
  */
8869
8869
  metadata: X3DMetadataObjectProxy | null;
8870
8870
  /**
8871
- * The opacity of a Gaussian splat is defined by the opacities field.
8871
+ * The opacities field defines the opacity of each individual Gaussian splat.
8872
8872
  *
8873
8873
  * This field is of access type 'inputOutput' and type MFFloat.
8874
8874
  */
@@ -12569,7 +12569,7 @@ declare namespace X3D
12569
12569
  trackCurrentView: boolean;
12570
12570
  }
12571
12571
 
12572
- /** LoadSensor generates events as watchList child nodes are either loaded or fail to load. */
12572
+ /** LoadSensor generates events as children (watchList in X3Dv3) child nodes are either loaded or fail to load. */
12573
12573
  interface LoadSensorProxy extends X3DNetworkSensorNodeProxy
12574
12574
  {
12575
12575
  /**
@@ -12597,7 +12597,7 @@ declare namespace X3D
12597
12597
  */
12598
12598
  readonly isActive: boolean;
12599
12599
  /**
12600
- * Notify when all watchList child nodes are loaded, or at least one has failed.
12600
+ * Notify when all children/watchList child nodes are loaded, or at least one has failed.
12601
12601
  *
12602
12602
  * This field is of access type 'outputOnly' and type SFBool.
12603
12603
  */
@@ -13069,7 +13069,7 @@ declare namespace X3D
13069
13069
  */
13070
13070
  reference: string;
13071
13071
  /**
13072
- * The value field provides a list of X3DMetadataObject nodes whose meaning is determined by the name field.
13072
+ * The value field provides a list of X3DMetadataObject nodes whose meaning is each determined by their respective name field.
13073
13073
  *
13074
13074
  * This field is of access type 'inputOutput' and type MFNode.
13075
13075
  */
@@ -13528,7 +13528,7 @@ declare namespace X3D
13528
13528
  *
13529
13529
  * This field is of access type 'inputOutput' and type MFString.
13530
13530
  */
13531
- function: MFString <"COMPLEMENT" | "ALPHAREPLICATE" | "">;
13531
+ function: MFString <"COMPLEMENT" | "ALPHA_REPLICATE" | "">;
13532
13532
  /**
13533
13533
  * Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
13534
13534
  *
@@ -13540,7 +13540,7 @@ declare namespace X3D
13540
13540
  *
13541
13541
  * This field is of access type 'inputOutput' and type MFString.
13542
13542
  */
13543
- mode: MFString <"ADD" | "ADDSIGNED" | "ADDSIGNED2X" | "ADDSMOOTH" | "BLENDCURRENTALPHA" | "BLENDDIFFUSEALPHA" | "BLENDFACTORALPHA" | "BLENDTEXTUREALPHA" | "DOTPRODUCT3" | "MODULATE" | "MODULATE2X" | "MODULATE4X" | "MODULATEALPHA_ADDCOLOR" | "MODULATEINVALPHA_ADDCOLOR" | "MODULATEINVCOLOR_ADDALPHA" | "OFF" | "REPLACE" | "SELECTARG1" | "SELECTARG2" | "SUBTRACT">;
13543
+ mode: MFString <"ADD" | "ADD_SIGNED" | "ADD_SIGNED_2X" | "ADD_SMOOTH" | "BLEND_CURRENT_ALPHA" | "BLEND_DIFFUSE_ALPHA" | "BLEND_FACTOR_ALPHA" | "BLEND_TEXTURE_ALPHA" | "DOT_PRODUCT_3" | "MODULATE" | "MODULATE_2X" | "MODULATE_4X" | "MODULATE_ALPHA_ADD_COLOR" | "MODULATE_INV_ALPHA_ADD_COLOR" | "MODULATE_INV_COLOR_ADD_ALPHA" | "OFF" | "REPLACE" | "SELECT_ARG1" | "SELECT_ARG2" | "SUBTRACT">;
13544
13544
  /**
13545
13545
  * source field determines whether each image source is treated as DIFFUSE, SPECULAR or a multiplicative FACTOR.
13546
13546
  *
@@ -19490,7 +19490,7 @@ declare namespace X3D
19490
19490
  *
19491
19491
  * This field is of access type 'inputOutput' and type SFString.
19492
19492
  */
19493
- mode: "SPHERE" | "CAMERASPACENORMAL" | "CAMERASPACEPOSITION" | "CAMERASPACEREFLECTIONVECTOR" | "SPHERE-LOCAL" | "COORD" | "COORD-EYE" | "NOISE" | "NOISE-EYE" | "SPHERE-REFLECT" | "SPHERE-REFLECT-LOCAL";
19493
+ mode: "SPHERE" | "CAMERA_SPACE_NORMAL" | "CAMERA_SPACE_POSITION" | "CAMERA_SPACE_REFLECTION_VECTOR" | "SPHERE_LOCAL" | "COORD" | "COORD_EYE" | "NOISE" | "NOISE_EYE" | "SPHERE_REFLECT" | "SPHERE_REFLECT_LOCAL";
19494
19494
  /**
19495
19495
  * parameter array contains scale and translation (x y z) values for Perlin NOISE mode, parameter[0] contains index of refraction for SPHERE-REFLECT mode, parameter[0] contains index of refraction and parameter[1 to 3] contains the eye point in local coordinates for SPHERE-REFLECT-LOCAL mode.
19496
19496
  *
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v16.0.3 */
1
+ /* X_ITE v16.0.5 */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -12,7 +12,7 @@
12
12
  return /******/ (() => { // webpackBootstrap
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
15
- /***/ 521
15
+ /***/ 998
16
16
  (module, exports) {
17
17
 
18
18
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -1017,7 +1017,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
1017
1017
 
1018
1018
  /***/ },
1019
1019
 
1020
- /***/ 939
1020
+ /***/ 844
1021
1021
  (module) {
1022
1022
 
1023
1023
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -2013,7 +2013,7 @@ return /******/ (function(modules) { // webpackBootstrap
2013
2013
 
2014
2014
  /***/ },
2015
2015
 
2016
- /***/ 159
2016
+ /***/ 728
2017
2017
  (module) {
2018
2018
 
2019
2019
  /**
@@ -18846,7 +18846,7 @@ const Legacy_default_ = Legacy;
18846
18846
 
18847
18847
  /* harmony default export */ const Browser_Legacy = (x_ite_Namespace .add ("Legacy", Legacy_default_));
18848
18848
  ;// ./src/x_ite/BROWSER_VERSION.js
18849
- const BROWSER_VERSION_default_ = "16.0.3";
18849
+ const BROWSER_VERSION_default_ = "16.0.5";
18850
18850
  ;
18851
18851
 
18852
18852
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -20467,7 +20467,7 @@ Object .assign (Object .setPrototypeOf (ContextMenu .prototype, Base_X3DBaseNode
20467
20467
  layer .addEventListener ("mousedown", () => this .hide ());
20468
20468
  layer .addEventListener ("contextmenu", () => this .hide ());
20469
20469
 
20470
- root .appendChild (layer);
20470
+ root .append (layer);
20471
20471
 
20472
20472
  this [_hide] = () =>
20473
20473
  {
@@ -20496,16 +20496,16 @@ Object .assign (Object .setPrototypeOf (ContextMenu .prototype, Base_X3DBaseNode
20496
20496
 
20497
20497
  ul .addEventListener ("contextmenu", () => this .hide ());
20498
20498
 
20499
- root .appendChild (ul);
20499
+ root .append (ul);
20500
20500
 
20501
20501
  const background = document .createElement ("div");
20502
20502
 
20503
20503
  background .classList .add ("context-menu-background");
20504
20504
 
20505
- ul .appendChild (background);
20505
+ ul .append (background);
20506
20506
 
20507
20507
  for (const k in menu .items)
20508
- ul .appendChild (this .createItem (menu .items [k], "context-menu-root", k, level + 1));
20508
+ ul .append (this .createItem (menu .items [k], "context-menu-root", k, level + 1));
20509
20509
 
20510
20510
  // Show
20511
20511
  // Must animate children because of blurish background.
@@ -30339,8 +30339,8 @@ Object .assign (Object .setPrototypeOf (JSONParser .prototype, Parser_X3DParser
30339
30339
  createCDATA (document, element, str)
30340
30340
  {
30341
30341
  const
30342
- docu = helper.parseXML ("<xml></xml>",),
30343
- cdata = docu .createCDATASection (str);
30342
+ root = helper.parseXML ("<xml></xml>",),
30343
+ cdata = root .createCDATASection (str);
30344
30344
 
30345
30345
  element .append (cdata);
30346
30346
  },
@@ -30385,7 +30385,6 @@ Object .assign (Object .setPrototypeOf (JSONParser .prototype, Parser_X3DParser
30385
30385
  this .convertToDOM (object [key] [childkey], childkey, child);
30386
30386
 
30387
30387
  element .append (child);
30388
- element .append (document .createTextNode ("\n"));
30389
30388
  }
30390
30389
  }
30391
30390
  }
@@ -30396,7 +30395,6 @@ Object .assign (Object .setPrototypeOf (JSONParser .prototype, Parser_X3DParser
30396
30395
  this .convertToDOM (object [key], key, child);
30397
30396
 
30398
30397
  element .append (child);
30399
- element .append (document .createTextNode ("\n"));
30400
30398
  }
30401
30399
  }
30402
30400
  },
@@ -31133,7 +31131,7 @@ const Plane3_default_ = Plane3;
31133
31131
 
31134
31132
  /* harmony default export */ const Geometry_Plane3 = (x_ite_Namespace .add ("Plane3", Plane3_default_));
31135
31133
  ;// ./src/standard/Math/Geometry/Triangle3.js
31136
- /* provided dependency */ var libtess = __webpack_require__(159);
31134
+ /* provided dependency */ var libtess = __webpack_require__(728);
31137
31135
 
31138
31136
 
31139
31137
  const Triangle3 =
@@ -47763,7 +47761,7 @@ const Bezier_default_ = Bezier;
47763
47761
 
47764
47762
  /* harmony default export */ const Algorithms_Bezier = (x_ite_Namespace .add ("Bezier", Bezier_default_));
47765
47763
  ;// ./src/x_ite/Parser/SVGParser.js
47766
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(159);
47764
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(728);
47767
47765
 
47768
47766
 
47769
47767
 
@@ -54455,7 +54453,7 @@ function X3DCoreContext (element)
54455
54453
  {
54456
54454
  const link = document .createElement ("link");
54457
54455
 
54458
- link .integrity = "sha384-kJEneJ/A3x8UCAr9atGL38mNOYbyOsYx1KrBl+f1Al3bK4S1tzl/AYvqtxknYzkx";
54456
+ link .integrity = "sha384-z3n/GOGoKsMpVZSKJ93fURwkAP+Pc26L4fyoX8sqfSjRbaqYaOKMzV8xyfYFto4R";
54459
54457
  link .rel = "stylesheet";
54460
54458
  link .crossOrigin = "anonymous";
54461
54459
  link .onload = resolve;
@@ -55246,13 +55244,13 @@ Object .assign (Object .setPrototypeOf (TextureProperties .prototype, Core_X3DNo
55246
55244
  {
55247
55245
  const minificationFilters = new Map ([
55248
55246
  ["AVG_PIXEL_AVG_MIPMAP", ["LINEAR", "LINEAR_MIPMAP_LINEAR"]],
55249
- ["AVG_PIXEL", ["LINEAR", "LINEAR"]],
55250
55247
  ["AVG_PIXEL_NEAREST_MIPMAP", ["LINEAR", "LINEAR_MIPMAP_NEAREST"]],
55251
55248
  ["NEAREST_PIXEL_AVG_MIPMAP", ["NEAREST", "NEAREST_MIPMAP_LINEAR"]],
55252
55249
  ["NEAREST_PIXEL_NEAREST_MIPMAP", ["NEAREST", "NEAREST_MIPMAP_NEAREST"]],
55250
+ ["AVG_PIXEL", ["LINEAR", "LINEAR"]],
55253
55251
  ["NEAREST_PIXEL", ["NEAREST", "NEAREST"]],
55254
55252
  ["NICEST", ["LINEAR", "LINEAR_MIPMAP_LINEAR"]],
55255
- ["FASTEST", ["NEAREST", "NEAREST"]],
55253
+ ["FASTEST", ["NEAREST", "NEAREST_MIPMAP_NEAREST"]],
55256
55254
  ]);
55257
55255
 
55258
55256
  return function (mipMaps = true)
@@ -55349,7 +55347,7 @@ Object .assign (X3DEnvironmentalEffectsContext .prototype,
55349
55347
  backgroundTextureProperties ._boundaryModeR = "CLAMP_TO_EDGE";
55350
55348
  backgroundTextureProperties ._minificationFilter = "NICEST";
55351
55349
  backgroundTextureProperties ._magnificationFilter = "NICEST";
55352
- backgroundTextureProperties ._textureCompression = "DEFAULT";
55350
+
55353
55351
  backgroundTextureProperties .setup ();
55354
55352
 
55355
55353
  return backgroundTextureProperties;
@@ -59286,47 +59284,6 @@ const X3DLayeringContext_default_ = X3DLayeringContext;
59286
59284
  ;
59287
59285
 
59288
59286
  /* harmony default export */ const Layering_X3DLayeringContext = (x_ite_Namespace .add ("X3DLayeringContext", X3DLayeringContext_default_));
59289
- ;// ./src/assets/shaders/webgl2/pbr/ToneMapping2.glsl.js
59290
- const ToneMapping2_glsl_default_ = () => /* glsl */ `
59291
- const float GAMMA=2.2;const float INV_GAMMA=1./GAMMA;vec3 linearToSRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearToSRGB(const in vec4 color){return vec4(linearToSRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return pow(color,vec3(GAMMA));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
59292
- #if defined(X3D_LINEAR_OUTPUT)
59293
- vec3 toneMap(in vec3 color){
59294
- #if defined(X3D_COLORSPACE_SRGB)
59295
- color=sRGBToLinear(color);
59296
- #endif
59297
- return color;}
59298
- #else
59299
- #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
59300
- vec3 toneMapACES_Narkowicz(const in vec3 color){const float A=2.51;const float B=.03;const float C=2.43;const float D=.59;const float E=.14;return clamp((color*(A*color+B))/(color*(C*color+D)+E),0.,1.);}
59301
- #endif
59302
- #if defined(X3D_TONEMAP_ACES_HILL)||defined(X3D_TONEMAP_ACES_HILL_EXPOSURE_BOOST)
59303
- const mat3 ACESInputMat=mat3(.59719,.07600,.02840,.35458,.90834,.13383,.04823,.01566,.83777);const mat3 ACESOutputMat=mat3(1.60475,-.10208,-.00327,-.53108,1.10813,-.07276,-.07367,-.00605,1.07602);vec3 RRTAndODTFit(const in vec3 color){vec3 a=color*(color+.0245786)-.000090537;vec3 b=color*(.983729*color+.4329510)+.238081;return a/b;}vec3 toneMapACES_Hill(in vec3 color){color=ACESInputMat*color;color=RRTAndODTFit(color);color=ACESOutputMat*color;color=clamp(color,0.,1.);return color;}
59304
- #endif
59305
- #if defined(X3D_TONEMAP_KHR_PBR_NEUTRAL)
59306
- vec3 toneMap_KhronosPbrNeutral(in vec3 color){const float startCompression=.8-.04;const float desaturation=.15;float x=min(color.r,min(color.g,color.b));float offset=x<.08?x-6.25*x*x:.04;color-=offset;float peak=max(color.r,max(color.g,color.b));if(peak<startCompression)return color;const float d=1.-startCompression;float newPeak=1.-d*d/(peak+d-startCompression);color*=newPeak/peak;float g=1.-1./(desaturation*(peak-newPeak)+1.);return mix(color,newPeak*vec3(1),g);}
59307
- #endif
59308
- uniform float x3d_Exposure;vec3 toneMap(in vec3 color){color*=x3d_Exposure;
59309
- #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
59310
- color=toneMapACES_Narkowicz(color);
59311
- #endif
59312
- #if defined(X3D_TONEMAP_ACES_HILL)
59313
- color=toneMapACES_Hill(color);
59314
- #endif
59315
- #if defined(X3D_TONEMAP_ACES_HILL_EXPOSURE_BOOST)
59316
- color/=.6;color=toneMapACES_Hill(color);
59317
- #endif
59318
- #if defined(X3D_TONEMAP_KHR_PBR_NEUTRAL)
59319
- color=toneMap_KhronosPbrNeutral(color);
59320
- #endif
59321
- #if defined(X3D_COLORSPACE_LINEAR)
59322
- color=linearToSRGB(color);
59323
- #endif
59324
- return color;}
59325
- #endif
59326
- `
59327
- ;
59328
-
59329
- /* harmony default export */ const ToneMapping2_glsl = (x_ite_Namespace .add ("ToneMapping2.glsl", ToneMapping2_glsl_default_));
59330
59287
  ;// ./src/x_ite/Browser/Lighting/Distribution.js
59331
59288
  let Distribution_i = 0;
59332
59289
 
@@ -59344,12 +59301,11 @@ const Distribution_default_ = Distribution;
59344
59301
  ;// ./src/x_ite/Browser/Lighting/Filter2.fs.js
59345
59302
 
59346
59303
 
59347
-
59348
59304
  const Filter2_fs_default_ = /* glsl */ `#version 300 es
59349
59305
  precision highp float;precision highp int;precision highp samplerCube;
59350
- ${ToneMapping2_glsl ()}
59306
+ #include<ToneMapping>
59351
59307
  ${Object .entries (Lighting_Distribution) .map (([name, value]) => `#define X3D_${name} ${value}`) .join ("\n")}
59352
- const float M_PI=3.1415926535897932384626433832795;uniform samplerCube x3d_TextureEXT;uniform int x3d_TextureSizeEXT;uniform bool x3d_TextureLinearEXT;uniform int x3d_CurrentFaceEXT;uniform int x3d_DistributionEXT;uniform int x3d_SampleCountEXT;uniform float x3d_RoughnessEXT;uniform float x3d_LodBiasEXT;uniform float x3d_IntensityEXT;uniform vec3 x3d_FlipEXT;in vec2 texCoord;out vec4 x3d_FragColor;mat3 generateTBN(const in vec3 normal){vec3 bitangent=vec3(0.,1.,0.);float NdotUp=dot(normal,vec3(0.,1.,0.));float epsilon=.0000001;if(1.-abs(NdotUp)<=epsilon){if(NdotUp>0.)bitangent=vec3(0.,0.,1.);else bitangent=vec3(0.,0.,-1.);}vec3 tangent=normalize(cross(bitangent,normal));bitangent=cross(normal,tangent);return mat3(tangent,bitangent,normal);}struct MicrofacetDistributionSample{float pdf;float cosTheta;float sinTheta;float phi;};float radicalInverse_VdC(in uint bits){bits=(bits<<16u)|(bits>>16u);bits=((bits&0x55555555u)<<1u)|((bits&0xAAAAAAAAu)>>1u);bits=((bits&0x33333333u)<<2u)|((bits&0xCCCCCCCCu)>>2u);bits=((bits&0x0F0F0F0Fu)<<4u)|((bits&0xF0F0F0F0u)>>4u);bits=((bits&0x00FF00FFu)<<8u)|((bits&0xFF00FF00u)>>8u);return float(bits)*2.3283064365386963e-10;}vec2 hammersley2d(const in int i,const in int N){return vec2(float(i)/float(N),radicalInverse_VdC(uint(i)));}MicrofacetDistributionSample Lambertian(const in vec2 xi,const in float roughness){MicrofacetDistributionSample lambertian;lambertian.cosTheta=sqrt(1.-xi.y);lambertian.sinTheta=sqrt(xi.y);lambertian.phi=2.*M_PI*xi.x;lambertian.pdf=lambertian.cosTheta/M_PI;return lambertian;}float saturate(const in float v){return clamp(v,0.,1.);}float D_GGX(const in float NdotH,const in float roughness){float a=NdotH*roughness;float k=roughness/(1.-NdotH*NdotH+a*a);return k*k*(1./M_PI);}MicrofacetDistributionSample GGX(const in vec2 xi,const in float roughness){MicrofacetDistributionSample ggx;float alpha=roughness*roughness;ggx.cosTheta=saturate(sqrt((1.-xi.y)/(1.+(alpha*alpha-1.)*xi.y)));ggx.sinTheta=sqrt(1.-ggx.cosTheta*ggx.cosTheta);ggx.phi=2.*M_PI*xi.x;ggx.pdf=D_GGX(ggx.cosTheta,alpha);ggx.pdf/=4.;return ggx;}float D_Charlie(in float sheenRoughness,const in float NdotH){sheenRoughness=max(sheenRoughness,.000001);float invR=1./sheenRoughness;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return(2.+invR)*pow(sin2h,invR*.5)/(2.*M_PI);}MicrofacetDistributionSample Charlie(const in vec2 xi,const in float roughness){MicrofacetDistributionSample charlie;float alpha=roughness*roughness;charlie.sinTheta=pow(xi.y,alpha/(2.*alpha+1.));charlie.cosTheta=sqrt(1.-charlie.sinTheta*charlie.sinTheta);charlie.phi=2.*M_PI*xi.x;charlie.pdf=D_Charlie(alpha,charlie.cosTheta);charlie.pdf/=4.;return charlie;}vec4 getImportanceSample(const in int sampleIndex,const in vec3 N,const in float roughness){vec2 xi=hammersley2d(sampleIndex,x3d_SampleCountEXT);MicrofacetDistributionSample importanceSample;switch(x3d_DistributionEXT){case X3D_LAMBERTIAN:{importanceSample=Lambertian(xi,roughness);break;}case X3D_GGX:{importanceSample=GGX(xi,roughness);break;}case X3D_CHARLIE:{importanceSample=Charlie(xi,roughness);break;}}vec3 localSpaceDirection=normalize(vec3(importanceSample.sinTheta*cos(importanceSample.phi),importanceSample.sinTheta*sin(importanceSample.phi),importanceSample.cosTheta));mat3 TBN=generateTBN(N);vec3 direction=TBN*localSpaceDirection;return vec4(direction,importanceSample.pdf);}float computeLod(const in float pdf){float lod=.5*log2(6.*float(x3d_TextureSizeEXT)*float(x3d_TextureSizeEXT)/(float(x3d_SampleCountEXT)*pdf));return lod;}vec3 filterColor(const in vec3 N){vec3 color=vec3(0);float weight=0.;for(int i=0;i<x3d_SampleCountEXT;++i){vec4 importanceSample=getImportanceSample(i,N,x3d_RoughnessEXT);vec3 H=importanceSample.xyz;float pdf=importanceSample.w;float lod=computeLod(pdf);lod+=x3d_LodBiasEXT;switch(x3d_DistributionEXT){case X3D_LAMBERTIAN:{vec3 lambertian=textureLod(x3d_TextureEXT,H,lod).rgb;if(!x3d_TextureLinearEXT)lambertian=sRGBToLinear(lambertian);color+=lambertian;break;}case X3D_GGX:case X3D_CHARLIE:{vec3 V=N;vec3 L=normalize(reflect(-V,H));float NdotL=dot(N,L);if(NdotL>0.){if(x3d_RoughnessEXT==0.){lod=x3d_LodBiasEXT;}vec3 sampleColor=textureLod(x3d_TextureEXT,L,lod).rgb;if(!x3d_TextureLinearEXT)sampleColor=sRGBToLinear(sampleColor);color+=sampleColor*NdotL;weight+=NdotL;}break;}}}if(weight!=0.0f)color/=weight;else color/=float(x3d_SampleCountEXT);return color*x3d_IntensityEXT;}vec3 getNormal(const in int face,const in vec2 t){float x;float y;float z;switch(face){case 0:x=t.x;y=-t.y;z=1.;break;case 1:x=-t.x;y=-t.y;z=-1.;break;case 2:x=-1.;y=-t.y;z=t.x;break;case 3:x=1.;y=-t.y;z=-t.x;break;case 4:x=t.x;y=1.;z=t.y;break;case 5:x=t.x;y=-1.;z=-t.y;break;}return normalize(vec3(x,y,z))*x3d_FlipEXT;}void main(){vec3 normal=getNormal(x3d_CurrentFaceEXT,texCoord);x3d_FragColor=vec4(filterColor(normal),1.);}`
59308
+ const float M_PI=3.141592653589793;uniform samplerCube x3d_TextureEXT;uniform int x3d_TextureSizeEXT;uniform bool x3d_TextureLinearEXT;uniform int x3d_CurrentFaceEXT;uniform int x3d_DistributionEXT;uniform int x3d_SampleCountEXT;uniform float x3d_RoughnessEXT;uniform float x3d_LodBiasEXT;uniform float x3d_IntensityEXT;uniform vec3 x3d_FlipEXT;in vec2 texCoord;out vec4 x3d_FragColor;mat3 generateTBN(const in vec3 normal){vec3 bitangent=vec3(0.,1.,0.);float NdotUp=dot(normal,vec3(0.,1.,0.));float epsilon=.0000001;if(1.-abs(NdotUp)<=epsilon){if(NdotUp>0.)bitangent=vec3(0.,0.,1.);else bitangent=vec3(0.,0.,-1.);}vec3 tangent=normalize(cross(bitangent,normal));bitangent=cross(normal,tangent);return mat3(tangent,bitangent,normal);}struct MicrofacetDistributionSample{float pdf;float cosTheta;float sinTheta;float phi;};float radicalInverse_VdC(in uint bits){bits=(bits<<16u)|(bits>>16u);bits=((bits&0x55555555u)<<1u)|((bits&0xAAAAAAAAu)>>1u);bits=((bits&0x33333333u)<<2u)|((bits&0xCCCCCCCCu)>>2u);bits=((bits&0x0F0F0F0Fu)<<4u)|((bits&0xF0F0F0F0u)>>4u);bits=((bits&0x00FF00FFu)<<8u)|((bits&0xFF00FF00u)>>8u);return float(bits)*2.3283064365386963e-10;}vec2 hammersley2d(const in int i,const in int N){return vec2(float(i)/float(N),radicalInverse_VdC(uint(i)));}MicrofacetDistributionSample Lambertian(const in vec2 xi,const in float roughness){MicrofacetDistributionSample lambertian;lambertian.cosTheta=sqrt(1.-xi.y);lambertian.sinTheta=sqrt(xi.y);lambertian.phi=2.*M_PI*xi.x;lambertian.pdf=lambertian.cosTheta/M_PI;return lambertian;}float saturate(const in float v){return clamp(v,0.,1.);}float D_GGX(const in float NdotH,const in float roughness){float a=NdotH*roughness;float k=roughness/(1.-NdotH*NdotH+a*a);return k*k*(1./M_PI);}MicrofacetDistributionSample GGX(const in vec2 xi,const in float roughness){MicrofacetDistributionSample ggx;float alpha=roughness*roughness;ggx.cosTheta=saturate(sqrt((1.-xi.y)/(1.+(alpha*alpha-1.)*xi.y)));ggx.sinTheta=sqrt(1.-ggx.cosTheta*ggx.cosTheta);ggx.phi=2.*M_PI*xi.x;ggx.pdf=D_GGX(ggx.cosTheta,alpha);ggx.pdf/=4.;return ggx;}float D_Charlie(in float sheenRoughness,const in float NdotH){sheenRoughness=max(sheenRoughness,.000001);float invR=1./sheenRoughness;float cos2h=NdotH*NdotH;float sin2h=1.-cos2h;return(2.+invR)*pow(sin2h,invR*.5)/(2.*M_PI);}MicrofacetDistributionSample Charlie(const in vec2 xi,const in float roughness){MicrofacetDistributionSample charlie;float alpha=roughness*roughness;charlie.sinTheta=pow(xi.y,alpha/(2.*alpha+1.));charlie.cosTheta=sqrt(1.-charlie.sinTheta*charlie.sinTheta);charlie.phi=2.*M_PI*xi.x;charlie.pdf=D_Charlie(alpha,charlie.cosTheta);charlie.pdf/=4.;return charlie;}vec4 getImportanceSample(const in int sampleIndex,const in vec3 N,const in float roughness){vec2 xi=hammersley2d(sampleIndex,x3d_SampleCountEXT);MicrofacetDistributionSample importanceSample;switch(x3d_DistributionEXT){case X3D_LAMBERTIAN:{importanceSample=Lambertian(xi,roughness);break;}case X3D_GGX:{importanceSample=GGX(xi,roughness);break;}case X3D_CHARLIE:{importanceSample=Charlie(xi,roughness);break;}}vec3 localSpaceDirection=normalize(vec3(importanceSample.sinTheta*cos(importanceSample.phi),importanceSample.sinTheta*sin(importanceSample.phi),importanceSample.cosTheta));mat3 TBN=generateTBN(N);vec3 direction=TBN*localSpaceDirection;return vec4(direction,importanceSample.pdf);}float computeLod(const in float pdf){float lod=.5*log2(6.*float(x3d_TextureSizeEXT)*float(x3d_TextureSizeEXT)/(float(x3d_SampleCountEXT)*pdf));return lod;}vec3 filterColor(const in vec3 N){vec3 color=vec3(0);float weight=0.;for(int i=0;i<x3d_SampleCountEXT;++i){vec4 importanceSample=getImportanceSample(i,N,x3d_RoughnessEXT);vec3 H=importanceSample.xyz;float pdf=importanceSample.w;float lod=computeLod(pdf);lod+=x3d_LodBiasEXT;switch(x3d_DistributionEXT){case X3D_LAMBERTIAN:{vec3 lambertian=textureLod(x3d_TextureEXT,H,lod).rgb;if(!x3d_TextureLinearEXT)lambertian=sRGBToLinear(lambertian);color+=lambertian;break;}case X3D_GGX:case X3D_CHARLIE:{vec3 V=N;vec3 L=normalize(reflect(-V,H));float NdotL=dot(N,L);if(NdotL>0.){if(x3d_RoughnessEXT==0.){lod=x3d_LodBiasEXT;}vec3 sampleColor=textureLod(x3d_TextureEXT,L,lod).rgb;if(!x3d_TextureLinearEXT)sampleColor=sRGBToLinear(sampleColor);color+=sampleColor*NdotL;weight+=NdotL;}break;}}}if(weight!=0.)color/=weight;else color/=float(x3d_SampleCountEXT);return color*x3d_IntensityEXT;}vec3 getNormal(const in int face,const in vec2 t){float x;float y;float z;switch(face){case 0:x=t.x;y=-t.y;z=1.;break;case 1:x=-t.x;y=-t.y;z=-1.;break;case 2:x=-1.;y=-t.y;z=t.x;break;case 3:x=1.;y=-t.y;z=-t.x;break;case 4:x=t.x;y=1.;z=t.y;break;case 5:x=t.x;y=-1.;z=-t.y;break;}return normalize(vec3(x,y,z))*x3d_FlipEXT;}void main(){vec3 normal=getNormal(x3d_CurrentFaceEXT,texCoord);x3d_FragColor=vec4(filterColor(normal),1.);}`
59353
59309
  ;
59354
59310
 
59355
59311
  /* harmony default export */ const Filter2_fs = (x_ite_Namespace .add ("Filter2.fs", Filter2_fs_default_));
@@ -59402,7 +59358,6 @@ Object .assign (X3DLightingContext .prototype,
59402
59358
  texture = new Texturing_ImageTexture (this .getPrivateScene ()),
59403
59359
  textureProperties = new Texturing_TextureProperties (this .getPrivateScene ());
59404
59360
 
59405
- textureProperties ._generateMipMaps = false;
59406
59361
  textureProperties ._minificationFilter = "AVG_PIXEL";
59407
59362
  textureProperties ._magnificationFilter = "AVG_PIXEL";
59408
59363
  textureProperties ._boundaryModeS = "CLAMP_TO_BOUNDARY";
@@ -59469,7 +59424,7 @@ Object .assign (X3DLightingContext .prototype,
59469
59424
  ],
59470
59425
  });
59471
59426
  },
59472
- filterEnvironmentTexture ({ name, texture, distribution, sampleCount, roughness, flipX, cachedNode })
59427
+ filterEnvironmentTexture ({ name, texture, distribution, sampleCount, roughnesses, flipX, cachedNode })
59473
59428
  {
59474
59429
  // Render the texture.
59475
59430
 
@@ -59503,12 +59458,17 @@ Object .assign (X3DLightingContext .prototype,
59503
59458
  for (const target of filtered .getTargets ())
59504
59459
  gl .texImage2D (target, 0, gl .RGBA, size, size, 0, gl .RGBA, gl .UNSIGNED_BYTE, data);
59505
59460
 
59506
- if (roughness .length > 1)
59461
+ if (roughnesses .length > 1)
59507
59462
  {
59508
59463
  gl .generateMipmap (filtered .getTarget ());
59509
59464
  gl .texParameteri (filtered .getTarget (), gl .TEXTURE_MIN_FILTER, gl .LINEAR_MIPMAP_LINEAR);
59510
59465
  gl .texParameteri (filtered .getTarget (), gl .TEXTURE_MAG_FILTER, gl .LINEAR);
59511
59466
  }
59467
+ else
59468
+ {
59469
+ gl .texParameteri (filtered .getTarget (), gl .TEXTURE_MIN_FILTER, gl .LINEAR);
59470
+ gl .texParameteri (filtered .getTarget (), gl .TEXTURE_MAG_FILTER, gl .LINEAR);
59471
+ }
59512
59472
 
59513
59473
  // Setup defaults.
59514
59474
 
@@ -59532,20 +59492,19 @@ Object .assign (X3DLightingContext .prototype,
59532
59492
  gl .uniform1f (shaderNode .x3d_IntensityEXT, 1);
59533
59493
  gl .uniform3f (shaderNode .x3d_FlipEXT, flipX ? -1 : 1, 1, 1);
59534
59494
 
59535
- for (const [level, r] of roughness .entries ())
59495
+ for (const [level, roughness] of roughnesses .entries ())
59536
59496
  {
59537
59497
  const mipSize = size >> level;
59538
59498
 
59539
59499
  // console .log (level, mipSize, r, filtered .getLevels ());
59540
59500
 
59541
- // Setup mip level uniforms.
59542
-
59543
- gl .uniform1f (shaderNode .x3d_RoughnessEXT, r);
59544
-
59545
- // Generate images.
59501
+ // Setup values for each mip level.
59546
59502
 
59547
59503
  gl .viewport (0, 0, mipSize, mipSize);
59548
59504
  gl .scissor (0, 0, mipSize, mipSize);
59505
+ gl .uniform1f (shaderNode .x3d_RoughnessEXT, roughness);
59506
+
59507
+ // Generate images.
59549
59508
 
59550
59509
  for (const [face, target] of filtered .getTargets () .entries ())
59551
59510
  {
@@ -67119,6 +67078,47 @@ vec3 getPunctualRadianceTransmission(const in vec3 normal,const in vec3 view,con
67119
67078
  ;
67120
67079
 
67121
67080
  /* harmony default export */ const Punctual2_glsl = (x_ite_Namespace .add ("Punctual2.glsl", Punctual2_glsl_default_));
67081
+ ;// ./src/assets/shaders/webgl2/pbr/ToneMapping2.glsl.js
67082
+ const ToneMapping2_glsl_default_ = () => /* glsl */ `
67083
+ const float GAMMA=2.2;const float INV_GAMMA=1./GAMMA;vec3 linearToSRGB(const in vec3 color){return pow(color,vec3(INV_GAMMA));}vec4 linearToSRGB(const in vec4 color){return vec4(linearToSRGB(color.rgb),color.a);}vec3 sRGBToLinear(const in vec3 color){return pow(color,vec3(GAMMA));}vec4 sRGBToLinear(const in vec4 color){return vec4(sRGBToLinear(color.rgb),color.a);}
67084
+ #if defined(X3D_LINEAR_OUTPUT)
67085
+ vec3 toneMap(in vec3 color){
67086
+ #if defined(X3D_COLORSPACE_SRGB)
67087
+ color=sRGBToLinear(color);
67088
+ #endif
67089
+ return color;}
67090
+ #else
67091
+ #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
67092
+ vec3 toneMapACES_Narkowicz(const in vec3 color){const float A=2.51;const float B=.03;const float C=2.43;const float D=.59;const float E=.14;return clamp((color*(A*color+B))/(color*(C*color+D)+E),0.,1.);}
67093
+ #endif
67094
+ #if defined(X3D_TONEMAP_ACES_HILL)||defined(X3D_TONEMAP_ACES_HILL_EXPOSURE_BOOST)
67095
+ const mat3 ACESInputMat=mat3(.59719,.07600,.02840,.35458,.90834,.13383,.04823,.01566,.83777);const mat3 ACESOutputMat=mat3(1.60475,-.10208,-.00327,-.53108,1.10813,-.07276,-.07367,-.00605,1.07602);vec3 RRTAndODTFit(const in vec3 color){vec3 a=color*(color+.0245786)-.000090537;vec3 b=color*(.983729*color+.4329510)+.238081;return a/b;}vec3 toneMapACES_Hill(in vec3 color){color=ACESInputMat*color;color=RRTAndODTFit(color);color=ACESOutputMat*color;color=clamp(color,0.,1.);return color;}
67096
+ #endif
67097
+ #if defined(X3D_TONEMAP_KHR_PBR_NEUTRAL)
67098
+ vec3 toneMap_KhronosPbrNeutral(in vec3 color){const float startCompression=.8-.04;const float desaturation=.15;float x=min(color.r,min(color.g,color.b));float offset=x<.08?x-6.25*x*x:.04;color-=offset;float peak=max(color.r,max(color.g,color.b));if(peak<startCompression)return color;const float d=1.-startCompression;float newPeak=1.-d*d/(peak+d-startCompression);color*=newPeak/peak;float g=1.-1./(desaturation*(peak-newPeak)+1.);return mix(color,newPeak*vec3(1),g);}
67099
+ #endif
67100
+ uniform float x3d_Exposure;vec3 toneMap(in vec3 color){color*=x3d_Exposure;
67101
+ #if defined(X3D_TONEMAP_ACES_NARKOWICZ)
67102
+ color=toneMapACES_Narkowicz(color);
67103
+ #endif
67104
+ #if defined(X3D_TONEMAP_ACES_HILL)
67105
+ color=toneMapACES_Hill(color);
67106
+ #endif
67107
+ #if defined(X3D_TONEMAP_ACES_HILL_EXPOSURE_BOOST)
67108
+ color/=.6;color=toneMapACES_Hill(color);
67109
+ #endif
67110
+ #if defined(X3D_TONEMAP_KHR_PBR_NEUTRAL)
67111
+ color=toneMap_KhronosPbrNeutral(color);
67112
+ #endif
67113
+ #if defined(X3D_COLORSPACE_LINEAR)
67114
+ color=linearToSRGB(color);
67115
+ #endif
67116
+ return color;}
67117
+ #endif
67118
+ `
67119
+ ;
67120
+
67121
+ /* harmony default export */ const ToneMapping2_glsl = (x_ite_Namespace .add ("ToneMapping2.glsl", ToneMapping2_glsl_default_));
67122
67122
  ;// ./src/assets/shaders/webgl2/Default2.vs.js
67123
67123
  const Default2_vs_default_ = () => /* glsl */ `#version 300 es
67124
67124
  precision highp int;precision highp float;precision highp sampler2D;precision highp sampler3D;precision highp samplerCube;
@@ -71295,7 +71295,6 @@ Object .assign (X3DShapeContext .prototype,
71295
71295
 
71296
71296
  lineFillTextureProperties ._minificationFilter = "NEAREST_PIXEL";
71297
71297
  lineFillTextureProperties ._magnificationFilter = "NEAREST_PIXEL";
71298
- lineFillTextureProperties ._textureCompression = "DEFAULT";
71299
71298
 
71300
71299
  lineFillTextureProperties .setup ();
71301
71300
 
@@ -71326,8 +71325,7 @@ Object .assign (X3DShapeContext .prototype,
71326
71325
  ],
71327
71326
  [ ],
71328
71327
  [ ],
71329
- ]
71330
- [pass];
71328
+ ] [pass];
71331
71329
 
71332
71330
  const transformFeedbackVaryings = [
71333
71331
  [
@@ -71345,8 +71343,7 @@ Object .assign (X3DShapeContext .prototype,
71345
71343
  "instanceNormalMatrix1", "tangent1", "normal1",
71346
71344
  "instanceNormalMatrix2", "tangent2", "normal2",
71347
71345
  ],
71348
- ]
71349
- [pass];
71346
+ ] [pass];
71350
71347
 
71351
71348
  return this .createShader ({
71352
71349
  name: `LineTransform${instanced ? "Instanced" : ""}`,
@@ -72139,8 +72136,8 @@ Object .assign (X3DTexturingContext .prototype,
72139
72136
  {
72140
72137
  case TextureQuality .LOW:
72141
72138
  {
72142
- textureProperties ._magnificationFilter = "AVG_PIXEL";
72143
- textureProperties ._minificationFilter = "AVG_PIXEL";
72139
+ textureProperties ._magnificationFilter = "FASTEST";
72140
+ textureProperties ._minificationFilter = "FASTEST";
72144
72141
  textureProperties ._textureCompression = "FASTEST";
72145
72142
 
72146
72143
  gl .hint (gl .GENERATE_MIPMAP_HINT, gl .FASTEST);
@@ -72149,7 +72146,7 @@ Object .assign (X3DTexturingContext .prototype,
72149
72146
  case TextureQuality .MEDIUM:
72150
72147
  {
72151
72148
  textureProperties ._magnificationFilter = "NICEST";
72152
- textureProperties ._minificationFilter = "NEAREST_PIXEL_AVG_MIPMAP";
72149
+ textureProperties ._minificationFilter = "AVG_PIXEL_NEAREST_MIPMAP";
72153
72150
  textureProperties ._textureCompression = "NICEST";
72154
72151
 
72155
72152
  gl .hint (gl .GENERATE_MIPMAP_HINT, gl .FASTEST);
@@ -81483,7 +81480,7 @@ Object .assign (Object .setPrototypeOf (EnvironmentLight .prototype, Lighting_X3
81483
81480
  texture: this .specularTexture,
81484
81481
  distribution: Lighting_Distribution .LAMBERTIAN,
81485
81482
  sampleCount: 2048,
81486
- roughness: [0],
81483
+ roughnesses: [0],
81487
81484
  flipX: !this .traverseSpecular,
81488
81485
  cachedNode: this .generatedDiffuseTexture,
81489
81486
  });
@@ -81502,15 +81499,15 @@ Object .assign (Object .setPrototypeOf (EnvironmentLight .prototype, Lighting_X3
81502
81499
  console .info ("Generating specular texture for EnvironmentLight.");
81503
81500
 
81504
81501
  const
81505
- levels = this .specularTexture .getLevels (),
81506
- roughness = Array .from ({ length: levels + 1 }, (_, i) => i / (levels || 1));
81502
+ levels = this .specularTexture .getLevels (),
81503
+ roughnesses = Array .from ({ length: levels + 1 }, (_, i) => i / (levels || 1));
81507
81504
 
81508
81505
  return browser .filterEnvironmentTexture ({
81509
81506
  name: "GeneratedSpecularTexture",
81510
81507
  texture: this .specularTexture,
81511
81508
  distribution: Lighting_Distribution .GGX,
81512
81509
  sampleCount: 1024,
81513
- roughness,
81510
+ roughnesses,
81514
81511
  flipX: !this .traverseSpecular,
81515
81512
  cachedNode: this .generatedSpecularTexture,
81516
81513
  });
@@ -81529,15 +81526,15 @@ Object .assign (Object .setPrototypeOf (EnvironmentLight .prototype, Lighting_X3
81529
81526
  console .info ("Generating sheen texture for EnvironmentLight.");
81530
81527
 
81531
81528
  const
81532
- levels = this .specularTexture .getLevels (),
81533
- roughness = Array .from ({ length: levels + 1 }, (_, i) => Math .max (i / (levels || 1), 2, 0.000001));
81529
+ levels = this .specularTexture .getLevels (),
81530
+ roughnesses = Array .from ({ length: levels + 1 }, (_, i) => Math .max (i / (levels || 1), 2, 0.000001));
81534
81531
 
81535
81532
  return browser .filterEnvironmentTexture ({
81536
81533
  name: "GeneratedSheenTexture",
81537
81534
  texture: this .specularTexture,
81538
81535
  distribution: Lighting_Distribution .CHARLIE,
81539
81536
  sampleCount: 64,
81540
- roughness: roughness,
81537
+ roughnesses,
81541
81538
  flipX: !this .traverseSpecular,
81542
81539
  cachedNode: this .generatedSheenTexture,
81543
81540
  });
@@ -90956,8 +90953,8 @@ const PNGMedia_default_ = PNGMedia;
90956
90953
 
90957
90954
  /* harmony default export */ const Texturing_PNGMedia = (x_ite_Namespace .add ("PNGMedia", PNGMedia_default_));
90958
90955
  ;// ./src/x_ite/Components/Texturing/MovieTexture.js
90959
- /* provided dependency */ var SuperGif = __webpack_require__(521);
90960
- /* provided dependency */ var APNG = __webpack_require__(939);
90956
+ /* provided dependency */ var SuperGif = __webpack_require__(998);
90957
+ /* provided dependency */ var APNG = __webpack_require__(844);
90961
90958
 
90962
90959
 
90963
90960
 
@@ -93290,7 +93287,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
93290
93287
  console .log (string);
93291
93288
 
93292
93289
  for (const element of this [_console])
93293
- element .append (document .createTextNode (string));
93290
+ element .append (string);
93294
93291
  },
93295
93292
  println (... args)
93296
93293
  {
@@ -93299,7 +93296,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
93299
93296
  console .log (string);
93300
93297
 
93301
93298
  for (const element of this [_console])
93302
- element .append (document .createTextNode (`${string}\n`));
93299
+ element .append (`${string}\n`);
93303
93300
  },
93304
93301
  toVRMLStream (generator)
93305
93302
  {
@@ -93662,7 +93659,7 @@ const QuickSort_default_ = QuickSort;
93662
93659
 
93663
93660
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
93664
93661
  ;// ./src/lib/libtess.js
93665
- /* provided dependency */ var libtess_libtess = __webpack_require__(159);
93662
+ /* provided dependency */ var libtess_libtess = __webpack_require__(728);
93666
93663
  const libtess_default_ = libtess_libtess;
93667
93664
  ;
93668
93665