x_ite 8.0.0 → 8.3.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.
- package/.github/workflows/pages-deploy.yml +64 -0
- package/.gitmodules +3 -0
- package/.vscode/settings.json +3 -2
- package/Makefile +9 -4
- package/README.md +6 -6
- package/build/bin/version.pl +3 -11
- package/dist/LICENSE.md +0 -2
- package/dist/assets/components/Annotation.js +55 -28
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +55 -28
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +197 -38
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +50 -26
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +61 -28
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +96 -48
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +186 -193
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +92 -53
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +35 -17
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +77 -45
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +209 -96
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +125 -62
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +105 -70
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/ProjectiveTextureMapping.js +69 -46
- package/dist/assets/components/ProjectiveTextureMapping.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +125 -63
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +56 -38
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +16857 -0
- package/dist/assets/components/Text.min.js +1 -0
- package/dist/assets/components/Texturing3D.js +114 -77
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +126 -60
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +21 -12
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +17800 -31195
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/docs/Gemfile +11 -33
- package/docs/Gemfile.lock +53 -59
- package/docs/LICENSE +21 -0
- package/docs/README.md +46 -0
- package/docs/_config.yml +320 -127
- package/docs/_data/assets/cross_origin.yml +62 -0
- package/docs/_data/assets/self_host.yml +51 -0
- package/docs/_data/contact.yml +30 -0
- package/docs/_data/locales/bg-BG.yml +83 -0
- package/docs/_data/locales/de-DE.yml +82 -0
- package/docs/_data/locales/en.yml +93 -0
- package/docs/_data/locales/es-ES.yml +79 -0
- package/docs/_data/locales/fr-FR.yml +79 -0
- package/docs/_data/locales/hu-HU.yml +81 -0
- package/docs/_data/locales/id-ID.yml +79 -0
- package/docs/_data/locales/ko-KR.yml +86 -0
- package/docs/_data/locales/my-MM.yml +79 -0
- package/docs/_data/locales/pt-BR.yml +79 -0
- package/docs/_data/locales/ru-RU.yml +79 -0
- package/docs/_data/locales/tr-TR.yml +79 -0
- package/docs/_data/locales/uk-UA.yml +79 -0
- package/docs/_data/locales/vi-VN.yml +77 -0
- package/docs/_data/locales/zh-CN.yml +85 -0
- package/docs/_data/share.yml +27 -0
- package/docs/_includes/nav.html +19 -0
- package/docs/_includes/scripts.html +15 -0
- package/docs/_layouts/compress.html +11 -0
- package/docs/_layouts/redirect-page.html +6 -0
- package/docs/_layouts/wide.html +52 -0
- package/docs/_layouts/wrap.html +4 -0
- package/docs/_layouts/x_ite.html +8 -0
- package/docs/_plugins/no_date.rb +11 -0
- package/docs/_plugins/posts-lastmod-hook.rb +14 -0
- package/docs/{Accessing-the-External-Browser.md → _posts/accessing-the-external-browser.md} +26 -25
- package/docs/_posts/browser-support.md +53 -0
- package/docs/{Custom-Shaders.md → _posts/custom-shaders.md} +18 -14
- package/docs/{DOM-Integration.md → _posts/dom-integration.md} +29 -22
- package/docs/{Features.md → _posts/features.md} +11 -12
- package/docs/{index.md → _posts/getting-started.md} +203 -245
- package/docs/{Glossary.md → _posts/glossary.md} +5 -6
- package/docs/{How-To-Configure-Your-Web-Server.md → _posts/how-to-configure-your-web-server.md} +5 -6
- package/docs/{reference/Browser-Services.md → _posts/reference/browser-services.md} +8 -9
- package/docs/{reference/Constants-Services.md → _posts/reference/constants-services.md} +14 -15
- package/docs/{reference/ECMAScript-Object-and-Function-Definitions.md → _posts/reference/ecmascript-object-and-function-definitions.md} +14 -15
- package/docs/_posts/reference/field-services-and-objects.md +1127 -0
- package/docs/{reference/Prototype-Services.md → _posts/reference/prototype-services.md} +8 -14
- package/docs/{reference/Route-Services.md → _posts/reference/route-services.md} +6 -10
- package/docs/{reference/Scene-Services.md → _posts/reference/scene-services.md} +11 -21
- package/docs/{reference/Script-Node-Authoring-Interface.md → _posts/reference/script-node-authoring-interface.md} +10 -11
- package/docs/_posts/report-a-bug.md +15 -0
- package/docs/_posts/setup-a-localhost-server.md +42 -0
- package/docs/_posts/supported-nodes.md +377 -0
- package/docs/{tutorials/Adding-backgrounds.md → _posts/tutorials/adding-backgrounds.md} +13 -14
- package/docs/{tutorials/Adding-fog.md → _posts/tutorials/adding-fog.md} +6 -7
- package/docs/{tutorials/Adding-sound.md → _posts/tutorials/adding-sound.md} +27 -26
- package/docs/{tutorials/Animating-transforms.md → _posts/tutorials/animating-transforms.md} +36 -37
- package/docs/{tutorials/Basic-Nodes.md → _posts/tutorials/basic-nodes.md} +38 -49
- package/docs/{tutorials/Building-a-X3D-world.md → _posts/tutorials/building-a-x3d-world.md} +16 -16
- package/docs/{tutorials/Building-elevation-grids.md → _posts/tutorials/building-elevation-grids.md} +15 -14
- package/docs/{tutorials/Building-extruded-shapes.md → _posts/tutorials/building-extruded-shapes.md} +11 -12
- package/docs/{tutorials/Building-primitive-shapes.md → _posts/tutorials/building-primitive-shapes.md} +29 -28
- package/docs/{tutorials/Building-shapes-out-of-points,-lines,-and-faces.md → _posts/tutorials/building-shapes-out-of-points-lines-and-faces.md} +25 -27
- package/docs/{tutorials/Controlling-appearance-with-materials.md → _posts/tutorials/controlling-appearance-with-materials.md} +20 -19
- package/docs/{tutorials/Controlling-color-on-coordinate-based-geometry.md → _posts/tutorials/controlling-color-on-coordinate-based-geometry.md} +15 -16
- package/docs/{tutorials/Controlling-detail.md → _posts/tutorials/controlling-detail.md} +12 -11
- package/docs/{tutorials/Controlling-how-textures-are-mapped.md → _posts/tutorials/controlling-how-textures-are-mapped.md} +11 -12
- package/docs/{tutorials/Controlling-navigation.md → _posts/tutorials/controlling-navigation.md} +7 -8
- package/docs/{tutorials/Controlling-shading-on-coordinate-based-geometry.md → _posts/tutorials/controlling-shading-on-coordinate-based-geometry.md} +19 -20
- package/docs/{tutorials/Controlling-the-viewpoint.md → _posts/tutorials/controlling-the-viewpoint.md} +7 -8
- package/docs/{tutorials/Creating-new-node-types.md → _posts/tutorials/creating-new-node-types.md} +8 -9
- package/docs/{tutorials/Grouping-nodes.md → _posts/tutorials/grouping-nodes.md} +17 -18
- package/docs/{tutorials/Hello,-World!.md → _posts/tutorials/hello-world.md} +16 -28
- package/docs/{tutorials/Improving-Performance.md → _posts/tutorials/improving-performance.md} +7 -11
- package/docs/{tutorials/Increasing-Rendering-Speed.md → _posts/tutorials/increasing-rendering-speed.md} +5 -6
- package/docs/{tutorials/Introducing-animation.md → _posts/tutorials/introducing-animation.md} +14 -15
- package/docs/{tutorials/Introducing-script-use.md → _posts/tutorials/introducing-script-use.md} +7 -8
- package/docs/{tutorials/Introducing-X3D.md → _posts/tutorials/introducing-x3d.md} +7 -7
- package/docs/{tutorials/Lighting-your-world.md → _posts/tutorials/lighting-your-world.md} +8 -9
- package/docs/{tutorials/Mapping-textures.md → _posts/tutorials/mapping-textures.md} +11 -12
- package/docs/{tutorials/Naming-nodes.md → _posts/tutorials/naming-nodes.md} +9 -8
- package/docs/_posts/tutorials/overview.md +83 -0
- package/docs/{tutorials/Providing-information-about-your-world.md → _posts/tutorials/providing-information-about-your-world.md} +6 -7
- package/docs/{tutorials/Sensing-the-viewer.md → _posts/tutorials/sensing-the-viewer.md} +19 -20
- package/docs/{tutorials/Sensing-viewer-actions.md → _posts/tutorials/sensing-viewer-actions.md} +14 -15
- package/docs/{tutorials/Transforming-Shapes.md → _posts/tutorials/transforming-shapes.md} +8 -9
- package/docs/{tutorials/Writing-program-scripts-with-ECMAScript.md → _posts/tutorials/writing-program-scripts-with-ecmascript.md} +15 -15
- package/docs/{What's-New.md → _posts/what's-new.md} +152 -530
- package/docs/_tabs/imprint.md +52 -0
- package/docs/_tabs/laboratory.md +14 -0
- package/docs/_tabs/playground.html +246 -0
- package/docs/_tabs/reference.md +7 -0
- package/docs/_tabs/tags.md +5 -0
- package/docs/_tabs/tutorials.md +7 -0
- package/docs/assets/css/style.scss +194 -0
- package/docs/assets/img/favicons/android-chrome-192x192.png +0 -0
- package/docs/assets/img/favicons/android-chrome-512x512.png +0 -0
- package/docs/assets/img/favicons/apple-touch-icon.png +0 -0
- package/docs/assets/img/favicons/favicon-16x16.png +0 -0
- package/docs/assets/img/favicons/favicon-32x32.png +0 -0
- package/docs/assets/img/favicons/favicon.ico +0 -0
- package/docs/assets/img/favicons/mstile-150x150.png +0 -0
- package/docs/assets/img/favicons/safari-pinned-tab.svg +71 -0
- package/docs/assets/{images → img}/logo.png +0 -0
- package/docs/assets/js/example.js +34 -0
- package/docs/laboratory/3d-l-system-generator.html +169 -0
- package/docs/laboratory/online-dicom-and-nrrd-file-viewer.html +72 -0
- package/docs/laboratory/real-time-earth-quake-information.html +50 -0
- package/docs/laboratory/x3d-visual-blend-mode-editor.html +227 -0
- package/package.json +4 -4
- package/src/LICENSE.txt +1 -1
- package/src/assets/components/Annotation.js +1 -1
- package/src/assets/components/CADGeometry.js +1 -1
- package/src/assets/components/CubeMapTexturing.js +1 -1
- package/src/assets/components/DIS.js +1 -1
- package/src/assets/components/EventUtilities.js +1 -1
- package/src/assets/components/Geometry2D.js +1 -1
- package/src/assets/components/Geospatial.js +1 -1
- package/src/assets/components/HAnim.js +1 -1
- package/src/assets/components/KeyDeviceSensor.js +1 -1
- package/src/assets/components/Layout.js +1 -1
- package/src/assets/components/NURBS.js +1 -1
- package/src/assets/components/ParticleSystems.js +1 -1
- package/src/assets/components/Picking.js +1 -1
- package/src/assets/components/ProjectiveTextureMapping.js +6 -6
- package/src/assets/components/RigidBodyPhysics.js +1 -6
- package/src/assets/components/Scripting.js +1 -1
- package/src/{x_ite/Components → assets/components}/Text.js +19 -21
- package/src/assets/components/Texturing3D.js +1 -1
- package/src/assets/components/VolumeRendering.js +1 -1
- package/src/assets/components/X_ITE.js +1 -1
- package/src/assets/shaders/Types.glsl.js +1 -1
- package/src/assets/shaders/webgl1/include/Fragment.glsl.js +1 -1
- package/src/assets/shaders/webgl1/include/PointSize.glsl.js +6 -6
- package/src/assets/shaders/webgl1/include/Vertex.glsl.js +4 -4
- package/src/assets/shaders/webgl2/LineTransform.vs.js +11 -11
- package/src/assets/shaders/webgl2/include/Fragment.glsl.js +1 -1
- package/src/assets/shaders/webgl2/include/PointSize.glsl.js +6 -6
- package/src/assets/shaders/webgl2/include/Vertex.glsl.js +4 -4
- package/src/bookmarks.js +1 -1
- package/src/examples.js +3 -3
- package/src/lib/ammojs/AmmoClass.js +1 -1
- package/src/lib/jquery.js +1 -1
- package/src/locale/gettext.js +1 -1
- package/src/shim.js +1 -2
- package/src/standard/Geospatial/Geodetic.js +1 -1
- package/src/standard/Geospatial/ReferenceEllipsoids.js +3 -3
- package/src/standard/Geospatial/UniversalTransverseMercator.js +1 -1
- package/src/standard/Math/Algorithm.js +55 -45
- package/src/standard/Math/Algorithms/Bezier.js +1 -1
- package/src/standard/Math/Algorithms/MergeSort.js +1 -1
- package/src/standard/Math/Algorithms/PartialSort.js +1 -1
- package/src/standard/Math/Algorithms/QuickSort.js +1 -1
- package/src/standard/Math/Algorithms/SAT.js +2 -2
- package/src/standard/Math/Algorithms/eigen_decomposition.js +5 -3
- package/src/standard/Math/Geometry/Box2.js +1 -1
- package/src/standard/Math/Geometry/Box3.js +1 -1
- package/src/standard/Math/Geometry/Camera.js +4 -2
- package/src/standard/Math/Geometry/Cylinder3.js +1 -1
- package/src/standard/Math/Geometry/Line2.js +1 -1
- package/src/standard/Math/Geometry/Line3.js +1 -1
- package/src/standard/Math/Geometry/Plane3.js +1 -1
- package/src/standard/Math/Geometry/Sphere3.js +1 -1
- package/src/standard/Math/Geometry/Spheroid3.js +1 -1
- package/src/standard/Math/Geometry/Triangle2.js +4 -2
- package/src/standard/Math/Geometry/Triangle3.js +4 -2
- package/src/standard/Math/Geometry/ViewVolume.js +1 -1
- package/src/standard/Math/Numbers/Color3.js +3 -1
- package/src/standard/Math/Numbers/Color4.js +4 -1
- package/src/standard/Math/Numbers/Complex.js +1 -1
- package/src/standard/Math/Numbers/Matrix2.js +1 -1
- package/src/standard/Math/Numbers/Matrix3.js +1 -1
- package/src/standard/Math/Numbers/Matrix4.js +1 -1
- package/src/standard/Math/Numbers/Quaternion.js +1 -1
- package/src/standard/Math/Numbers/Rotation4.js +1 -1
- package/src/standard/Math/Numbers/Vector2.js +1 -1
- package/src/standard/Math/Numbers/Vector3.js +1 -1
- package/src/standard/Math/Numbers/Vector4.js +1 -1
- package/src/standard/Math/Utility/BVH.js +1 -1
- package/src/standard/Math/Utility/MatrixStack.js +1 -1
- package/src/standard/Networking/BinaryTransport.js +5 -3
- package/src/standard/Time/MicroTime.js +1 -1
- package/src/standard/Utility/BitSet.js +1 -1
- package/src/standard/Utility/DataStorage.js +1 -1
- package/src/standard/Utility/MapUtilities.js +1 -1
- package/src/standard/Utility/ObjectCache.js +5 -3
- package/src/standard/Utility/Shuffle.js +5 -3
- package/src/tests.js +3 -0
- package/src/x_ite/Base/Events.js +4 -2
- package/src/x_ite/Base/FieldArray.js +1 -1
- package/src/x_ite/Base/FieldDefinitionArray.js +1 -1
- package/src/x_ite/Base/X3DArrayField.js +8 -4
- package/src/x_ite/Base/X3DBaseNode.js +1 -1
- package/src/x_ite/Base/X3DCast.js +5 -3
- package/src/x_ite/Base/X3DChildObject.js +1 -1
- package/src/x_ite/Base/X3DConstants.js +1 -1
- package/src/x_ite/Base/X3DEventObject.js +1 -1
- package/src/x_ite/Base/X3DField.js +2 -13
- package/src/x_ite/Base/X3DFieldDefinition.js +1 -1
- package/src/x_ite/Base/X3DInfoArray.js +1 -1
- package/src/x_ite/Base/X3DObject.js +1 -1
- package/src/x_ite/Base/X3DObjectArrayField.js +1 -1
- package/src/x_ite/Base/X3DTypedArrayField.js +59 -33
- package/src/x_ite/Browser/Core/BrowserOptions.js +22 -30
- package/src/x_ite/Browser/Core/BrowserProperties.js +1 -1
- package/src/x_ite/Browser/Core/BrowserTimings.js +1 -1
- package/src/x_ite/Browser/Core/Context.js +1 -1
- package/src/x_ite/Browser/Core/ContextMenu.js +1 -1
- package/src/x_ite/Browser/Core/Notification.js +1 -1
- package/src/x_ite/Browser/Core/PrimitiveQuality.js +1 -1
- package/src/x_ite/Browser/Core/RenderingProperties.js +1 -1
- package/src/x_ite/Browser/Core/Shading.js +1 -1
- package/src/x_ite/Browser/Core/TextureQuality.js +1 -1
- package/src/x_ite/Browser/Core/X3DCoreContext.js +11 -8
- package/src/x_ite/Browser/DOMIntegration.js +25 -26
- package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +1 -1
- package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +5 -3
- package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +5 -3
- package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +1 -1
- package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +1 -1
- package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +1 -1
- package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +1 -1
- package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +1 -1
- package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +1 -1
- package/src/x_ite/Browser/Geometry3D/BoxOptions.js +1 -1
- package/src/x_ite/Browser/Geometry3D/ConeOptions.js +1 -1
- package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +1 -1
- package/src/x_ite/Browser/Geometry3D/IcoSphere.js +1 -1
- package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +1 -1
- package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +1 -1
- package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +1 -1
- package/src/x_ite/Browser/Geospatial/Geocentric.js +1 -2
- package/src/x_ite/Browser/Geospatial/Geospatial.js +1 -1
- package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +1 -1
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +1 -1
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +1 -1
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator2.js +4 -2
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator3.js +4 -2
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +5 -3
- package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +1 -1
- package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +1 -1
- package/src/x_ite/Browser/Layering/X3DLayeringContext.js +1 -1
- package/src/x_ite/Browser/Layout/ScreenText.js +1 -1
- package/src/x_ite/Browser/Layout/X3DLayoutContext.js +1 -1
- package/src/x_ite/Browser/Legacy.js +64 -0
- package/src/x_ite/Browser/Lighting/X3DLightingContext.js +1 -1
- package/src/x_ite/Browser/NURBS/NURBS.js +1 -1
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +6 -39
- package/src/x_ite/Browser/Navigation/FlyViewer.js +1 -1
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +1 -1
- package/src/x_ite/Browser/Navigation/NoneViewer.js +1 -1
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +1 -4
- package/src/x_ite/Browser/Navigation/WalkViewer.js +1 -1
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +1 -1
- package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +3 -2
- package/src/x_ite/Browser/Navigation/X3DViewer.js +3 -3
- package/src/x_ite/Browser/Networking/Features.js +52 -0
- package/src/x_ite/Browser/Networking/URLs.js +11 -12
- package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +9 -22
- package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +1 -1
- package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +1 -1
- package/src/x_ite/Browser/Picking/IntersectionType.js +1 -1
- package/src/x_ite/Browser/Picking/MatchCriterion.js +1 -1
- package/src/x_ite/Browser/Picking/SortOrder.js +1 -1
- package/src/x_ite/Browser/Picking/VolumePicker.js +2 -4
- package/src/x_ite/Browser/Picking/X3DPickingContext.js +1 -1
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +1 -1
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +1 -1
- package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +1 -1
- package/src/x_ite/Browser/Rendering/GeometryContext.js +1 -1
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +1 -1
- package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +1 -1
- package/src/x_ite/Browser/Scripting/X3DScriptingContext.js +1 -1
- package/src/x_ite/Browser/Scripting/evaluate.js +5 -3
- package/src/x_ite/Browser/Shaders/ShaderCompiler.js +1 -1
- package/src/x_ite/Browser/Shaders/ShaderSource.js +5 -5
- package/src/x_ite/Browser/Shaders/Shaders.js +1 -1
- package/src/x_ite/Browser/Shaders/X3DShadersContext.js +1 -1
- package/src/x_ite/Browser/Shape/AlphaMode.js +1 -1
- package/src/x_ite/Browser/Shape/X3DShapeContext.js +4 -4
- package/src/x_ite/Browser/Sound/X3DSoundContext.js +1 -1
- package/src/x_ite/Browser/Text/PolygonText.js +1 -1
- package/src/x_ite/Browser/Text/TextAlignment.js +1 -1
- package/src/x_ite/Browser/Text/X3DTextContext.js +1 -1
- package/src/x_ite/Browser/Text/X3DTextGeometry.js +1 -1
- package/src/x_ite/Browser/Texturing/FunctionType.js +1 -1
- package/src/x_ite/Browser/Texturing/ModeType.js +1 -1
- package/src/x_ite/Browser/Texturing/SourceType.js +1 -1
- package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +1 -1
- package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +1 -1
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +3 -3
- package/src/x_ite/Browser/Texturing3D/NRRDParser.js +2 -2
- package/src/x_ite/Browser/Time/X3DTimeContext.js +1 -1
- package/src/x_ite/Browser/VERSION.js +2 -2
- package/src/x_ite/Browser/VolumeRendering/VolumeMaterial.js +1 -1
- package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +1 -1
- package/src/x_ite/Browser/X3DBrowser.js +43 -52
- package/src/x_ite/Browser/X3DBrowserContext.js +1 -5
- package/src/x_ite/Components/Annotation/AnnotationLayer.js +1 -1
- package/src/x_ite/Components/Annotation/AnnotationTarget.js +1 -1
- package/src/x_ite/Components/Annotation/GroupAnnotation.js +1 -1
- package/src/x_ite/Components/Annotation/IconAnnotation.js +1 -1
- package/src/x_ite/Components/Annotation/TextAnnotation.js +1 -1
- package/src/x_ite/Components/Annotation/URLAnnotation.js +1 -1
- package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +1 -1
- package/src/x_ite/Components/CADGeometry/CADAssembly.js +1 -1
- package/src/x_ite/Components/CADGeometry/CADFace.js +1 -1
- package/src/x_ite/Components/CADGeometry/CADLayer.js +1 -1
- package/src/x_ite/Components/CADGeometry/CADPart.js +1 -1
- package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +1 -1
- package/src/x_ite/Components/CADGeometry/QuadSet.js +1 -1
- package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +1 -1
- package/src/x_ite/Components/Core/MetadataBoolean.js +1 -1
- package/src/x_ite/Components/Core/MetadataDouble.js +1 -1
- package/src/x_ite/Components/Core/MetadataFloat.js +1 -1
- package/src/x_ite/Components/Core/MetadataInteger.js +1 -1
- package/src/x_ite/Components/Core/MetadataSet.js +1 -1
- package/src/x_ite/Components/Core/MetadataString.js +1 -1
- package/src/x_ite/Components/Core/WorldInfo.js +1 -1
- package/src/x_ite/Components/Core/X3DBindableNode.js +1 -1
- package/src/x_ite/Components/Core/X3DChildNode.js +1 -1
- package/src/x_ite/Components/Core/X3DInfoNode.js +1 -1
- package/src/x_ite/Components/Core/X3DMetadataObject.js +1 -1
- package/src/x_ite/Components/Core/X3DNode.js +5 -5
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +2 -2
- package/src/x_ite/Components/Core/X3DSensorNode.js +1 -1
- package/src/x_ite/Components/Core.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +1 -1
- package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
- package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +1 -1
- package/src/x_ite/Components/DIS/EspduTransform.js +1 -1
- package/src/x_ite/Components/DIS/ReceiverPdu.js +1 -1
- package/src/x_ite/Components/DIS/SignalPdu.js +1 -1
- package/src/x_ite/Components/DIS/TransmitterPdu.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/Background.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/Fog.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +6 -12
- package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +1 -1
- package/src/x_ite/Components/EnvironmentalEffects.js +1 -1
- package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +1 -1
- package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +1 -1
- package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +1 -1
- package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +1 -1
- package/src/x_ite/Components/EnvironmentalSensor.js +1 -1
- package/src/x_ite/Components/EventUtilities/BooleanFilter.js +1 -1
- package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +1 -1
- package/src/x_ite/Components/EventUtilities/BooleanToggle.js +1 -1
- package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +1 -1
- package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +1 -1
- package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +1 -1
- package/src/x_ite/Components/EventUtilities/TimeTrigger.js +1 -1
- package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +1 -1
- package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +1 -1
- package/src/x_ite/Components/Followers/ColorChaser.js +1 -1
- package/src/x_ite/Components/Followers/ColorDamper.js +1 -1
- package/src/x_ite/Components/Followers/CoordinateChaser.js +1 -1
- package/src/x_ite/Components/Followers/CoordinateDamper.js +1 -1
- package/src/x_ite/Components/Followers/OrientationChaser.js +1 -1
- package/src/x_ite/Components/Followers/OrientationDamper.js +1 -1
- package/src/x_ite/Components/Followers/PositionChaser.js +1 -1
- package/src/x_ite/Components/Followers/PositionChaser2D.js +1 -1
- package/src/x_ite/Components/Followers/PositionDamper.js +1 -1
- package/src/x_ite/Components/Followers/PositionDamper2D.js +1 -1
- package/src/x_ite/Components/Followers/ScalarChaser.js +1 -1
- package/src/x_ite/Components/Followers/ScalarDamper.js +1 -1
- package/src/x_ite/Components/Followers/TexCoordChaser2D.js +1 -1
- package/src/x_ite/Components/Followers/TexCoordDamper2D.js +1 -1
- package/src/x_ite/Components/Followers/X3DChaserNode.js +1 -1
- package/src/x_ite/Components/Followers/X3DDamperNode.js +1 -1
- package/src/x_ite/Components/Followers/X3DFollowerNode.js +1 -1
- package/src/x_ite/Components/Followers.js +1 -1
- package/src/x_ite/Components/Geometry2D/Arc2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/ArcClose2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/Disk2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/Polyline2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/Polypoint2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/Rectangle2D.js +1 -1
- package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +1 -1
- package/src/x_ite/Components/Geometry3D/Box.js +1 -1
- package/src/x_ite/Components/Geometry3D/Cone.js +3 -3
- package/src/x_ite/Components/Geometry3D/Cylinder.js +4 -4
- package/src/x_ite/Components/Geometry3D/ElevationGrid.js +1 -1
- package/src/x_ite/Components/Geometry3D/Extrusion.js +1 -1
- package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +1 -1
- package/src/x_ite/Components/Geometry3D/Sphere.js +1 -1
- package/src/x_ite/Components/Geometry3D.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoCoordinate.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoLOD.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoLocation.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoMetadata.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoOrigin.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +17 -13
- package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoTransform.js +1 -1
- package/src/x_ite/Components/Geospatial/GeoViewpoint.js +39 -106
- package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +1 -1
- package/src/x_ite/Components/Grouping/Group.js +1 -1
- package/src/x_ite/Components/Grouping/StaticGroup.js +1 -1
- package/src/x_ite/Components/Grouping/Switch.js +1 -1
- package/src/x_ite/Components/Grouping/Transform.js +1 -1
- package/src/x_ite/Components/Grouping/X3DBoundedObject.js +1 -1
- package/src/x_ite/Components/Grouping/X3DGroupingNode.js +1 -1
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +1 -1
- package/src/x_ite/Components/Grouping/X3DTransformNode.js +1 -1
- package/src/x_ite/Components/Grouping.js +1 -1
- package/src/x_ite/Components/HAnim/HAnimDisplacer.js +2 -1
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +32 -23
- package/src/x_ite/Components/HAnim/HAnimJoint.js +2 -1
- package/src/x_ite/Components/HAnim/HAnimMotion.js +3 -1
- package/src/x_ite/Components/HAnim/HAnimSegment.js +2 -1
- package/src/x_ite/Components/HAnim/HAnimSite.js +2 -1
- package/src/x_ite/Components/Interpolation/ColorInterpolator.js +2 -2
- package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +1 -1
- package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +1 -1
- package/src/x_ite/Components/Interpolation/NormalInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/PositionInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +1 -1
- package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +1 -1
- package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +1 -1
- package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +1 -1
- package/src/x_ite/Components/Interpolation.js +1 -1
- package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +1 -1
- package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +1 -1
- package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +1 -1
- package/src/x_ite/Components/Layering/Layer.js +4 -2
- package/src/x_ite/Components/Layering/LayerSet.js +1 -1
- package/src/x_ite/Components/Layering/Viewport.js +4 -4
- package/src/x_ite/Components/Layering/X3DLayerNode.js +66 -49
- package/src/x_ite/Components/Layering/X3DViewportNode.js +1 -1
- package/src/x_ite/Components/Layering.js +1 -1
- package/src/x_ite/Components/Layout/Layout.js +1 -1
- package/src/x_ite/Components/Layout/LayoutGroup.js +1 -1
- package/src/x_ite/Components/Layout/LayoutLayer.js +4 -2
- package/src/x_ite/Components/Layout/ScreenFontStyle.js +1 -1
- package/src/x_ite/Components/Layout/ScreenGroup.js +1 -1
- package/src/x_ite/Components/Layout/X3DLayoutNode.js +1 -1
- package/src/x_ite/Components/Lighting/DirectionalLight.js +9 -5
- package/src/x_ite/Components/Lighting/EnvironmentLight.js +143 -0
- package/src/x_ite/Components/Lighting/PointLight.js +9 -5
- package/src/x_ite/Components/Lighting/SpotLight.js +9 -5
- package/src/x_ite/Components/Lighting/X3DLightNode.js +1 -1
- package/src/x_ite/Components/Lighting.js +3 -1
- package/src/x_ite/Components/NURBS/Contour2D.js +1 -1
- package/src/x_ite/Components/NURBS/ContourPolyline2D.js +1 -1
- package/src/x_ite/Components/NURBS/CoordinateDouble.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsCurve.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsCurve2D.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsSet.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +1 -1
- package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +1 -1
- package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +1 -1
- package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +1 -1
- package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +1 -1
- package/src/x_ite/Components/Navigation/Billboard.js +1 -1
- package/src/x_ite/Components/Navigation/Collision.js +1 -1
- package/src/x_ite/Components/Navigation/LOD.js +1 -1
- package/src/x_ite/Components/Navigation/NavigationInfo.js +2 -1
- package/src/x_ite/Components/Navigation/OrthoViewpoint.js +100 -68
- package/src/x_ite/Components/Navigation/Viewpoint.js +16 -16
- package/src/x_ite/Components/Navigation/ViewpointGroup.js +1 -1
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +219 -111
- package/src/x_ite/Components/Navigation.js +1 -1
- package/src/x_ite/Components/Networking/Anchor.js +1 -1
- package/src/x_ite/Components/Networking/Inline.js +99 -14
- package/src/x_ite/Components/Networking/LoadSensor.js +9 -9
- package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +1 -1
- package/src/x_ite/Components/Networking/X3DUrlObject.js +3 -3
- package/src/x_ite/Components/Networking.js +1 -1
- package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +1 -1
- package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +1 -1
- package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
- package/src/x_ite/Components/ParticleSystems/PointEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +1 -1
- package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +1 -1
- package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +1 -1
- package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +1 -1
- package/src/x_ite/Components/Picking/LinePickSensor.js +1 -1
- package/src/x_ite/Components/Picking/PickableGroup.js +1 -1
- package/src/x_ite/Components/Picking/PointPickSensor.js +2 -4
- package/src/x_ite/Components/Picking/PrimitivePickSensor.js +1 -1
- package/src/x_ite/Components/Picking/VolumePickSensor.js +1 -1
- package/src/x_ite/Components/Picking/X3DPickSensorNode.js +1 -1
- package/src/x_ite/Components/Picking/X3DPickableObject.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +1 -1
- package/src/x_ite/Components/PointingDeviceSensor.js +1 -1
- package/src/x_ite/Components/ProjectiveTextureMapping/{TextureProjectorPerspective.js → TextureProjector.js} +17 -13
- package/src/x_ite/Components/ProjectiveTextureMapping/TextureProjectorParallel.js +17 -13
- package/src/x_ite/Components/ProjectiveTextureMapping/X3DTextureProjectorNode.js +1 -1
- package/src/x_ite/Components/Rendering/ClipPlane.js +1 -1
- package/src/x_ite/Components/Rendering/Color.js +1 -1
- package/src/x_ite/Components/Rendering/ColorRGBA.js +1 -1
- package/src/x_ite/Components/Rendering/Coordinate.js +1 -1
- package/src/x_ite/Components/Rendering/IndexedLineSet.js +6 -1
- package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +1 -1
- package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +1 -1
- package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +1 -1
- package/src/x_ite/Components/Rendering/LineSet.js +6 -1
- package/src/x_ite/Components/Rendering/Normal.js +31 -1
- package/src/x_ite/Components/Rendering/PointSet.js +6 -1
- package/src/x_ite/Components/Rendering/TriangleFanSet.js +1 -1
- package/src/x_ite/Components/Rendering/TriangleSet.js +1 -1
- package/src/x_ite/Components/Rendering/TriangleStripSet.js +1 -1
- package/src/x_ite/Components/Rendering/X3DColorNode.js +1 -1
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +1 -1
- package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +1 -1
- package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +1 -1
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +40 -35
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +24 -6
- package/src/x_ite/Components/Rendering/X3DNormalNode.js +1 -1
- package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +7 -1
- package/src/x_ite/Components/Rendering.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/Contact.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +3 -2
- package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +1 -1
- package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +1 -1
- package/src/x_ite/Components/Scripting/Script.js +2 -1
- package/src/x_ite/Components/Scripting/X3DScriptNode.js +1 -1
- package/src/x_ite/Components/Shaders/ComposedShader.js +1 -1
- package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +1 -1
- package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +1 -1
- package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +1 -1
- package/src/x_ite/Components/Shaders/PackagedShader.js +2 -1
- package/src/x_ite/Components/Shaders/ProgramShader.js +1 -1
- package/src/x_ite/Components/Shaders/ShaderPart.js +2 -1
- package/src/x_ite/Components/Shaders/ShaderProgram.js +2 -1
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +13 -10
- package/src/x_ite/Components/Shaders/X3DShaderNode.js +1 -1
- package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +1 -1
- package/src/x_ite/Components/Shaders.js +1 -1
- package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
- package/src/x_ite/Components/Shape/Appearance.js +2 -2
- package/src/x_ite/Components/Shape/FillProperties.js +4 -1
- package/src/x_ite/Components/Shape/LineProperties.js +4 -1
- package/src/x_ite/Components/Shape/Material.js +24 -16
- package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
- package/src/x_ite/Components/Shape/PointProperties.js +14 -20
- package/src/x_ite/Components/Shape/Shape.js +1 -1
- package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
- package/src/x_ite/Components/Shape/UnlitMaterial.js +1 -1
- package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +1 -1
- package/src/x_ite/Components/Shape/X3DAppearanceNode.js +1 -1
- package/src/x_ite/Components/Shape/X3DMaterialNode.js +1 -1
- package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +2 -2
- package/src/x_ite/Components/Shape/X3DShapeNode.js +1 -1
- package/src/x_ite/Components/Shape.js +1 -1
- package/src/x_ite/Components/Sound/Analyser.js +105 -0
- package/src/x_ite/Components/Sound/AudioClip.js +1 -1
- package/src/x_ite/Components/Sound/AudioDestination.js +94 -0
- package/src/x_ite/Components/Sound/BiquadFilter.js +104 -0
- package/src/x_ite/Components/Sound/BufferAudioSource.js +127 -0
- package/src/x_ite/Components/Sound/ChannelMerger.js +91 -0
- package/src/x_ite/Components/Sound/ChannelSelector.js +92 -0
- package/src/x_ite/Components/Sound/ChannelSplitter.js +92 -0
- package/src/x_ite/Components/Sound/Convolver.js +102 -0
- package/src/x_ite/Components/Sound/Delay.js +102 -0
- package/src/x_ite/Components/Sound/DynamicsCompressor.js +106 -0
- package/src/x_ite/Components/Sound/Gain.js +100 -0
- package/src/x_ite/Components/Sound/ListenerPointSource.js +102 -0
- package/src/x_ite/Components/Sound/MicrophoneSource.js +96 -0
- package/src/x_ite/Components/Sound/OscillatorSource.js +98 -0
- package/src/x_ite/Components/Sound/PeriodicWave.js +86 -0
- package/src/x_ite/Components/Sound/Sound.js +16 -13
- package/src/x_ite/Components/Sound/SpatialSound.js +103 -0
- package/src/x_ite/Components/Sound/StreamAudioDestination.js +94 -0
- package/src/x_ite/Components/Sound/StreamAudioSource.js +96 -0
- package/src/x_ite/Components/Sound/WaveShaper.js +102 -0
- package/src/x_ite/Components/Sound/X3DSoundChannelNode.js +63 -0
- package/src/x_ite/Components/Sound/X3DSoundDestinationNode.js +63 -0
- package/src/x_ite/Components/Sound/X3DSoundNode.js +1 -1
- package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +63 -0
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +1 -1
- package/src/x_ite/Components/Sound.js +54 -10
- package/src/x_ite/Components/Text/FontStyle.js +1 -1
- package/src/x_ite/Components/Text/Text.js +1 -1
- package/src/x_ite/Components/Text/X3DFontStyleNode.js +1 -1
- package/src/x_ite/Components/Texturing/ImageTexture.js +1 -1
- package/src/x_ite/Components/Texturing/MovieTexture.js +1 -1
- package/src/x_ite/Components/Texturing/MultiTexture.js +1 -1
- package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +1 -1
- package/src/x_ite/Components/Texturing/MultiTextureTransform.js +1 -1
- package/src/x_ite/Components/Texturing/PixelTexture.js +1 -1
- package/src/x_ite/Components/Texturing/TextureCoordinate.js +1 -1
- package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +1 -1
- package/src/x_ite/Components/Texturing/TextureProperties.js +8 -1
- package/src/x_ite/Components/Texturing/TextureTransform.js +1 -1
- package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DTextureNode.js +1 -1
- package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +1 -1
- package/src/x_ite/Components/Texturing.js +1 -1
- package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +1 -1
- package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +1 -1
- package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +1 -1
- package/src/x_ite/Components/Time/TimeSensor.js +2 -1
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +1 -1
- package/src/x_ite/Components/Time.js +1 -1
- package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +1 -1
- package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +1 -1
- package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +1 -1
- package/src/x_ite/Components/VolumeRendering/VolumeData.js +1 -1
- package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +1 -1
- package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +1 -1
- package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +1 -1
- package/src/x_ite/Components/X_ITE/BlendMode.js +1 -1
- package/src/x_ite/Components.js +6 -28
- package/src/x_ite/Configuration/ComponentInfo.js +10 -7
- package/src/x_ite/Configuration/ComponentInfoArray.js +2 -6
- package/src/x_ite/Configuration/ProfileInfo.js +1 -1
- package/src/x_ite/Configuration/ProfileInfoArray.js +1 -1
- package/src/x_ite/Configuration/SupportedComponents.js +136 -154
- package/src/x_ite/Configuration/SupportedNodes.js +7 -10
- package/src/x_ite/Configuration/SupportedProfiles.js +1 -1
- package/src/x_ite/Configuration/UnitInfo.js +1 -1
- package/src/x_ite/Configuration/UnitInfoArray.js +1 -1
- package/src/x_ite/DEBUG.js +1 -1
- package/src/x_ite/Execution/BindableList.js +1 -1
- package/src/x_ite/Execution/BindableStack.js +12 -12
- package/src/x_ite/Execution/ExportedNodesArray.js +1 -1
- package/src/x_ite/Execution/ImportedNodesArray.js +1 -1
- package/src/x_ite/Execution/NamedNodesArray.js +1 -1
- package/src/x_ite/Execution/Scene.js +13 -13
- package/src/x_ite/Execution/X3DExecutionContext.js +882 -882
- package/src/x_ite/Execution/X3DExportedNode.js +1 -1
- package/src/x_ite/Execution/X3DImportedNode.js +1 -1
- package/src/x_ite/Execution/X3DScene.js +14 -22
- package/src/x_ite/Execution/X3DWorld.js +1 -1
- package/src/x_ite/Fallback.js +1 -6
- package/src/x_ite/Fields/ArrayFields.js +1 -1
- package/src/x_ite/Fields/SFBool.js +1 -1
- package/src/x_ite/Fields/SFColor.js +2 -5
- package/src/x_ite/Fields/SFColorRGBA.js +2 -6
- package/src/x_ite/Fields/SFDouble.js +1 -1
- package/src/x_ite/Fields/SFFloat.js +1 -1
- package/src/x_ite/Fields/SFImage.js +1 -1
- package/src/x_ite/Fields/SFInt32.js +1 -1
- package/src/x_ite/Fields/SFMatrix3.js +16 -11
- package/src/x_ite/Fields/SFMatrix4.js +18 -11
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +15 -4
- package/src/x_ite/Fields/SFNode.js +1 -1
- package/src/x_ite/Fields/SFNodeCache.js +3 -5
- package/src/x_ite/Fields/SFRotation.js +27 -6
- package/src/x_ite/Fields/SFString.js +1 -1
- package/src/x_ite/Fields/SFTime.js +1 -1
- package/src/x_ite/Fields/SFVec2.js +5 -11
- package/src/x_ite/Fields/SFVec3.js +5 -11
- package/src/x_ite/Fields/SFVec4.js +5 -11
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +27 -17
- package/src/x_ite/Fields.js +1 -1
- package/src/x_ite/InputOutput/FileLoader.js +3 -3
- package/src/x_ite/InputOutput/Generator.js +1 -1
- package/src/x_ite/Namespace.js +2 -758
- package/src/x_ite/Parser/GoldenGate.js +1 -1
- package/src/x_ite/Parser/HTMLSupport.js +1 -1
- package/src/x_ite/Parser/JSONParser.js +4 -4
- package/src/x_ite/Parser/VRMLParser.js +15 -1
- package/src/x_ite/Parser/X3DParser.js +1 -1
- package/src/x_ite/Parser/XMLParser.js +1 -1
- package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +1 -1
- package/src/x_ite/Prototype/ProtoDeclarationArray.js +1 -1
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +1 -1
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -1
- package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -1
- package/src/x_ite/Rendering/DependentRenderer.js +1 -1
- package/src/x_ite/Rendering/TextureBuffer.js +1 -1
- package/src/x_ite/Rendering/TraverseType.js +1 -1
- package/src/x_ite/Rendering/VertexArray.js +2 -2
- package/src/x_ite/Rendering/X3DRenderObject.js +10 -7
- package/src/x_ite/Routing/RouteArray.js +1 -1
- package/src/x_ite/Routing/X3DRoute.js +1 -1
- package/src/x_ite/Routing/X3DRoutingContext.js +1 -1
- package/src/x_ite/X3D.js +25 -37
- package/src/x_ite/X3DCanvas.js +10 -12
- package/src/x_ite.css +20 -0
- package/src/x_ite.html +80 -77
- package/src/x_ite.js +1 -1
- package/webpack.config.js +79 -8
- package/x_ite.min.html +78 -76
- package/build/bin/namespace.mjs +0 -86
- package/docs/404.md +0 -11
- package/docs/Browser-Support.md +0 -53
- package/docs/Supported-Nodes.md +0 -378
- package/docs/_data/navigation.yml +0 -137
- package/docs/assets/css/main.scss +0 -126
- package/docs/reference/Field-Services-and-Objects.md +0 -1110
- package/docs/tutorials/index.md +0 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
/* X_ITE v8.0.0 */(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components");var n=e.n(t);const o=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Texturing/PixelTexture");var i=e.n(o);const r=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Texturing/TextureProperties");var s=e.n(r);const a=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Fields");var l=e.n(a);const d=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Base/X3DFieldDefinition");var u=e.n(d);const h=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Base/FieldDefinitionArray");var c=e.n(h);const f=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Core/X3DNode");var p=e.n(f);const g=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Base/X3DConstants");var m=e.n(g);function _(e){p().call(this,e),this.addType(m().X3DVolumeRenderStyleNode),this.volumeDataNodes=new Set}_.prototype=Object.assign(Object.create(p().prototype),{constructor:_,addShaderFields:function(e){},getUniformsText:function(){return""},getFunctionsText:function(){return""},getVolumeData:function(){return this.volumeDataNodes},addVolumeData:function(e){this.volumeDataNodes.add(e)},removeVolumeData:function(e){this.volumeDataNodes.delete(e)},getNormalText:function(e){let t="";return e?(t+="uniform sampler3D surfaceNormals_"+this.getId()+";\n",t+="\n",t+="vec4\n",t+="getNormal_"+this.getId()+" (in vec3 texCoord)\n",t+="{\n",t+=" vec3 n = texture (surfaceNormals_"+this.getId()+", texCoord) .xyz * 2.0 - 1.0;\n",t+="\n",t+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",t+="}\n"):(t+="\n",t+="vec4\n",t+="getNormal_"+this.getId()+" (in vec3 texCoord)\n",t+="{\n",t+=" vec4 offset = vec4 (1.0 / vec3 (textureSize (x3d_Texture3D [0], 0)), 0.0);\n",t+=" float i0 = texture (x3d_Texture3D [0], texCoord + offset .xww) .r;\n",t+=" float i1 = texture (x3d_Texture3D [0], texCoord - offset .xww) .r;\n",t+=" float i2 = texture (x3d_Texture3D [0], texCoord + offset .wyw) .r;\n",t+=" float i3 = texture (x3d_Texture3D [0], texCoord - offset .wyw) .r;\n",t+=" float i4 = texture (x3d_Texture3D [0], texCoord + offset .wwz) .r;\n",t+=" float i5 = texture (x3d_Texture3D [0], texCoord - offset .wwz) .r;\n",t+=" vec3 n = vec3 (i1 - i0, i3 - i2, i5 - i4);\n",t+="\n",t+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",t+="}\n"),t}});const S=_;function y(e){S.call(this,e),this.addType(m().X3DComposableVolumeRenderStyleNode)}y.prototype=Object.assign(Object.create(S.prototype),{constructor:y});const x=y,N=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Base/X3DCast");var w=e.n(N);function v(e){x.call(this,e),this.addType(m().OpacityMapVolumeStyle)}v.prototype=Object.assign(Object.create(x.prototype),{constructor:v,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"transferFunction",new(l().SFNode))]),getTypeName:function(){return"OpacityMapVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._transferFunction.addInterest("set_transferFunction__",this),this.set_transferFunction__())},set_transferFunction__:function(){this.transferFunctionNode=w()(m().X3DTexture2DNode,this._transferFunction),this.transferFunctionNode||(this.transferFunctionNode=w()(m().X3DTexture3DNode,this._transferFunction)),this.transferFunctionNode||(this.transferFunctionNode=this.getBrowser().getDefaultTransferFunction())},addShaderFields:function(e){this._enabled.getValue()&&e.addUserDefinedField(m().inputOutput,"transferFunction_"+this.getId(),new(l().SFNode)(this.transferFunctionNode))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// OpacityMapVolumeStyle\n",e+="\n",this.transferFunctionNode.getType().includes(m().X3DTexture2DNode)?(e+="uniform sampler2D transferFunction_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getOpacityMapStyle_"+this.getId()+" (in vec4 originalColor)\n",e+="{\n",e+=" return texture (transferFunction_"+this.getId()+", originalColor .rg);\n",e+="}\n"):(e+="uniform sampler3D transferFunction_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getOpacityMapStyle_"+this.getId()+" (in vec4 originalColor)\n",e+="{\n",e+=" return texture (transferFunction_"+this.getId()+", originalColor .rgb);\n",e+="}\n"),e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // OpacityMapVolumeStyle\n",e+="\n",e+=" textureColor = getOpacityMapStyle_"+this.getId()+" (textureColor);\n",e}});const C=v,F=Symbol(),I=Symbol(),T=Symbol(),b=Symbol();function D(){}D.prototype={getDefaultVoxels:function(e){return this[F]=e.createNode("PixelTexture3D",!1),this[F]._image=[1,1,1,1,255],this[F].repeatS=!0,this[F].repeatT=!0,this[F].repeatR=!0,this[F].setPrivate(!0),this[F].setup(),this.getDefaultVoxels=function(){return this[F]},Object.defineProperty(this,"getDefaultVoxels",{enumerable:!1}),this[F]},getDefaultVolumeStyle:function(){return this[I]=new C(this.getPrivateScene()),this[I].setPrivate(!0),this[I].setup(),this.getDefaultVolumeStyle=function(){return this[I]},Object.defineProperty(this,"getDefaultVolumeStyle",{enumerable:!1}),this[I]},getDefaultBlendedVolumeStyle:function(){return this[T]=new C(this.getPrivateScene()),this[T].setPrivate(!0),this[T].setup(),this.getDefaultBlendedVolumeStyle=function(){return this[T]},Object.defineProperty(this,"getDefaultBlendedVolumeStyle",{enumerable:!1}),this[T]},getDefaultTransferFunction:function(){const e=new(s())(this.getPrivateScene());return e._boundaryModeS="CLAMP_TO_EDGE",e._boundaryModeT="REPEAT",e._magnificationFilter="DEFAULT",e._minificationFilter="DEFAULT",e._generateMipMaps=!0,e._textureCompression="DEFAULT",e.setPrivate(!0),e.setup(),this[b]=new(i())(this.getPrivateScene()),this[b]._textureProperties=e,this[b]._image.width=256,this[b]._image.height=1,this[b]._image.comp=2,this[b]._image.array=Array.from({length:256},((e,t)=>t<<8|t)),this[b].setPrivate(!0),this[b].setup(),this.getDefaultTransferFunction=function(){return this[b]},Object.defineProperty(this,"getDefaultTransferFunction",{enumerable:!1}),this[b]}};const V=D;window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/DEBUG");function O(e){x.call(this,e),this.addType(m().BlendedVolumeStyle)}O.prototype=Object.assign(Object.create(x.prototype),{constructor:O,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"weightConstant1",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"weightConstant2",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"weightFunction1",new(l().SFString)("CONSTANT")),new(u())(m().inputOutput,"weightFunction2",new(l().SFString)("CONSTANT")),new(u())(m().inputOutput,"weightTransferFunction1",new(l().SFNode)),new(u())(m().inputOutput,"weightTransferFunction2",new(l().SFNode)),new(u())(m().inputOutput,"renderStyle",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"BlendedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._weightTransferFunction1.addInterest("set_weightTransferFunction1__",this),this._weightTransferFunction2.addInterest("set_weightTransferFunction2__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._voxels.addInterest("set_voxels__",this),this.set_weightTransferFunction1__(),this.set_weightTransferFunction2__(),this.set_renderStyle__(),this.set_voxels__())},addVolumeData:function(e){x.prototype.addVolumeData.call(this,e),this.renderStyleNode&&this.renderStyleNode.addVolumeData(e)},removeVolumeData:function(e){x.prototype.removeVolumeData.call(this,e),this.renderStyleNode&&this.renderStyleNode.removeVolumeData(e)},set_weightTransferFunction1__:function(){this.weightTransferFunction1Node=w()(m().X3DTexture2DNode,this._weightTransferFunction1)},set_weightTransferFunction2__:function(){this.weightTransferFunction2Node=w()(m().X3DTexture2DNode,this._weightTransferFunction2)},set_renderStyle__:function(){if(this.renderStyleNode){this.renderStyleNode.removeInterest("addNodeEvent",this);for(const e of this.getVolumeData())this.renderStyleNode.removeVolumeData(e)}if(this.renderStyleNode=w()(m().X3DComposableVolumeRenderStyleNode,this._renderStyle),this.renderStyleNode){this.renderStyleNode.addInterest("addNodeEvent",this);for(const e of this.getVolumeData())this.renderStyleNode.addVolumeData(e)}},set_voxels__:function(){this.voxelsNode=w()(m().X3DTexture3DNode,this._voxels)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"weightConstant1_"+this.getId(),this._weightConstant1.copy()),e.addUserDefinedField(m().inputOutput,"weightConstant2_"+this.getId(),this._weightConstant2.copy()),this.weightTransferFunction1Node&&e.addUserDefinedField(m().inputOutput,"weightTransferFunction1_"+this.getId(),new(l().SFNode)(this.weightTransferFunction1Node)),this.weightTransferFunction2Node&&e.addUserDefinedField(m().inputOutput,"weightTransferFunction2_"+this.getId(),new(l().SFNode)(this.weightTransferFunction2Node)),this.voxelsNode&&e.addUserDefinedField(m().inputOutput,"voxels_"+this.getId(),new(l().SFNode)(this.voxelsNode)),this.getBrowser().getDefaultBlendedVolumeStyle().addShaderFields(e),this.renderStyleNode&&this.renderStyleNode.addShaderFields(e))},getUniformsText:function(){if(!this._enabled.getValue())return"";if(!this.voxelsNode)return"";let e="";e+="\n",e+="// BlendedVolumeStyle\n",e+="\n",e+="uniform float weightConstant1_"+this.getId()+";\n",e+="uniform float weightConstant2_"+this.getId()+";\n",this.weightTransferFunction1Node&&(e+="uniform sampler2D weightTransferFunction1_"+this.getId()+";\n"),this.weightTransferFunction2Node&&(e+="uniform sampler2D weightTransferFunction2_"+this.getId()+";\n"),e+="uniform sampler3D voxels_"+this.getId()+";\n";let t=this.getBrowser().getDefaultBlendedVolumeStyle().getUniformsText();this.renderStyleNode&&(t+=this.renderStyleNode.getUniformsText()),t=t.replace(/x3d_Texture3D\s*\[0\]/g,"voxels_"+this.getId()),e+="\n",e+=t,e+="\n",e+="vec4\n",e+="getBlendedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 blendColor_"+this.getId()+" = texture (voxels_"+this.getId()+", texCoord);";let n=this.getBrowser().getDefaultBlendedVolumeStyle().getFunctionsText();switch(this.renderStyleNode&&(n+=this.renderStyleNode.getFunctionsText()),n=n.replace(/textureColor/g,"blendColor_"+this.getId()),e+="\n",e+=n,this._weightFunction1.getValue()){default:e+=" float w1_"+this.getId()+" = weightConstant1_"+this.getId()+";\n";break;case"ALPHA0":e+=" float w1_"+this.getId()+" = originalColor .a;\n";break;case"ALPHA1":e+=" float w1_"+this.getId()+" = blendColor_ "+this.getId()+" .a;\n";break;case"ONE_MINUS_ALPHA0":e+=" float w1_"+this.getId()+" = 1.0 - originalColor .a;\n";break;case"ONE_MINUS_ALPHA1":e+=" float w1_"+this.getId()+" = 1.0 - blendColor_ "+this.getId()+" .a;\n";break;case"TABLE":this.weightTransferFunction1Node?e+=" float w1_"+this.getId()+" = texture (weightTransferFunction1_"+this.getId()+", vec2 (originalColor .a, blendColor_"+this.getId()+" .a)) .r;\n":e+=" float w1_"+this.getId()+" = weightConstant1_"+this.getId()+";\n"}switch(this._weightFunction2.getValue()){default:e+=" float w2_"+this.getId()+" = weightConstant2_"+this.getId()+";\n";break;case"ALPHA0":e+=" float w2_"+this.getId()+" = originalColor .a;\n";break;case"ALPHA1":e+=" float w2_"+this.getId()+" = blendColor_ "+this.getId()+" .a;\n";break;case"ONE_MINUS_ALPHA0":e+=" float w2_"+this.getId()+" = 1.0 - originalColor .a;\n";break;case"ONE_MINUS_ALPHA1":e+=" float w2_"+this.getId()+" = 1.0 - blendColor_ "+this.getId()+" .a;\n";break;case"TABLE":this.weightTransferFunction2Node?e+=" float w2_"+this.getId()+" = texture (weightTransferFunction2_"+this.getId()+", vec2 (originalColor .a, blendColor_"+this.getId()+" .a)) .r;\n":e+=" float w2_"+this.getId()+" = weightConstant2_"+this.getId()+";\n"}return e+="\n",e+=" return clamp (originalColor * w1_"+this.getId()+" + blendColor_"+this.getId()+" * w2_"+this.getId()+", 0.0, 1.0);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";if(!this.voxelsNode)return"";let e="";return e+="\n",e+=" // BlendedVolumeStyle\n",e+="\n",e+=" textureColor = getBlendedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const E=O;function X(e){x.call(this,e),this.addType(m().BoundaryEnhancementVolumeStyle)}X.prototype=Object.assign(Object.create(x.prototype),{constructor:X,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"retainedOpacity",new(l().SFFloat)(.2)),new(u())(m().inputOutput,"boundaryOpacity",new(l().SFFloat)(.9)),new(u())(m().inputOutput,"opacityFactor",new(l().SFFloat)(2))]),getTypeName:function(){return"BoundaryEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"retainedOpacity_"+this.getId(),this._retainedOpacity.copy()),e.addUserDefinedField(m().inputOutput,"boundaryOpacity_"+this.getId(),this._boundaryOpacity.copy()),e.addUserDefinedField(m().inputOutput,"opacityFactor_"+this.getId(),this._opacityFactor.copy()))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// BoundaryEnhancementVolumeStyle\n",e+="\n",e+="uniform float retainedOpacity_"+this.getId()+";\n",e+="uniform float boundaryOpacity_"+this.getId()+";\n",e+="uniform float opacityFactor_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getBoundaryEnhancementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" float f0 = texture (x3d_Texture3D [0], texCoord) .r;\n",e+=" float f1 = texture (x3d_Texture3D [0], texCoord + vec3 (0.0, 0.0, 1.0 / float (textureSize (x3d_Texture3D [0], 0) .z))) .r;\n",e+=" float f = abs (f0 - f1);\n",e+="\n",e+=" float retainedOpacity = retainedOpacity_"+this.getId()+";\n",e+=" float boundaryOpacity = boundaryOpacity_"+this.getId()+";\n",e+=" float opacityFactor = opacityFactor_"+this.getId()+";\n",e+="\n",e+=" return vec4 (originalColor .rgb, originalColor .a * (retainedOpacity + boundaryOpacity * pow (f, opacityFactor)));\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // BoundaryEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getBoundaryEnhancementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const B=X;function M(e){x.call(this,e),this.addType(m().CartoonVolumeStyle)}M.prototype=Object.assign(Object.create(x.prototype),{constructor:M,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"colorSteps",new(l().SFInt32)(4)),new(u())(m().inputOutput,"orthogonalColor",new(l().SFColorRGBA)(1,1,1,1)),new(u())(m().inputOutput,"parallelColor",new(l().SFColorRGBA)(0,0,0,1)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"CartoonVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=w()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"colorSteps_"+this.getId(),this._colorSteps.copy()),e.addUserDefinedField(m().inputOutput,"orthogonalColor_"+this.getId(),this._orthogonalColor.copy()),e.addUserDefinedField(m().inputOutput,"parallelColor_"+this.getId(),this._parallelColor.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// CartoonVolumeStyle\n",e+="\n",e+="uniform int colorSteps_"+this.getId()+";\n",e+="uniform vec4 orthogonalColor_"+this.getId()+";\n",e+="uniform vec4 parallelColor_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec3\n",e+="rgb2hsv_"+this.getId()+" (in vec3 color)\n",e+="{\n",e+=" float h = 0.0;\n",e+=" float s = 0.0;\n",e+=" float v = 0.0;\n",e+="\n",e+=" float min = min (min (color .r, color .g), color .b);\n",e+=" float max = max (max (color .r, color .g), color .b);\n",e+=" v = max; // value\n",e+="\n",e+=" float delta = max - min;\n",e+="\n",e+=" if (max != 0.0 && delta != 0.0)\n",e+=" {\n",e+=" s = delta / max; // s\n",e+="\n",e+=" if (color .r == max)\n",e+=" h = (color .g - color .b) / delta; // between yellow & magenta\n",e+=" else if (color .g == max)\n",e+=" h = 2.0 + (color .b - color .r) / delta; // between cyan & yellow\n",e+=" else\n",e+=" h = 4.0 + (color .r - color .g) / delta; // between magenta & cyan\n",e+="\n",e+=" h *= M_PI / 3.0; // radiants\n",e+=" if (h < 0.0)\n",e+=" h += M_PI * 2.0;\n",e+=" }\n",e+=" else\n",e+=" s = h = 0.0; // s = 0, h is undefined\n",e+="\n",e+=" return vec3 (h, s, v);\n",e+="}\n",e+="\n",e+="vec3\n",e+="hsv2rgb_"+this.getId()+" (in vec3 hsv)\n",e+="{\n",e+=" float h = hsv [0];\n",e+=" float s = clamp (hsv [1], 0.0, 1.0);\n",e+=" float v = clamp (hsv [2], 0.0, 1.0);\n",e+="\n",e+=" // H is given on [0, 2 * Pi]. S and V are given on [0, 1].\n",e+=" // RGB are each returned on [0, 1].\n",e+="\n",e+=" if (s == 0.0)\n",e+=" {\n",e+=" // achromatic (grey)\n",e+=" return vec3 (v, v, v);\n",e+=" }\n",e+=" else\n",e+=" {\n",e+=" float w = (h * (180.0 / M_PI)) / 60.0; // sector 0 to 5\n",e+="\n",e+=" float i = floor (w);\n",e+=" float f = w - i; // factorial part of h\n",e+=" float p = v * ( 1.0 - s );\n",e+=" float q = v * ( 1.0 - s * f );\n",e+=" float t = v * ( 1.0 - s * ( 1.0 - f ) );\n",e+="\n",e+=" switch (int (i) % 6)\n",e+=" {\n",e+=" case 0: return vec3 (v, t, p);\n",e+=" case 1: return vec3 (q, v, p);\n",e+=" case 2: return vec3 (p, v, t);\n",e+=" case 3: return vec3 (p, q, v);\n",e+=" case 4: return vec3 (t, p, v);\n",e+=" default: return vec3 (v, p, q);\n",e+=" }\n",e+=" }\n",e+="\n",e+=" return vec3 (0.0);\n",e+="}\n",e+="\n",e+="vec3\n",e+="mix_hsv_"+this.getId()+" (in vec3 a, in vec3 b, in float t)\n",e+="{\n",e+=" // Linearely interpolate in HSV space between source color @a a and destination color @a b by an amount of @a t.\n",e+=" // Source and destination color must be in HSV space.\n",e+="\n",e+=" float ha = a [0];\n",e+=" float sa = a [1];\n",e+=" float va = a [2];\n",e+="\n",e+=" float hb = b [0];\n",e+=" float sb = b [1];\n",e+=" float vb = b [2];\n",e+="\n",e+=" if (sa == 0.0)\n",e+=" ha = hb;\n",e+="\n",e+=" if (sb == 0.0)\n",e+=" hb = ha;\n",e+="\n",e+=" float range = abs (hb - ha);\n",e+="\n",e+=" if (range <= M_PI)\n",e+=" {\n",e+=" float h = ha + t * (hb - ha);\n",e+=" float s = sa + t * (sb - sa);\n",e+=" float v = va + t * (vb - va);\n",e+=" return vec3 (h, s, v);\n",e+=" }\n",e+="\n",e+=" float PI2 = M_PI * 2.0;\n",e+=" float step = (PI2 - range) * t;\n",e+=" float h = ha < hb ? ha - step : ha + step;\n",e+="\n",e+=" if (h < 0.0)\n",e+=" h += PI2;\n",e+="\n",e+=" else if (h > PI2)\n",e+=" h -= PI2;\n",e+="\n",e+=" float s = sa + t * (sb - sa);\n",e+=" float v = va + t * (vb - va);\n",e+=" return vec3 (h, s, v);\n",e+="}\n",e+="\n",e+="vec4\n",e+="getCartoonStyle_"+this.getId()+" (in vec4 originalColor, vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 orthogonalColor = orthogonalColor_"+this.getId()+";\n",e+=" vec4 parallelColor = parallelColor_"+this.getId()+";\n",e+=" int colorSteps = colorSteps_"+this.getId()+";\n",e+="\n",e+=" float steps = clamp (float (colorSteps), 1.0, 64.0);\n",e+=" float step = M_PI / 2.0 / steps;\n",e+=" float cosTheta = min (dot (surfaceNormal .xyz, normalize (vertex)), 1.0);\n",e+="\n",e+=" if (cosTheta < 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" float t = cos (min (floor (acos (cosTheta) / step) * (steps > 1.0 ? steps / (steps - 1.0) : 1.0), steps) * step);\n",e+=" vec3 orthogonalHSV = rgb2hsv_"+this.getId()+" (orthogonalColor .rgb);\n",e+=" vec3 parallelHSV = rgb2hsv_"+this.getId()+" (parallelColor .rgb);\n",e+="\n",e+=" return vec4 (hsv2rgb_"+this.getId()+" (mix_hsv_"+this.getId()+" (orthogonalHSV, parallelHSV, t)), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // CartoonVolumeStyle\n",e+="\n",e+=" textureColor = getCartoonStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const U=M;function P(e){x.call(this,e),this.addType(m().ComposedVolumeStyle),this.renderStyleNodes=[]}P.prototype=Object.assign(Object.create(x.prototype),{constructor:P,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode))]),getTypeName:function(){return"ComposedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._renderStyle.addInterest("set_renderStyle__",this),this.set_renderStyle__())},addVolumeData:function(e){x.prototype.addVolumeData.call(this,e);for(const t of this.renderStyleNodes)t.addVolumeData(e)},removeVolumeData:function(e){x.prototype.removeVolumeData.call(this,e);for(const t of this.renderStyleNodes)t.removeVolumeData(e)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e){t.removeInterest("addNodeEvent",this);for(const e of this.getVolumeData())t.removeVolumeData(e)}e.length=0;for(const t of this._renderStyle){const n=w()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e){t.addInterest("addNodeEvent",this);for(const e of this.getVolumeData())t.addVolumeData(e)}},addShaderFields:function(e){if(this._enabled.getValue())for(const t of this.renderStyleNodes)t.addShaderFields(e)},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";for(const t of this.renderStyleNodes)e+=t.getUniformsText();e+="\n",e+="vec4\n",e+="getComposedStyle_"+this.getId()+" (in vec4 textureColor, in vec3 texCoord)\n",e+="{\n";for(const t of this.renderStyleNodes)e+=t.getFunctionsText();return e+="\n",e+=" return textureColor;\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ComposedVolumeStyle\n",e+="\n",e+=" textureColor = getComposedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const L=P;function A(e){x.call(this,e),this.addType(m().EdgeEnhancementVolumeStyle)}A.prototype=Object.assign(Object.create(x.prototype),{constructor:A,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"edgeColor",new(l().SFColorRGBA)(0,0,0,1)),new(u())(m().inputOutput,"gradientThreshold",new(l().SFFloat)(.4)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"EdgeEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=w()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"edgeColor_"+this.getId(),this._edgeColor.copy()),e.addUserDefinedField(m().inputOutput,"gradientThreshold_"+this.getId(),this._gradientThreshold.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// EdgeEnhancementVolumeStyle\n",e+="\n",e+="uniform vec4 edgeColor_"+this.getId()+";\n",e+="uniform float gradientThreshold_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getEdgeEnhacementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 edgeColor = edgeColor_"+this.getId()+";\n",e+=" float gradientThreshold = gradientThreshold_"+this.getId()+";\n",e+="\n",e+=" float angle = abs (dot (surfaceNormal .xyz, normalize (vertex)));\n",e+="\n",e+=" if (angle >= cos (gradientThreshold))\n",e+=" return originalColor;\n",e+=" else\n",e+=" return vec4 (mix (edgeColor .rgb, originalColor.rgb, angle), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // EdgeEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getEdgeEnhacementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const z=A,j=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Core/X3DChildNode");var R=e.n(j);const G=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Grouping/X3DBoundedObject");var H=e.n(G);const q=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Browser/Core/TextureQuality");var k=e.n(q);const Y=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Shape/UnlitMaterial");var W=e.n(Y);function Q(e,t){W().call(this,e),this.volumeDataNode=t,this.volumeShaderNodes=new Map}Q.prototype=Object.assign(Object.create(W().prototype),{constructor:Q,getTypeName:function(){return"VolumeMaterial"},getComponentName:function(){return"Shape"},getContainerField:function(){return"material"},getVolumeShaders:function(){return this.volumeShaderNodes},getShader:function(e,t){const{fogNode:n,objectsCount:o}=t;let i="";return i+=n?n.getFogKey():"0",i+=".",i+=o[0],i+=".",i+=o[1],this.volumeShaderNodes.get(i)||this.createShader(i,e,t)},createShader:function(e,t,n){const o=this.getBrowser(),i=[],{fogNode:r,objectsCount:s}=n;r&&i.push("X3D_FOG"),s[0]&&(i.push("X3D_CLIP_PLANES"),i.push("X3D_NUM_CLIP_PLANES "+Math.min(s[0],o.getMaxClipPlanes()))),s[1]&&(i.push("X3D_LIGHTING"),i.push("X3D_NUM_LIGHTS "+Math.min(s[1],o.getMaxLights())));const a=this.volumeDataNode.createShader(i,"#version 300 es\n\nprecision highp float;\nprecision highp int;\n\nuniform mat4 x3d_ProjectionMatrix;\nuniform mat4 x3d_ModelViewMatrix;\nuniform mat4 x3d_TextureMatrix [1];\n\nin vec4 x3d_TexCoord0;\nin vec4 x3d_Vertex;\n\nout vec3 vertex;\nout vec4 texCoord;\n\nvoid\nmain ()\n{\n vec4 position = x3d_ModelViewMatrix * x3d_Vertex;\n\n vertex = position .xyz;\n texCoord = x3d_TextureMatrix [0] * x3d_TexCoord0;\n\n gl_Position = x3d_ProjectionMatrix * position;\n}\n",'#version 300 es\n\nprecision highp float;\nprecision highp int;\nprecision highp sampler3D;\n\nin vec3 vertex;\nin vec4 texCoord;\n\nuniform sampler3D x3d_Texture3D [1];\nuniform mat3 x3d_TextureNormalMatrix;\n\nuniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];\n\nconst float M_PI = 3.14159265359;\n\n#pragma X3D include "includes/ClipPlanes.glsl"\n#pragma X3D include "includes/Fog.glsl"\n\n// VOLUME_STYLES_UNIFORMS\n\nout vec4 x3d_FragColor;\n\nvec4\ngetTextureColor (in vec3 texCoord)\n{\n if (texCoord .s < 0.0 || texCoord .s > 1.0)\n discard;\n\n if (texCoord .t < 0.0 || texCoord .t > 1.0)\n discard;\n\n if (texCoord .p < 0.0 || texCoord .p > 1.0)\n discard;\n\n vec4 textureColor = texture (x3d_Texture3D [0], texCoord);\n\n // Apply volume styles.\n\n// VOLUME_STYLES_FUNCTIONS\n\n return textureColor;\n}\n\nvoid\nmain ()\n{\n #if defined (X3D_CLIP_PLANES)\n clip ();\n #endif\n\n vec4 finalColor = getTextureColor (texCoord .stp / texCoord .q);\n\n #if defined (X3D_FOG)\n finalColor .rgb = getFogColor (finalColor .rgb);\n #endif\n\n x3d_FragColor = finalColor;\n}\n');return this.volumeShaderNodes.set(e,a),a},setShaderUniforms:function(e,t,n,o,i){this.volumeDataNode.setShaderUniforms(e,t)}});const K=Q,Z=window[Symbol.for("X_ITE.X3D-8.0.0")].require("standard/Math/Numbers/Vector3");var J=e.n(Z);function $(e){R().call(this,e),H().call(this,e),this.addType(m().X3DVolumeDataNode),this.proximitySensorNode=e.createNode("ProximitySensor",!1),this.transformNode=e.createNode("Transform",!1),this.shapeNode=e.createNode("Shape",!1),this.appearanceNode=e.createNode("Appearance",!1),this.textureTransformNode=e.createNode("TextureTransform3D",!1),this.geometryNode=e.createNode("QuadSet",!1),this.textureCoordinateNode=e.createNode("TextureCoordinate3D",!1),this.coordinateNode=e.createNode("Coordinate",!1),this.volumeMaterialNode=new K(e,this),this.textureNormalMatrixArray=new Float32Array(9),this.setCameraObject(!0)}$.prototype=Object.assign(Object.create(R().prototype),H().prototype,{constructor:$,initialize:function(){R().prototype.initialize.call(this),H().prototype.initialize.call(this);const e=this.getBrowser(),t=e.getContext();e.getBrowserOptions()._TextureQuality.addInterest("set_dimensions__",this),t.getVersion()>=2&&(this._dimensions.addInterest("set_dimensions__",this),this.set_dimensions__()),this._visible.addFieldInterest(this.transformNode._visible),this._bboxDisplay.addFieldInterest(this.transformNode._bboxDisplay),this.proximitySensorNode._size=new(l().SFVec3f)(-1,-1,-1),this.transformNode._children=new(l().MFNode)(this.shapeNode),this.shapeNode._appearance=this.appearanceNode,this.shapeNode._geometry=this.geometryNode,this.appearanceNode._alphaMode="BLEND",this.appearanceNode._material=this.volumeMaterialNode,this.appearanceNode._textureTransform=this.textureTransformNode,this.textureTransformNode._translation=new(l().SFVec3f)(.5,.5,.5),this.textureTransformNode._center=new(l().SFVec3f)(-.5,-.5,-.5),this.geometryNode._texCoord=this.textureCoordinateNode,this.geometryNode._coord=this.coordinateNode,this.coordinateNode.setPrivate(!0),this.textureCoordinateNode.setPrivate(!0),this.geometryNode.setPrivate(!0),this.textureTransformNode.setPrivate(!0),this.volumeMaterialNode.setPrivate(!0),this.appearanceNode.setPrivate(!0),this.shapeNode.setPrivate(!0),this.transformNode.setPrivate(!0),this.proximitySensorNode.setPrivate(!0),this.coordinateNode.setup(),this.textureCoordinateNode.setup(),this.geometryNode.setup(),this.textureTransformNode.setup(),this.volumeMaterialNode.setup(),this.appearanceNode.setup(),this.shapeNode.setup(),this.transformNode.setup(),this.proximitySensorNode.setup(),this.proximitySensorNode._orientation_changed.addFieldInterest(this.transformNode._rotation),this.proximitySensorNode._orientation_changed.addFieldInterest(this.textureTransformNode._rotation),this.textureTransformNode.addInterest("set_textureTransform__",this),this.set_textureTransform__()},getBBox:function(e,t){return this._bboxSize.getValue().equals(this.getDefaultBBoxSize())?e.set(this._dimensions.getValue(),J().Zero):e.set(this._bboxSize.getValue(),this._bboxCenter.getValue())},getAppearance:function(){return this.appearanceNode},updateShader:function(){this.volumeMaterialNode.getVolumeShaders().clear()},addShaderUniformNames:function(e){e.push("x3d_TextureNormalMatrix")},getNumPlanes:function(){switch(this.getBrowser().getBrowserOptions().getTextureQuality()){case k().LOW:return 200;case k().MEDIUM:return 400;case k().HIGH:return 600}return 200},set_dimensions__:function(){const e=this.getNumPlanes(),t=this._dimensions.getValue().magnitude(),n=t/2,o=[];this.coordinateNode._point.length=0;for(let i=0;i<e;++i){const r=i/(e-1)-.5;o.push(n,n,t*r,-n,n,t*r,-n,-n,t*r,n,-n,t*r)}this.coordinateNode._point=o,this.textureCoordinateNode._point=o,this.textureTransformNode._scale=new(l().SFVec3f)(1/this._dimensions.x,1/this._dimensions.y,1/this._dimensions.z)},set_textureTransform__:function(){this.textureNormalMatrixArray.set(this.textureTransformNode.getMatrix().submatrix.inverse())},traverse:function(e,t){this.proximitySensorNode.traverse(e,t),this.transformNode.traverse(e,t)},setShaderUniforms(e,t){e.uniformMatrix3fv(t.x3d_TextureNormalMatrix,!0,this.textureNormalMatrixArray)},dispose:function(){H().prototype.dispose.call(this),R().prototype.dispose.call(this)}});const ee=$,te=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Shaders/ComposedShader");var ne=e.n(te);const oe=window[Symbol.for("X_ITE.X3D-8.0.0")].require("x_ite/Components/Shaders/ShaderPart");var ie=e.n(oe);function re(e){ee.call(this,e),this.addType(m().IsoSurfaceVolumeData),this.renderStyleNodes=[]}re.prototype=Object.assign(Object.create(ee.prototype),{constructor:re,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"contourStepSize",new(l().SFFloat)(0)),new(u())(m().inputOutput,"surfaceValues",new(l().MFFloat)),new(u())(m().inputOutput,"surfaceTolerance",new(l().SFFloat)(0)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode)),new(u())(m().inputOutput,"gradients",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"IsoSurfaceVolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){ee.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._gradients.addInterest("set_gradients__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._contourStepSize.addInterest("updateShader",this),this._surfaceValues.addInterest("updateShader",this),this._surfaceTolerance.addInterest("updateShader",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_gradients__(),this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},set_gradients__:function(){this.gradientsNode=w()(m().X3DTexture3DNode,this._gradients)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e)t.removeInterest("updateShader",this),t.removeVolumeData(this);e.length=0;for(const t of this._renderStyle){const n=w()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e)t.addInterest("updateShader",this),t.addVolumeData(this)},set_voxels__:function(){this.voxelsNode=w()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();i+="\n",i+="uniform float surfaceValues ["+this._surfaceValues.length+"];\n",i+="uniform float surfaceTolerance;\n";for(const e of this.renderStyleNodes)i+=e.getUniformsText();if(r+="\n",r+=" // IsoSurfaceVolumeData\n",r+="\n",this.gradientsNode?(i+="\n",i+="uniform sampler3D gradients;\n",r+=" if (length (texture (gradients, texCoord) .xyz * 2.0 - 1.0) < surfaceTolerance)\n",r+=" discard;\n"):(i+="\n",i+="vec4\n",i+="getNormal (in vec3 texCoord)\n",i+="{\n",i+=" vec4 offset = vec4 (1.0 / vec3 (textureSize (x3d_Texture3D [0], 0)), 0.0);\n",i+=" float i0 = texture (x3d_Texture3D [0], texCoord + offset .xww) .r;\n",i+=" float i1 = texture (x3d_Texture3D [0], texCoord - offset .xww) .r;\n",i+=" float i2 = texture (x3d_Texture3D [0], texCoord + offset .wyw) .r;\n",i+=" float i3 = texture (x3d_Texture3D [0], texCoord - offset .wyw) .r;\n",i+=" float i4 = texture (x3d_Texture3D [0], texCoord + offset .wwz) .r;\n",i+=" float i5 = texture (x3d_Texture3D [0], texCoord - offset .wwz) .r;\n",i+=" vec3 n = vec3 (i1 - i0, i3 - i2, i5 - i4);\n",i+="\n",i+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",i+="}\n",r+=" if (getNormal (texCoord) .w < surfaceTolerance)\n",r+=" discard;\n"),r+="\n",r+=" float intensity = textureColor .r;\n",r+="\n",1===this._surfaceValues.length){const e=Math.abs(this._contourStepSize.getValue());if(0===e)r+=" if (intensity > surfaceValues [0])\n",r+=" {\n",r+=" textureColor = vec4 (vec3 (surfaceValues [0]), 1.0);\n",this.renderStyleNodes.length&&(r+=this.renderStyleNodes[0].getFunctionsText()),r+=" }\n",r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n";else{const t=[];for(let n=this._surfaceValues[0]-e;n>0;n-=e)t.unshift(n);t.push(this._surfaceValues[0]);for(let n=this._surfaceValues[0]+e;n<1;n+=e)t.push(n);r+=" if (false)\n",r+=" { }\n";for(let e=this._surfaceValues.length-1;e>=0;--e)r+=" else if (intensity > "+t[e]+")\n",r+=" {\n",r+=" textureColor = vec4 (vec3 ("+t[e]+"), 1.0);\n",this.renderStyleNodes.length&&(r+=this.renderStyleNodes[0].getFunctionsText()),r+=" }\n";r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n"}}else{r+=" if (false)\n",r+=" { }\n";for(let e=this._surfaceValues.length-1;e>=0;--e){if(r+=" else if (intensity > surfaceValues ["+e+"])\n",r+=" {\n",r+=" textureColor = vec4 (vec3 (surfaceValues ["+e+"]), 1.0);\n",this.renderStyleNodes.length){const t=Math.min(e,this.renderStyleNodes.length-1);r+=this.renderStyleNodes[t].getFunctionsText()}r+=" }\n"}r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n"}n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(ie())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("VolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(ie())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("VolumeDataFragmentShader"),a.setOptions(e),a.setup();const d=new(ne())(this.getExecutionContext());d._language="GLSL",d._parts.push(s),d._parts.push(a),d.setPrivate(!0),d.setName("VolumeDataShader"),d.addUserDefinedField(m().inputOutput,"surfaceValues",this._surfaceValues.copy()),d.addUserDefinedField(m().inputOutput,"surfaceTolerance",this._surfaceTolerance.copy()),this.gradientsNode&&d.addUserDefinedField(m().inputOutput,"gradients",new(l().SFNode)(this.gradientsNode)),o.addShaderFields(d);for(const e of this.renderStyleNodes)e.addShaderFields(d);const u=[];return this.addShaderUniformNames(u),d.setUniformNames(u),d.setup(),d}});const se=re;function ae(e){S.call(this,e),this.addType(m().ProjectionVolumeStyle)}ae.prototype=Object.assign(Object.create(S.prototype),{constructor:ae,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"type",new(l().SFString)("MAX")),new(u())(m().inputOutput,"intensityThreshold",new(l().SFFloat)(0))]),getTypeName:function(){return"ProjectionVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},addShaderFields:function(e){this._enabled.getValue()&&e.addUserDefinedField(m().inputOutput,"intensityThreshold_"+this.getId(),this._intensityThreshold.copy())},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";switch(e+="\n",e+="// ProjectionVolumeStyle\n",e+="\n",e+="uniform float intensityThreshold_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getProjectionStyle_"+this.getId()+"(in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",this._type.getValue()){default:case"MAX":case"AVERAGE":e+=" float projectionColor = 0.0;\n";break;case"MIN":e+=" float projectionColor = 1.0;\n"}switch(e+=" const int samples = 32;\n",e+=" vec3 step = normalize (x3d_TextureNormalMatrix * vec3 (0.0, 0.0, 1.0)) / float (samples);\n",e+=" vec3 ray = texCoord - step * float (samples) * 0.5;\n",e+=" bool first = false;\n",e+="\n",e+=" for (int i = 0; i < samples; ++ i, ray += step)\n",e+=" {\n",e+=" if (ray .s < 0.0 || ray .s > 1.0)\n",e+=" continue;\n",e+="\n",e+=" if (ray .t < 0.0 || ray .t > 1.0)\n",e+=" continue;\n",e+="\n",e+=" if (ray .p < 0.0 || ray .p > 1.0)\n",e+=" continue;\n",e+="\n",e+=" float intensity = texture (x3d_Texture3D [0], ray) .r;\n",e+="\n",this._type.getValue()){default:case"MAX":e+=" if (intensity < intensityThreshold_"+this.getId()+")\n",e+=" continue;\n",e+="\n",e+=" if (intensityThreshold_"+this.getId()+" > 0.0 && first)\n",e+=" break;\n",e+="\n",e+=" if (intensity <= projectionColor)\n",e+=" {\n",e+=" first = true;\n",e+=" continue;\n",e+=" }\n",e+="\n",e+=" projectionColor = intensity;\n";break;case"MIN":e+=" if (intensity < intensityThreshold_"+this.getId()+")\n",e+=" continue;\n",e+="\n",e+=" if (intensityThreshold_"+this.getId()+" > 0.0 && first)\n",e+=" break;\n",e+="\n",e+=" if (intensity >= projectionColor)\n",e+=" {\n",e+=" first = true;\n",e+=" continue;\n",e+=" }\n",e+="\n",e+=" projectionColor = intensity;\n";break;case"AVERAGE":e+=" projectionColor += intensity;\n"}return e+=" }\n",e+="\n","AVERAGE"===this._type.getValue()&&(e+=" projectionColor /= float (samples);\n"),e+=" return vec4 (vec3 (projectionColor), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ProjectionVolumeStyle\n",e+="\n",e+=" textureColor = getProjectionStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const le=ae;function de(e){ee.call(this,e),this.addType(m().SegmentedVolumeData),this.segmentIdentifiersNode=null,this.renderStyleNodes=[]}de.prototype=Object.assign(Object.create(ee.prototype),{constructor:de,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"segmentEnabled",new(l().MFBool)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"segmentIdentifiers",new(l().SFNode)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"SegmentedVolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){ee.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._segmentIdentifiers.addInterest("set_segmentIdentifiers__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._segmentEnabled.addInterest("updateShader",this),this._segmentIdentifiers.addInterest("updateShader",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_segmentIdentifiers__(),this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},getSegmentEnabled:function(e){return!(e<this._segmentEnabled.length)||this._segmentEnabled[e]},set_segmentIdentifiers__:function(){this.segmentIdentifiersNode=w()(m().X3DTexture3DNode,this._segmentIdentifiers)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e)t.removeInterest("updateShader",this),t.removeVolumeData(this);e.length=0;for(const t of this._renderStyle){const n=w()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e)t.addInterest("updateShader",this),t.addVolumeData(this)},set_voxels__:function(){this.voxelsNode=w()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();if(this.segmentIdentifiersNode?(i+="\n",i+="uniform sampler3D segmentIdentifiers;\n",i+="\n",r+="\n",r+=" int segment = int (texture (segmentIdentifiers, texCoord) .r * 255.0);\n"):r+=" int segment = 0;\n",this.renderStyleNodes.length){r+="\n",r+=" switch (segment)\n",r+=" {\n";for(const[e,t]of this.renderStyleNodes.entries())r+=" case "+e+":\n",r+=" {\n",this.getSegmentEnabled(e)?(i+=t.getUniformsText(),r+=t.getFunctionsText(),r+=" break;\n"):r+=" discard;\n",r+=" }\n";r+=" }\n"}n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(ie())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("SegmentedVolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(ie())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("SegmentedVolumeDataFragmentShader"),a.setOptions(e),a.setup();const d=new(ne())(this.getExecutionContext());d._language="GLSL",d._parts.push(s),d._parts.push(a),d.setPrivate(!0),d.setName("SegmentedVolumeDataShader"),this.segmentIdentifiersNode&&d.addUserDefinedField(m().inputOutput,"segmentIdentifiers",new(l().SFNode)(this.segmentIdentifiersNode)),o.addShaderFields(d);for(const[e,t]of this.renderStyleNodes.entries())this.getSegmentEnabled(e)&&t.addShaderFields(d);const u=[];return this.addShaderUniformNames(u),d.setUniformNames(u),d.setup(),d}});const ue=de;function he(e){x.call(this,e),this.addType(m().ShadedVolumeStyle)}he.prototype=Object.assign(Object.create(x.prototype),{constructor:he,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"lighting",new(l().SFBool)),new(u())(m().inputOutput,"shadows",new(l().SFBool)),new(u())(m().initializeOnly,"phaseFunction",new(l().SFString)("Henyey-Greenstein")),new(u())(m().inputOutput,"material",new(l().SFNode)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"ShadedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._material.addInterest("set_material__",this),this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_material__(),this.set_surfaceNormals__())},set_material__:function(){this.materialNode&&this.materialNode.removeInterest("addNodeEvent",this),this.materialNode=w()(m().X3DMaterialNode,this._material),this.materialNode&&this.materialNode.addInterest("addNodeEvent",this)},set_surfaceNormals__:function(){this.surfaceNormalsNode=w()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(this.materialNode&&(e.addUserDefinedField(m().inputOutput,"ambientIntensity_"+this.getId(),this.materialNode._ambientIntensity.copy()),e.addUserDefinedField(m().inputOutput,"diffuseColor_"+this.getId(),this.materialNode._diffuseColor.copy()),e.addUserDefinedField(m().inputOutput,"specularColor_"+this.getId(),this.materialNode._specularColor.copy()),e.addUserDefinedField(m().inputOutput,"emissiveColor_"+this.getId(),this.materialNode._emissiveColor.copy()),e.addUserDefinedField(m().inputOutput,"shininess_"+this.getId(),this.materialNode._shininess.copy()),e.addUserDefinedField(m().inputOutput,"transparency_"+this.getId(),this.materialNode._transparency.copy())),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// ShadedVolumeStyle\n",e+="\n",e+="uniform float ambientIntensity_"+this.getId()+";\n",e+="uniform vec3 diffuseColor_"+this.getId()+";\n",e+="uniform vec3 specularColor_"+this.getId()+";\n",e+="uniform vec3 emissiveColor_"+this.getId()+";\n",e+="uniform float shininess_"+this.getId()+";\n",e+="uniform float transparency_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="float\n",e+="getSpotFactor_"+this.getId()+" (const in float cutOffAngle, const in float beamWidth, const in vec3 L, const in vec3 d)\n",e+="{\n",e+=" float spotAngle = acos (clamp (dot (-L, d), -1.0, 1.0));\n",e+="\n",e+=" if (spotAngle >= cutOffAngle)\n",e+=" return 0.0;\n",e+=" else if (spotAngle <= beamWidth)\n",e+=" return 1.0;\n",e+="\n",e+=" return (spotAngle - cutOffAngle) / (beamWidth - cutOffAngle);\n",e+="}\n",e+="\n",e+="vec4\n",e+="getShadedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 shadedColor = vec4 (0.0);\n",this._lighting.getValue()?(this.materialNode?(e+=" vec3 diffuseFactor = diffuseColor_"+this.getId()+";\n",e+=" vec3 ambientTerm = diffuseFactor * ambientIntensity_"+this.getId()+";\n",e+="\n",e+=" shadedColor .a = originalColor .a * (1.0 - transparency_"+this.getId()+");\n"):(e+=" vec3 diffuseFactor = originalColor .rgb;\n",e+=" vec3 ambientTerm = vec3 (0.0);\n",e+="\n",e+=" shadedColor .a = originalColor .a;\n"),e+="\n",e+=" vec3 N = surfaceNormal .xyz;\n",e+=" vec3 V = normalize (-vertex); // normalized vector from point on geometry to viewer's position\n",e+="\n",e+=" for (int i = 0; i < X3D_NUM_LIGHTS; ++ i)\n",e+=" {\n",e+=" x3d_LightSourceParameters light = x3d_LightSource [i];\n",e+="\n",e+=" vec3 vL = light .location - vertex; // Light to fragment\n",e+=" float dL = length (light .matrix * vL);\n",e+=" bool di = light .type == x3d_DirectionalLight;\n",e+="\n",e+=" if (di || dL <= light .radius)\n",e+=" {\n",e+=" vec3 d = light .direction;\n",e+=" vec3 c = light .attenuation;\n",e+=" vec3 L = di ? -d : normalize (vL); // Normalized vector from point on geometry to light source i position.\n",e+=" vec3 H = normalize (L + V); // Specular term\n",e+="\n",e+=" float lightAngle = max (dot (N, L), 0.0); // Angle between normal and light ray.\n",e+=" vec3 diffuseTerm = diffuseFactor * lightAngle;\n",e+=" float specularFactor = shininess_"+this.getId()+" > 0.0 ? pow (max (dot (N, H), 0.0), shininess_"+this.getId()+" * 128.0) : 1.0;\n",e+=" vec3 specularTerm = light .intensity * specularColor_"+this.getId()+" * specularFactor;\n",e+="\n",e+=" float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);\n",e+=" float spotFactor = light .type == x3d_SpotLight ? getSpotFactor_"+this.getId()+" (light .cutOffAngle, light .beamWidth, L, d) : 1.0;\n",e+=" float attenuationSpotFactor = attenuationFactor * spotFactor;\n",e+=" vec3 ambientColor = light .ambientIntensity * ambientTerm;\n",e+=" vec3 diffuseSpecularColor = light .intensity * (diffuseTerm + specularTerm);\n",e+="\n",e+=" shadedColor .rgb += attenuationSpotFactor * light .color * (ambientColor + diffuseSpecularColor);\n",e+=" }\n",e+="\n",e+=" shadedColor .rgb += emissiveColor_"+this.getId()+";\n",e+=" }\n"):this.materialNode?(e+=" shadedColor .rgb = diffuseColor_"+this.getId()+";\n",e+=" shadedColor .a = originalColor .a * (1.0 - transparency_"+this.getId()+");\n"):e+=" shadedColor = originalColor;\n",e+="\n",e+=" return shadedColor;\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ShadedVolumeStyle\n",e+="\n",e+=" textureColor = getShadedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const ce=he;function fe(e){x.call(this,e),this.addType(m().SilhouetteEnhancementVolumeStyle)}fe.prototype=Object.assign(Object.create(x.prototype),{constructor:fe,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"silhouetteRetainedOpacity",new(l().SFFloat)(1)),new(u())(m().inputOutput,"silhouetteBoundaryOpacity",new(l().SFFloat)(0)),new(u())(m().inputOutput,"silhouetteSharpness",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"SilhouetteEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=w()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"silhouetteRetainedOpacity_"+this.getId(),this._silhouetteRetainedOpacity.copy()),e.addUserDefinedField(m().inputOutput,"silhouetteBoundaryOpacity_"+this.getId(),this._silhouetteBoundaryOpacity.copy()),e.addUserDefinedField(m().inputOutput,"silhouetteSharpness_"+this.getId(),this._silhouetteSharpness.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// SilhouetteEnhancementVolumeStyle\n",e+="\n",e+="uniform float silhouetteRetainedOpacity_"+this.getId()+";\n",e+="uniform float silhouetteBoundaryOpacity_"+this.getId()+";\n",e+="uniform float silhouetteSharpness_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getSilhouetteEnhancementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+=" \n",e+=" float silhouetteRetainedOpacity = silhouetteRetainedOpacity_"+this.getId()+";\n",e+=" float silhouetteBoundaryOpacity = silhouetteBoundaryOpacity_"+this.getId()+";\n",e+=" float silhouetteSharpness = silhouetteSharpness_"+this.getId()+";\n",e+="\n",e+=" return vec4 (originalColor .rgb, originalColor .a * (silhouetteRetainedOpacity + silhouetteBoundaryOpacity * pow (1.0 - abs (dot (surfaceNormal .xyz, normalize (vertex))), silhouetteSharpness)));\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // SilhouetteEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getSilhouetteEnhancementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const pe=fe;function ge(e){x.call(this,e),this.addType(m().ToneMappedVolumeStyle)}ge.prototype=Object.assign(Object.create(x.prototype),{constructor:ge,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"coolColor",new(l().SFColorRGBA)(0,0,1,0)),new(u())(m().inputOutput,"warmColor",new(l().SFColorRGBA)(1,1,0,0)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"ToneMappedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){x.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=w()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"coolColor_"+this.getId(),this._coolColor.copy()),e.addUserDefinedField(m().inputOutput,"warmColor_"+this.getId(),this._warmColor.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// ToneMappedVolumeStyle\n",e+="\n",e+="uniform vec4 coolColor_"+this.getId()+";\n",e+="uniform vec4 warmColor_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getToneMappedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec3 toneColor = vec3 (0.0);\n",e+=" vec3 coolColor = coolColor_"+this.getId()+" .rgb;\n",e+=" vec3 warmColor = warmColor_"+this.getId()+" .rgb;\n",e+="\n",e+=" for (int i = 0; i < X3D_NUM_LIGHTS; ++ i)\n",e+=" {\n",e+=" x3d_LightSourceParameters light = x3d_LightSource [i];\n",e+="\n",e+=" vec3 L = light .type == x3d_DirectionalLight ? -light .direction : normalize (light .location - vertex);\n",e+=" float colorFactor = dot (L, surfaceNormal .xyz) * 0.5 + 0.5;\n",e+="\n",e+=" toneColor += mix (warmColor .rgb, coolColor .rgb, colorFactor);\n",e+=" }\n",e+="\n",e+=" return vec4 (toneColor, originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ToneMappedVolumeStyle\n",e+="\n",e+=" textureColor = getToneMappedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const me=ge;function _e(e){ee.call(this,e),this.addType(m().VolumeData),this.renderStyleNode=null}_e.prototype=Object.assign(Object.create(ee.prototype),{constructor:_e,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"renderStyle",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"VolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){ee.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._renderStyle.addInterest("set_renderStyle__",this),this._voxels.addInterest("set_voxels__",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},set_renderStyle__:function(){this.renderStyleNode&&(this.renderStyleNode.removeInterest("updateShader",this),this.renderStyleNode.removeVolumeData(this)),this.renderStyleNode=w()(m().X3DVolumeRenderStyleNode,this._renderStyle),this.renderStyleNode&&(this.renderStyleNode.addInterest("updateShader",this),this.renderStyleNode.addVolumeData(this))},set_voxels__:function(){this.voxelsNode=w()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();this.renderStyleNode&&(i+=this.renderStyleNode.getUniformsText(),r+=this.renderStyleNode.getFunctionsText()),n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(ie())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("VolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(ie())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("VolumeDataFragmentShader"),a.setOptions(e),a.setup();const l=new(ne())(this.getExecutionContext());l._language="GLSL",l._parts.push(s),l._parts.push(a),l.setPrivate(!0),l.setName("VolumeDataShader"),o.addShaderFields(l),this.renderStyleNode&&this.renderStyleNode.addShaderFields(l);const d=[];return this.addShaderUniformNames(d),l.setUniformNames(d),l.setup(),l}});const Se=_e;n().addComponent({name:"VolumeRendering",types:{BlendedVolumeStyle:E,BoundaryEnhancementVolumeStyle:B,CartoonVolumeStyle:U,ComposedVolumeStyle:L,EdgeEnhancementVolumeStyle:z,IsoSurfaceVolumeData:se,OpacityMapVolumeStyle:C,ProjectionVolumeStyle:le,SegmentedVolumeData:ue,ShadedVolumeStyle:ce,SilhouetteEnhancementVolumeStyle:pe,ToneMappedVolumeStyle:me,VolumeData:Se},abstractTypes:{X3DComposableVolumeRenderStyleNode:x,X3DVolumeDataNode:ee,X3DVolumeRenderStyleNode:S},browserContext:V})})();
|
|
1
|
+
/* X_ITE v8.3.0 */(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components");var n=e.n(t);const o=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Texturing/PixelTexture");var i=e.n(o);const r=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Texturing/TextureProperties");var s=e.n(r);const a=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Fields");var l=e.n(a);const d=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/X3DFieldDefinition");var u=e.n(d);const h=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/FieldDefinitionArray");var c=e.n(h);const f=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Core/X3DNode");var p=e.n(f);const g=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/X3DConstants");var m=e.n(g);const _=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Namespace");var S=e.n(_);function y(e){p().call(this,e),this.addType(m().X3DVolumeRenderStyleNode),this.volumeDataNodes=new Set}y.prototype=Object.assign(Object.create(p().prototype),{constructor:y,addShaderFields:function(e){},getUniformsText:function(){return""},getFunctionsText:function(){return""},getVolumeData:function(){return this.volumeDataNodes},addVolumeData:function(e){this.volumeDataNodes.add(e)},removeVolumeData:function(e){this.volumeDataNodes.delete(e)},getNormalText:function(e){let t="";return e?(t+="uniform sampler3D surfaceNormals_"+this.getId()+";\n",t+="\n",t+="vec4\n",t+="getNormal_"+this.getId()+" (in vec3 texCoord)\n",t+="{\n",t+=" vec3 n = texture (surfaceNormals_"+this.getId()+", texCoord) .xyz * 2.0 - 1.0;\n",t+="\n",t+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",t+="}\n"):(t+="\n",t+="vec4\n",t+="getNormal_"+this.getId()+" (in vec3 texCoord)\n",t+="{\n",t+=" vec4 offset = vec4 (1.0 / vec3 (textureSize (x3d_Texture3D [0], 0)), 0.0);\n",t+=" float i0 = texture (x3d_Texture3D [0], texCoord + offset .xww) .r;\n",t+=" float i1 = texture (x3d_Texture3D [0], texCoord - offset .xww) .r;\n",t+=" float i2 = texture (x3d_Texture3D [0], texCoord + offset .wyw) .r;\n",t+=" float i3 = texture (x3d_Texture3D [0], texCoord - offset .wyw) .r;\n",t+=" float i4 = texture (x3d_Texture3D [0], texCoord + offset .wwz) .r;\n",t+=" float i5 = texture (x3d_Texture3D [0], texCoord - offset .wwz) .r;\n",t+=" vec3 n = vec3 (i1 - i0, i3 - i2, i5 - i4);\n",t+="\n",t+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",t+="}\n"),t}});const x=y;S().set("x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode",x);const N=x;function w(e){N.call(this,e),this.addType(m().X3DComposableVolumeRenderStyleNode)}w.prototype=Object.assign(Object.create(N.prototype),{constructor:w});const C=w;S().set("x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode",C);const v=C,F=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/X3DCast");var I=e.n(F);function V(e){v.call(this,e),this.addType(m().OpacityMapVolumeStyle)}V.prototype=Object.assign(Object.create(v.prototype),{constructor:V,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"transferFunction",new(l().SFNode))]),getTypeName:function(){return"OpacityMapVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._transferFunction.addInterest("set_transferFunction__",this),this.set_transferFunction__())},set_transferFunction__:function(){this.transferFunctionNode=I()(m().X3DTexture2DNode,this._transferFunction),this.transferFunctionNode||(this.transferFunctionNode=I()(m().X3DTexture3DNode,this._transferFunction)),this.transferFunctionNode||(this.transferFunctionNode=this.getBrowser().getDefaultTransferFunction())},addShaderFields:function(e){this._enabled.getValue()&&e.addUserDefinedField(m().inputOutput,"transferFunction_"+this.getId(),new(l().SFNode)(this.transferFunctionNode))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// OpacityMapVolumeStyle\n",e+="\n",this.transferFunctionNode.getType().includes(m().X3DTexture2DNode)?(e+="uniform sampler2D transferFunction_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getOpacityMapStyle_"+this.getId()+" (in vec4 originalColor)\n",e+="{\n",e+=" return texture (transferFunction_"+this.getId()+", originalColor .rg);\n",e+="}\n"):(e+="uniform sampler3D transferFunction_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getOpacityMapStyle_"+this.getId()+" (in vec4 originalColor)\n",e+="{\n",e+=" return texture (transferFunction_"+this.getId()+", originalColor .rgb);\n",e+="}\n"),e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // OpacityMapVolumeStyle\n",e+="\n",e+=" textureColor = getOpacityMapStyle_"+this.getId()+" (textureColor);\n",e}});const T=V;S().set("x_ite/Components/VolumeRendering/OpacityMapVolumeStyle",T);const b=T,D=Symbol(),O=Symbol(),E=Symbol(),X=Symbol();function B(){}B.prototype={getDefaultVoxels:function(e){return this[D]=e.createNode("PixelTexture3D",!1),this[D]._image=[1,1,1,1,255],this[D].repeatS=!0,this[D].repeatT=!0,this[D].repeatR=!0,this[D].setPrivate(!0),this[D].setup(),this.getDefaultVoxels=function(){return this[D]},Object.defineProperty(this,"getDefaultVoxels",{enumerable:!1}),this[D]},getDefaultVolumeStyle:function(){return this[O]=new b(this.getPrivateScene()),this[O].setPrivate(!0),this[O].setup(),this.getDefaultVolumeStyle=function(){return this[O]},Object.defineProperty(this,"getDefaultVolumeStyle",{enumerable:!1}),this[O]},getDefaultBlendedVolumeStyle:function(){return this[E]=new b(this.getPrivateScene()),this[E].setPrivate(!0),this[E].setup(),this.getDefaultBlendedVolumeStyle=function(){return this[E]},Object.defineProperty(this,"getDefaultBlendedVolumeStyle",{enumerable:!1}),this[E]},getDefaultTransferFunction:function(){const e=new(s())(this.getPrivateScene());return e._boundaryModeS="CLAMP_TO_EDGE",e._boundaryModeT="REPEAT",e._magnificationFilter="DEFAULT",e._minificationFilter="DEFAULT",e._generateMipMaps=!0,e._textureCompression="DEFAULT",e.setPrivate(!0),e.setup(),this[X]=new(i())(this.getPrivateScene()),this[X]._textureProperties=e,this[X]._image.width=256,this[X]._image.height=1,this[X]._image.comp=2,this[X]._image.array=Array.from({length:256},((e,t)=>t<<8|t)),this[X].setPrivate(!0),this[X].setup(),this.getDefaultTransferFunction=function(){return this[X]},Object.defineProperty(this,"getDefaultTransferFunction",{enumerable:!1}),this[X]}};const M=B;S().set("x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext",M);const U=M;window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/DEBUG");function P(e){v.call(this,e),this.addType(m().BlendedVolumeStyle)}P.prototype=Object.assign(Object.create(v.prototype),{constructor:P,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"weightConstant1",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"weightConstant2",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"weightFunction1",new(l().SFString)("CONSTANT")),new(u())(m().inputOutput,"weightFunction2",new(l().SFString)("CONSTANT")),new(u())(m().inputOutput,"weightTransferFunction1",new(l().SFNode)),new(u())(m().inputOutput,"weightTransferFunction2",new(l().SFNode)),new(u())(m().inputOutput,"renderStyle",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"BlendedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._weightTransferFunction1.addInterest("set_weightTransferFunction1__",this),this._weightTransferFunction2.addInterest("set_weightTransferFunction2__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._voxels.addInterest("set_voxels__",this),this.set_weightTransferFunction1__(),this.set_weightTransferFunction2__(),this.set_renderStyle__(),this.set_voxels__())},addVolumeData:function(e){v.prototype.addVolumeData.call(this,e),this.renderStyleNode&&this.renderStyleNode.addVolumeData(e)},removeVolumeData:function(e){v.prototype.removeVolumeData.call(this,e),this.renderStyleNode&&this.renderStyleNode.removeVolumeData(e)},set_weightTransferFunction1__:function(){this.weightTransferFunction1Node=I()(m().X3DTexture2DNode,this._weightTransferFunction1)},set_weightTransferFunction2__:function(){this.weightTransferFunction2Node=I()(m().X3DTexture2DNode,this._weightTransferFunction2)},set_renderStyle__:function(){if(this.renderStyleNode){this.renderStyleNode.removeInterest("addNodeEvent",this);for(const e of this.getVolumeData())this.renderStyleNode.removeVolumeData(e)}if(this.renderStyleNode=I()(m().X3DComposableVolumeRenderStyleNode,this._renderStyle),this.renderStyleNode){this.renderStyleNode.addInterest("addNodeEvent",this);for(const e of this.getVolumeData())this.renderStyleNode.addVolumeData(e)}},set_voxels__:function(){this.voxelsNode=I()(m().X3DTexture3DNode,this._voxels)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"weightConstant1_"+this.getId(),this._weightConstant1.copy()),e.addUserDefinedField(m().inputOutput,"weightConstant2_"+this.getId(),this._weightConstant2.copy()),this.weightTransferFunction1Node&&e.addUserDefinedField(m().inputOutput,"weightTransferFunction1_"+this.getId(),new(l().SFNode)(this.weightTransferFunction1Node)),this.weightTransferFunction2Node&&e.addUserDefinedField(m().inputOutput,"weightTransferFunction2_"+this.getId(),new(l().SFNode)(this.weightTransferFunction2Node)),this.voxelsNode&&e.addUserDefinedField(m().inputOutput,"voxels_"+this.getId(),new(l().SFNode)(this.voxelsNode)),this.getBrowser().getDefaultBlendedVolumeStyle().addShaderFields(e),this.renderStyleNode&&this.renderStyleNode.addShaderFields(e))},getUniformsText:function(){if(!this._enabled.getValue())return"";if(!this.voxelsNode)return"";let e="";e+="\n",e+="// BlendedVolumeStyle\n",e+="\n",e+="uniform float weightConstant1_"+this.getId()+";\n",e+="uniform float weightConstant2_"+this.getId()+";\n",this.weightTransferFunction1Node&&(e+="uniform sampler2D weightTransferFunction1_"+this.getId()+";\n"),this.weightTransferFunction2Node&&(e+="uniform sampler2D weightTransferFunction2_"+this.getId()+";\n"),e+="uniform sampler3D voxels_"+this.getId()+";\n";let t=this.getBrowser().getDefaultBlendedVolumeStyle().getUniformsText();this.renderStyleNode&&(t+=this.renderStyleNode.getUniformsText()),t=t.replace(/x3d_Texture3D\s*\[0\]/g,"voxels_"+this.getId()),e+="\n",e+=t,e+="\n",e+="vec4\n",e+="getBlendedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 blendColor_"+this.getId()+" = texture (voxels_"+this.getId()+", texCoord);";let n=this.getBrowser().getDefaultBlendedVolumeStyle().getFunctionsText();switch(this.renderStyleNode&&(n+=this.renderStyleNode.getFunctionsText()),n=n.replace(/textureColor/g,"blendColor_"+this.getId()),e+="\n",e+=n,this._weightFunction1.getValue()){default:e+=" float w1_"+this.getId()+" = weightConstant1_"+this.getId()+";\n";break;case"ALPHA0":e+=" float w1_"+this.getId()+" = originalColor .a;\n";break;case"ALPHA1":e+=" float w1_"+this.getId()+" = blendColor_ "+this.getId()+" .a;\n";break;case"ONE_MINUS_ALPHA0":e+=" float w1_"+this.getId()+" = 1.0 - originalColor .a;\n";break;case"ONE_MINUS_ALPHA1":e+=" float w1_"+this.getId()+" = 1.0 - blendColor_ "+this.getId()+" .a;\n";break;case"TABLE":this.weightTransferFunction1Node?e+=" float w1_"+this.getId()+" = texture (weightTransferFunction1_"+this.getId()+", vec2 (originalColor .a, blendColor_"+this.getId()+" .a)) .r;\n":e+=" float w1_"+this.getId()+" = weightConstant1_"+this.getId()+";\n"}switch(this._weightFunction2.getValue()){default:e+=" float w2_"+this.getId()+" = weightConstant2_"+this.getId()+";\n";break;case"ALPHA0":e+=" float w2_"+this.getId()+" = originalColor .a;\n";break;case"ALPHA1":e+=" float w2_"+this.getId()+" = blendColor_ "+this.getId()+" .a;\n";break;case"ONE_MINUS_ALPHA0":e+=" float w2_"+this.getId()+" = 1.0 - originalColor .a;\n";break;case"ONE_MINUS_ALPHA1":e+=" float w2_"+this.getId()+" = 1.0 - blendColor_ "+this.getId()+" .a;\n";break;case"TABLE":this.weightTransferFunction2Node?e+=" float w2_"+this.getId()+" = texture (weightTransferFunction2_"+this.getId()+", vec2 (originalColor .a, blendColor_"+this.getId()+" .a)) .r;\n":e+=" float w2_"+this.getId()+" = weightConstant2_"+this.getId()+";\n"}return e+="\n",e+=" return clamp (originalColor * w1_"+this.getId()+" + blendColor_"+this.getId()+" * w2_"+this.getId()+", 0.0, 1.0);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";if(!this.voxelsNode)return"";let e="";return e+="\n",e+=" // BlendedVolumeStyle\n",e+="\n",e+=" textureColor = getBlendedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const L=P;S().set("x_ite/Components/VolumeRendering/BlendedVolumeStyle",L);const A=L;function z(e){v.call(this,e),this.addType(m().BoundaryEnhancementVolumeStyle)}z.prototype=Object.assign(Object.create(v.prototype),{constructor:z,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"retainedOpacity",new(l().SFFloat)(.2)),new(u())(m().inputOutput,"boundaryOpacity",new(l().SFFloat)(.9)),new(u())(m().inputOutput,"opacityFactor",new(l().SFFloat)(2))]),getTypeName:function(){return"BoundaryEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"retainedOpacity_"+this.getId(),this._retainedOpacity.copy()),e.addUserDefinedField(m().inputOutput,"boundaryOpacity_"+this.getId(),this._boundaryOpacity.copy()),e.addUserDefinedField(m().inputOutput,"opacityFactor_"+this.getId(),this._opacityFactor.copy()))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// BoundaryEnhancementVolumeStyle\n",e+="\n",e+="uniform float retainedOpacity_"+this.getId()+";\n",e+="uniform float boundaryOpacity_"+this.getId()+";\n",e+="uniform float opacityFactor_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getBoundaryEnhancementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" float f0 = texture (x3d_Texture3D [0], texCoord) .r;\n",e+=" float f1 = texture (x3d_Texture3D [0], texCoord + vec3 (0.0, 0.0, 1.0 / float (textureSize (x3d_Texture3D [0], 0) .z))) .r;\n",e+=" float f = abs (f0 - f1);\n",e+="\n",e+=" float retainedOpacity = retainedOpacity_"+this.getId()+";\n",e+=" float boundaryOpacity = boundaryOpacity_"+this.getId()+";\n",e+=" float opacityFactor = opacityFactor_"+this.getId()+";\n",e+="\n",e+=" return vec4 (originalColor .rgb, originalColor .a * (retainedOpacity + boundaryOpacity * pow (f, opacityFactor)));\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // BoundaryEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getBoundaryEnhancementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const R=z;S().set("x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle",R);const j=R;function G(e){v.call(this,e),this.addType(m().CartoonVolumeStyle)}G.prototype=Object.assign(Object.create(v.prototype),{constructor:G,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"colorSteps",new(l().SFInt32)(4)),new(u())(m().inputOutput,"orthogonalColor",new(l().SFColorRGBA)(1,1,1,1)),new(u())(m().inputOutput,"parallelColor",new(l().SFColorRGBA)(0,0,0,1)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"CartoonVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=I()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"colorSteps_"+this.getId(),this._colorSteps.copy()),e.addUserDefinedField(m().inputOutput,"orthogonalColor_"+this.getId(),this._orthogonalColor.copy()),e.addUserDefinedField(m().inputOutput,"parallelColor_"+this.getId(),this._parallelColor.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// CartoonVolumeStyle\n",e+="\n",e+="uniform int colorSteps_"+this.getId()+";\n",e+="uniform vec4 orthogonalColor_"+this.getId()+";\n",e+="uniform vec4 parallelColor_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec3\n",e+="rgb2hsv_"+this.getId()+" (in vec3 color)\n",e+="{\n",e+=" float h = 0.0;\n",e+=" float s = 0.0;\n",e+=" float v = 0.0;\n",e+="\n",e+=" float min = min (min (color .r, color .g), color .b);\n",e+=" float max = max (max (color .r, color .g), color .b);\n",e+=" v = max; // value\n",e+="\n",e+=" float delta = max - min;\n",e+="\n",e+=" if (max != 0.0 && delta != 0.0)\n",e+=" {\n",e+=" s = delta / max; // s\n",e+="\n",e+=" if (color .r == max)\n",e+=" h = (color .g - color .b) / delta; // between yellow & magenta\n",e+=" else if (color .g == max)\n",e+=" h = 2.0 + (color .b - color .r) / delta; // between cyan & yellow\n",e+=" else\n",e+=" h = 4.0 + (color .r - color .g) / delta; // between magenta & cyan\n",e+="\n",e+=" h *= M_PI / 3.0; // radiants\n",e+=" if (h < 0.0)\n",e+=" h += M_PI * 2.0;\n",e+=" }\n",e+=" else\n",e+=" s = h = 0.0; // s = 0, h is undefined\n",e+="\n",e+=" return vec3 (h, s, v);\n",e+="}\n",e+="\n",e+="vec3\n",e+="hsv2rgb_"+this.getId()+" (in vec3 hsv)\n",e+="{\n",e+=" float h = hsv [0];\n",e+=" float s = clamp (hsv [1], 0.0, 1.0);\n",e+=" float v = clamp (hsv [2], 0.0, 1.0);\n",e+="\n",e+=" // H is given on [0, 2 * Pi]. S and V are given on [0, 1].\n",e+=" // RGB are each returned on [0, 1].\n",e+="\n",e+=" if (s == 0.0)\n",e+=" {\n",e+=" // achromatic (grey)\n",e+=" return vec3 (v, v, v);\n",e+=" }\n",e+=" else\n",e+=" {\n",e+=" float w = (h * (180.0 / M_PI)) / 60.0; // sector 0 to 5\n",e+="\n",e+=" float i = floor (w);\n",e+=" float f = w - i; // factorial part of h\n",e+=" float p = v * ( 1.0 - s );\n",e+=" float q = v * ( 1.0 - s * f );\n",e+=" float t = v * ( 1.0 - s * ( 1.0 - f ) );\n",e+="\n",e+=" switch (int (i) % 6)\n",e+=" {\n",e+=" case 0: return vec3 (v, t, p);\n",e+=" case 1: return vec3 (q, v, p);\n",e+=" case 2: return vec3 (p, v, t);\n",e+=" case 3: return vec3 (p, q, v);\n",e+=" case 4: return vec3 (t, p, v);\n",e+=" default: return vec3 (v, p, q);\n",e+=" }\n",e+=" }\n",e+="\n",e+=" return vec3 (0.0);\n",e+="}\n",e+="\n",e+="vec3\n",e+="mix_hsv_"+this.getId()+" (in vec3 a, in vec3 b, in float t)\n",e+="{\n",e+=" // Linearely interpolate in HSV space between source color @a a and destination color @a b by an amount of @a t.\n",e+=" // Source and destination color must be in HSV space.\n",e+="\n",e+=" float ha = a [0];\n",e+=" float sa = a [1];\n",e+=" float va = a [2];\n",e+="\n",e+=" float hb = b [0];\n",e+=" float sb = b [1];\n",e+=" float vb = b [2];\n",e+="\n",e+=" if (sa == 0.0)\n",e+=" ha = hb;\n",e+="\n",e+=" if (sb == 0.0)\n",e+=" hb = ha;\n",e+="\n",e+=" float range = abs (hb - ha);\n",e+="\n",e+=" if (range <= M_PI)\n",e+=" {\n",e+=" float h = ha + t * (hb - ha);\n",e+=" float s = sa + t * (sb - sa);\n",e+=" float v = va + t * (vb - va);\n",e+=" return vec3 (h, s, v);\n",e+=" }\n",e+="\n",e+=" float PI2 = M_PI * 2.0;\n",e+=" float step = (PI2 - range) * t;\n",e+=" float h = ha < hb ? ha - step : ha + step;\n",e+="\n",e+=" if (h < 0.0)\n",e+=" h += PI2;\n",e+="\n",e+=" else if (h > PI2)\n",e+=" h -= PI2;\n",e+="\n",e+=" float s = sa + t * (sb - sa);\n",e+=" float v = va + t * (vb - va);\n",e+=" return vec3 (h, s, v);\n",e+="}\n",e+="\n",e+="vec4\n",e+="getCartoonStyle_"+this.getId()+" (in vec4 originalColor, vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 orthogonalColor = orthogonalColor_"+this.getId()+";\n",e+=" vec4 parallelColor = parallelColor_"+this.getId()+";\n",e+=" int colorSteps = colorSteps_"+this.getId()+";\n",e+="\n",e+=" float steps = clamp (float (colorSteps), 1.0, 64.0);\n",e+=" float step = M_PI / 2.0 / steps;\n",e+=" float cosTheta = min (dot (surfaceNormal .xyz, normalize (vertex)), 1.0);\n",e+="\n",e+=" if (cosTheta < 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" float t = cos (min (floor (acos (cosTheta) / step) * (steps > 1.0 ? steps / (steps - 1.0) : 1.0), steps) * step);\n",e+=" vec3 orthogonalHSV = rgb2hsv_"+this.getId()+" (orthogonalColor .rgb);\n",e+=" vec3 parallelHSV = rgb2hsv_"+this.getId()+" (parallelColor .rgb);\n",e+="\n",e+=" return vec4 (hsv2rgb_"+this.getId()+" (mix_hsv_"+this.getId()+" (orthogonalHSV, parallelHSV, t)), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // CartoonVolumeStyle\n",e+="\n",e+=" textureColor = getCartoonStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const q=G;S().set("x_ite/Components/VolumeRendering/CartoonVolumeStyle",q);const H=q;function k(e){v.call(this,e),this.addType(m().ComposedVolumeStyle),this.renderStyleNodes=[]}k.prototype=Object.assign(Object.create(v.prototype),{constructor:k,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode))]),getTypeName:function(){return"ComposedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._renderStyle.addInterest("set_renderStyle__",this),this.set_renderStyle__())},addVolumeData:function(e){v.prototype.addVolumeData.call(this,e);for(const t of this.renderStyleNodes)t.addVolumeData(e)},removeVolumeData:function(e){v.prototype.removeVolumeData.call(this,e);for(const t of this.renderStyleNodes)t.removeVolumeData(e)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e){t.removeInterest("addNodeEvent",this);for(const e of this.getVolumeData())t.removeVolumeData(e)}e.length=0;for(const t of this._renderStyle){const n=I()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e){t.addInterest("addNodeEvent",this);for(const e of this.getVolumeData())t.addVolumeData(e)}},addShaderFields:function(e){if(this._enabled.getValue())for(const t of this.renderStyleNodes)t.addShaderFields(e)},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";for(const t of this.renderStyleNodes)e+=t.getUniformsText();e+="\n",e+="vec4\n",e+="getComposedStyle_"+this.getId()+" (in vec4 textureColor, in vec3 texCoord)\n",e+="{\n";for(const t of this.renderStyleNodes)e+=t.getFunctionsText();return e+="\n",e+=" return textureColor;\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ComposedVolumeStyle\n",e+="\n",e+=" textureColor = getComposedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const Y=k;S().set("x_ite/Components/VolumeRendering/ComposedVolumeStyle",Y);const W=Y;function Q(e){v.call(this,e),this.addType(m().EdgeEnhancementVolumeStyle)}Q.prototype=Object.assign(Object.create(v.prototype),{constructor:Q,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"edgeColor",new(l().SFColorRGBA)(0,0,0,1)),new(u())(m().inputOutput,"gradientThreshold",new(l().SFFloat)(.4)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"EdgeEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=I()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"edgeColor_"+this.getId(),this._edgeColor.copy()),e.addUserDefinedField(m().inputOutput,"gradientThreshold_"+this.getId(),this._gradientThreshold.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// EdgeEnhancementVolumeStyle\n",e+="\n",e+="uniform vec4 edgeColor_"+this.getId()+";\n",e+="uniform float gradientThreshold_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getEdgeEnhacementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 edgeColor = edgeColor_"+this.getId()+";\n",e+=" float gradientThreshold = gradientThreshold_"+this.getId()+";\n",e+="\n",e+=" float angle = abs (dot (surfaceNormal .xyz, normalize (vertex)));\n",e+="\n",e+=" if (angle >= cos (gradientThreshold))\n",e+=" return originalColor;\n",e+=" else\n",e+=" return vec4 (mix (edgeColor .rgb, originalColor.rgb, angle), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // EdgeEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getEdgeEnhacementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const K=Q;S().set("x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle",K);const Z=K,J=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Core/X3DChildNode");var $=e.n(J);const ee=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Grouping/X3DBoundedObject");var te=e.n(ee);const ne=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Browser/Core/TextureQuality");var oe=e.n(ne);const ie=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Shape/UnlitMaterial");var re=e.n(ie);const se="#version 300 es\n\nprecision highp float;\nprecision highp int;\n\nuniform mat4 x3d_ProjectionMatrix;\nuniform mat4 x3d_ModelViewMatrix;\nuniform mat4 x3d_TextureMatrix [1];\n\nin vec4 x3d_TexCoord0;\nin vec4 x3d_Vertex;\n\nout vec3 vertex;\nout vec4 texCoord;\n\nvoid\nmain ()\n{\n vec4 position = x3d_ModelViewMatrix * x3d_Vertex;\n\n vertex = position .xyz;\n texCoord = x3d_TextureMatrix [0] * x3d_TexCoord0;\n\n gl_Position = x3d_ProjectionMatrix * position;\n}\n";S().set("x_ite/Browser/VolumeRendering/VolumeStyle.vs",se);const ae=se,le='#version 300 es\n\nprecision highp float;\nprecision highp int;\nprecision highp sampler3D;\n\nin vec3 vertex;\nin vec4 texCoord;\n\nuniform sampler3D x3d_Texture3D [1];\nuniform mat3 x3d_TextureNormalMatrix;\n\nuniform x3d_LightSourceParameters x3d_LightSource [x3d_MaxLights];\n\nconst float M_PI = 3.14159265359;\n\n#pragma X3D include "includes/ClipPlanes.glsl"\n#pragma X3D include "includes/Fog.glsl"\n\n// VOLUME_STYLES_UNIFORMS\n\nout vec4 x3d_FragColor;\n\nvec4\ngetTextureColor (in vec3 texCoord)\n{\n if (texCoord .s < 0.0 || texCoord .s > 1.0)\n discard;\n\n if (texCoord .t < 0.0 || texCoord .t > 1.0)\n discard;\n\n if (texCoord .p < 0.0 || texCoord .p > 1.0)\n discard;\n\n vec4 textureColor = texture (x3d_Texture3D [0], texCoord);\n\n // Apply volume styles.\n\n// VOLUME_STYLES_FUNCTIONS\n\n return textureColor;\n}\n\nvoid\nmain ()\n{\n #if defined (X3D_CLIP_PLANES)\n clip ();\n #endif\n\n vec4 finalColor = getTextureColor (texCoord .stp / texCoord .q);\n\n #if defined (X3D_FOG)\n finalColor .rgb = getFogColor (finalColor .rgb);\n #endif\n\n x3d_FragColor = finalColor;\n}\n';S().set("x_ite/Browser/VolumeRendering/VolumeStyle.fs",le);const de=le;function ue(e,t){re().call(this,e),this.volumeDataNode=t,this.volumeShaderNodes=new Map}ue.prototype=Object.assign(Object.create(re().prototype),{constructor:ue,getTypeName:function(){return"VolumeMaterial"},getComponentName:function(){return"Shape"},getContainerField:function(){return"material"},getVolumeShaders:function(){return this.volumeShaderNodes},getShader:function(e,t){const{fogNode:n,objectsCount:o}=t;let i="";return i+=n?n.getFogKey():"0",i+=".",i+=o[0],i+=".",i+=o[1],this.volumeShaderNodes.get(i)||this.createShader(i,e,t)},createShader:function(e,t,n){const o=this.getBrowser(),i=[],{fogNode:r,objectsCount:s}=n;r&&i.push("X3D_FOG"),s[0]&&(i.push("X3D_CLIP_PLANES"),i.push("X3D_NUM_CLIP_PLANES "+Math.min(s[0],o.getMaxClipPlanes()))),s[1]&&(i.push("X3D_LIGHTING"),i.push("X3D_NUM_LIGHTS "+Math.min(s[1],o.getMaxLights())));const a=this.volumeDataNode.createShader(i,ae,de);return this.volumeShaderNodes.set(e,a),a},setShaderUniforms:function(e,t,n,o,i){this.volumeDataNode.setShaderUniforms(e,t)}});const he=ue;S().set("x_ite/Browser/VolumeRendering/VolumeMaterial",he);const ce=he,fe=window[Symbol.for("X_ITE.X3D-8.3.0")].require("standard/Math/Numbers/Vector3");var pe=e.n(fe);function ge(e){$().call(this,e),te().call(this,e),this.addType(m().X3DVolumeDataNode),this.proximitySensorNode=e.createNode("ProximitySensor",!1),this.transformNode=e.createNode("Transform",!1),this.shapeNode=e.createNode("Shape",!1),this.appearanceNode=e.createNode("Appearance",!1),this.textureTransformNode=e.createNode("TextureTransform3D",!1),this.geometryNode=e.createNode("QuadSet",!1),this.textureCoordinateNode=e.createNode("TextureCoordinate3D",!1),this.coordinateNode=e.createNode("Coordinate",!1),this.volumeMaterialNode=new ce(e,this),this.textureNormalMatrixArray=new Float32Array(9),this.setCameraObject(!0)}ge.prototype=Object.assign(Object.create($().prototype),te().prototype,{constructor:ge,initialize:function(){$().prototype.initialize.call(this),te().prototype.initialize.call(this);const e=this.getBrowser(),t=e.getContext();e.getBrowserOptions()._TextureQuality.addInterest("set_dimensions__",this),t.getVersion()>=2&&(this._dimensions.addInterest("set_dimensions__",this),this.set_dimensions__()),this._visible.addFieldInterest(this.transformNode._visible),this._bboxDisplay.addFieldInterest(this.transformNode._bboxDisplay),this.proximitySensorNode._size=new(l().SFVec3f)(-1,-1,-1),this.transformNode._children=new(l().MFNode)(this.shapeNode),this.shapeNode._appearance=this.appearanceNode,this.shapeNode._geometry=this.geometryNode,this.appearanceNode._alphaMode="BLEND",this.appearanceNode._material=this.volumeMaterialNode,this.appearanceNode._textureTransform=this.textureTransformNode,this.textureTransformNode._translation=new(l().SFVec3f)(.5,.5,.5),this.textureTransformNode._center=new(l().SFVec3f)(-.5,-.5,-.5),this.geometryNode._texCoord=this.textureCoordinateNode,this.geometryNode._coord=this.coordinateNode,this.coordinateNode.setPrivate(!0),this.textureCoordinateNode.setPrivate(!0),this.geometryNode.setPrivate(!0),this.textureTransformNode.setPrivate(!0),this.volumeMaterialNode.setPrivate(!0),this.appearanceNode.setPrivate(!0),this.shapeNode.setPrivate(!0),this.transformNode.setPrivate(!0),this.proximitySensorNode.setPrivate(!0),this.coordinateNode.setup(),this.textureCoordinateNode.setup(),this.geometryNode.setup(),this.textureTransformNode.setup(),this.volumeMaterialNode.setup(),this.appearanceNode.setup(),this.shapeNode.setup(),this.transformNode.setup(),this.proximitySensorNode.setup(),this.proximitySensorNode._orientation_changed.addFieldInterest(this.transformNode._rotation),this.proximitySensorNode._orientation_changed.addFieldInterest(this.textureTransformNode._rotation),this.textureTransformNode.addInterest("set_textureTransform__",this),this.set_textureTransform__()},getBBox:function(e,t){return this._bboxSize.getValue().equals(this.getDefaultBBoxSize())?e.set(this._dimensions.getValue(),pe().Zero):e.set(this._bboxSize.getValue(),this._bboxCenter.getValue())},getAppearance:function(){return this.appearanceNode},updateShader:function(){this.volumeMaterialNode.getVolumeShaders().clear()},addShaderUniformNames:function(e){e.push("x3d_TextureNormalMatrix")},getNumPlanes:function(){switch(this.getBrowser().getBrowserOptions().getTextureQuality()){case oe().LOW:return 200;case oe().MEDIUM:return 400;case oe().HIGH:return 600}return 200},set_dimensions__:function(){const e=this.getNumPlanes(),t=this._dimensions.getValue().magnitude(),n=t/2,o=[];this.coordinateNode._point.length=0;for(let i=0;i<e;++i){const r=i/(e-1)-.5;o.push(n,n,t*r,-n,n,t*r,-n,-n,t*r,n,-n,t*r)}this.coordinateNode._point=o,this.textureCoordinateNode._point=o,this.textureTransformNode._scale=new(l().SFVec3f)(1/this._dimensions.x,1/this._dimensions.y,1/this._dimensions.z)},set_textureTransform__:function(){this.textureNormalMatrixArray.set(this.textureTransformNode.getMatrix().submatrix.inverse())},traverse:function(e,t){this.proximitySensorNode.traverse(e,t),this.transformNode.traverse(e,t)},setShaderUniforms(e,t){e.uniformMatrix3fv(t.x3d_TextureNormalMatrix,!0,this.textureNormalMatrixArray)},dispose:function(){te().prototype.dispose.call(this),$().prototype.dispose.call(this)}});const me=ge;S().set("x_ite/Components/VolumeRendering/X3DVolumeDataNode",me);const _e=me,Se=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Shaders/ComposedShader");var ye=e.n(Se);const xe=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Shaders/ShaderPart");var Ne=e.n(xe);function we(e){_e.call(this,e),this.addType(m().IsoSurfaceVolumeData),this.renderStyleNodes=[]}we.prototype=Object.assign(Object.create(_e.prototype),{constructor:we,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"contourStepSize",new(l().SFFloat)(0)),new(u())(m().inputOutput,"surfaceValues",new(l().MFFloat)),new(u())(m().inputOutput,"surfaceTolerance",new(l().SFFloat)(0)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode)),new(u())(m().inputOutput,"gradients",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"IsoSurfaceVolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){_e.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._gradients.addInterest("set_gradients__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._contourStepSize.addInterest("updateShader",this),this._surfaceValues.addInterest("updateShader",this),this._surfaceTolerance.addInterest("updateShader",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_gradients__(),this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},set_gradients__:function(){this.gradientsNode=I()(m().X3DTexture3DNode,this._gradients)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e)t.removeInterest("updateShader",this),t.removeVolumeData(this);e.length=0;for(const t of this._renderStyle){const n=I()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e)t.addInterest("updateShader",this),t.addVolumeData(this)},set_voxels__:function(){this.voxelsNode=I()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();i+="\n",i+="uniform float surfaceValues ["+this._surfaceValues.length+"];\n",i+="uniform float surfaceTolerance;\n";for(const e of this.renderStyleNodes)i+=e.getUniformsText();if(r+="\n",r+=" // IsoSurfaceVolumeData\n",r+="\n",this.gradientsNode?(i+="\n",i+="uniform sampler3D gradients;\n",r+=" if (length (texture (gradients, texCoord) .xyz * 2.0 - 1.0) < surfaceTolerance)\n",r+=" discard;\n"):(i+="\n",i+="vec4\n",i+="getNormal (in vec3 texCoord)\n",i+="{\n",i+=" vec4 offset = vec4 (1.0 / vec3 (textureSize (x3d_Texture3D [0], 0)), 0.0);\n",i+=" float i0 = texture (x3d_Texture3D [0], texCoord + offset .xww) .r;\n",i+=" float i1 = texture (x3d_Texture3D [0], texCoord - offset .xww) .r;\n",i+=" float i2 = texture (x3d_Texture3D [0], texCoord + offset .wyw) .r;\n",i+=" float i3 = texture (x3d_Texture3D [0], texCoord - offset .wyw) .r;\n",i+=" float i4 = texture (x3d_Texture3D [0], texCoord + offset .wwz) .r;\n",i+=" float i5 = texture (x3d_Texture3D [0], texCoord - offset .wwz) .r;\n",i+=" vec3 n = vec3 (i1 - i0, i3 - i2, i5 - i4);\n",i+="\n",i+=" return vec4 (normalize (x3d_TextureNormalMatrix * n), length (n));\n",i+="}\n",r+=" if (getNormal (texCoord) .w < surfaceTolerance)\n",r+=" discard;\n"),r+="\n",r+=" float intensity = textureColor .r;\n",r+="\n",1===this._surfaceValues.length){const e=Math.abs(this._contourStepSize.getValue());if(0===e)r+=" if (intensity > surfaceValues [0])\n",r+=" {\n",r+=" textureColor = vec4 (vec3 (surfaceValues [0]), 1.0);\n",this.renderStyleNodes.length&&(r+=this.renderStyleNodes[0].getFunctionsText()),r+=" }\n",r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n";else{const t=[];for(let n=this._surfaceValues[0]-e;n>0;n-=e)t.unshift(n);t.push(this._surfaceValues[0]);for(let n=this._surfaceValues[0]+e;n<1;n+=e)t.push(n);r+=" if (false)\n",r+=" { }\n";for(let e=this._surfaceValues.length-1;e>=0;--e)r+=" else if (intensity > "+t[e]+")\n",r+=" {\n",r+=" textureColor = vec4 (vec3 ("+t[e]+"), 1.0);\n",this.renderStyleNodes.length&&(r+=this.renderStyleNodes[0].getFunctionsText()),r+=" }\n";r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n"}}else{r+=" if (false)\n",r+=" { }\n";for(let e=this._surfaceValues.length-1;e>=0;--e){if(r+=" else if (intensity > surfaceValues ["+e+"])\n",r+=" {\n",r+=" textureColor = vec4 (vec3 (surfaceValues ["+e+"]), 1.0);\n",this.renderStyleNodes.length){const t=Math.min(e,this.renderStyleNodes.length-1);r+=this.renderStyleNodes[t].getFunctionsText()}r+=" }\n"}r+=" else\n",r+=" {\n",r+=" discard;\n",r+=" }\n",r+="\n"}n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(Ne())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("VolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(Ne())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("VolumeDataFragmentShader"),a.setOptions(e),a.setup();const d=new(ye())(this.getExecutionContext());d._language="GLSL",d._parts.push(s),d._parts.push(a),d.setPrivate(!0),d.setName("VolumeDataShader"),d.addUserDefinedField(m().inputOutput,"surfaceValues",this._surfaceValues.copy()),d.addUserDefinedField(m().inputOutput,"surfaceTolerance",this._surfaceTolerance.copy()),this.gradientsNode&&d.addUserDefinedField(m().inputOutput,"gradients",new(l().SFNode)(this.gradientsNode)),o.addShaderFields(d);for(const e of this.renderStyleNodes)e.addShaderFields(d);const u=[];return this.addShaderUniformNames(u),d.setUniformNames(u),d.setup(),d}});const Ce=we;S().set("x_ite/Components/VolumeRendering/IsoSurfaceVolumeData",Ce);const ve=Ce;function Fe(e){N.call(this,e),this.addType(m().ProjectionVolumeStyle)}Fe.prototype=Object.assign(Object.create(N.prototype),{constructor:Fe,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"type",new(l().SFString)("MAX")),new(u())(m().inputOutput,"intensityThreshold",new(l().SFFloat)(0))]),getTypeName:function(){return"ProjectionVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},addShaderFields:function(e){this._enabled.getValue()&&e.addUserDefinedField(m().inputOutput,"intensityThreshold_"+this.getId(),this._intensityThreshold.copy())},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";switch(e+="\n",e+="// ProjectionVolumeStyle\n",e+="\n",e+="uniform float intensityThreshold_"+this.getId()+";\n",e+="\n",e+="vec4\n",e+="getProjectionStyle_"+this.getId()+"(in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",this._type.getValue()){default:case"MAX":case"AVERAGE":e+=" float projectionColor = 0.0;\n";break;case"MIN":e+=" float projectionColor = 1.0;\n"}switch(e+=" const int samples = 32;\n",e+=" vec3 step = normalize (x3d_TextureNormalMatrix * vec3 (0.0, 0.0, 1.0)) / float (samples);\n",e+=" vec3 ray = texCoord - step * float (samples) * 0.5;\n",e+=" bool first = false;\n",e+="\n",e+=" for (int i = 0; i < samples; ++ i, ray += step)\n",e+=" {\n",e+=" if (ray .s < 0.0 || ray .s > 1.0)\n",e+=" continue;\n",e+="\n",e+=" if (ray .t < 0.0 || ray .t > 1.0)\n",e+=" continue;\n",e+="\n",e+=" if (ray .p < 0.0 || ray .p > 1.0)\n",e+=" continue;\n",e+="\n",e+=" float intensity = texture (x3d_Texture3D [0], ray) .r;\n",e+="\n",this._type.getValue()){default:case"MAX":e+=" if (intensity < intensityThreshold_"+this.getId()+")\n",e+=" continue;\n",e+="\n",e+=" if (intensityThreshold_"+this.getId()+" > 0.0 && first)\n",e+=" break;\n",e+="\n",e+=" if (intensity <= projectionColor)\n",e+=" {\n",e+=" first = true;\n",e+=" continue;\n",e+=" }\n",e+="\n",e+=" projectionColor = intensity;\n";break;case"MIN":e+=" if (intensity < intensityThreshold_"+this.getId()+")\n",e+=" continue;\n",e+="\n",e+=" if (intensityThreshold_"+this.getId()+" > 0.0 && first)\n",e+=" break;\n",e+="\n",e+=" if (intensity >= projectionColor)\n",e+=" {\n",e+=" first = true;\n",e+=" continue;\n",e+=" }\n",e+="\n",e+=" projectionColor = intensity;\n";break;case"AVERAGE":e+=" projectionColor += intensity;\n"}return e+=" }\n",e+="\n","AVERAGE"===this._type.getValue()&&(e+=" projectionColor /= float (samples);\n"),e+=" return vec4 (vec3 (projectionColor), originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ProjectionVolumeStyle\n",e+="\n",e+=" textureColor = getProjectionStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const Ie=Fe;S().set("x_ite/Components/VolumeRendering/ProjectionVolumeStyle",Ie);const Ve=Ie;function Te(e){_e.call(this,e),this.addType(m().SegmentedVolumeData),this.segmentIdentifiersNode=null,this.renderStyleNodes=[]}Te.prototype=Object.assign(Object.create(_e.prototype),{constructor:Te,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"segmentEnabled",new(l().MFBool)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"segmentIdentifiers",new(l().SFNode)),new(u())(m().inputOutput,"renderStyle",new(l().MFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"SegmentedVolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){_e.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._segmentIdentifiers.addInterest("set_segmentIdentifiers__",this),this._renderStyle.addInterest("set_renderStyle__",this),this._segmentEnabled.addInterest("updateShader",this),this._segmentIdentifiers.addInterest("updateShader",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_segmentIdentifiers__(),this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},getSegmentEnabled:function(e){return!(e<this._segmentEnabled.length)||this._segmentEnabled[e]},set_segmentIdentifiers__:function(){this.segmentIdentifiersNode=I()(m().X3DTexture3DNode,this._segmentIdentifiers)},set_renderStyle__:function(){const e=this.renderStyleNodes;for(const t of e)t.removeInterest("updateShader",this),t.removeVolumeData(this);e.length=0;for(const t of this._renderStyle){const n=I()(m().X3DComposableVolumeRenderStyleNode,t);n&&e.push(n)}for(const t of e)t.addInterest("updateShader",this),t.addVolumeData(this)},set_voxels__:function(){this.voxelsNode=I()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();if(this.segmentIdentifiersNode?(i+="\n",i+="uniform sampler3D segmentIdentifiers;\n",i+="\n",r+="\n",r+=" int segment = int (texture (segmentIdentifiers, texCoord) .r * 255.0);\n"):r+=" int segment = 0;\n",this.renderStyleNodes.length){r+="\n",r+=" switch (segment)\n",r+=" {\n";for(const[e,t]of this.renderStyleNodes.entries())r+=" case "+e+":\n",r+=" {\n",this.getSegmentEnabled(e)?(i+=t.getUniformsText(),r+=t.getFunctionsText(),r+=" break;\n"):r+=" discard;\n",r+=" }\n";r+=" }\n"}n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(Ne())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("SegmentedVolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(Ne())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("SegmentedVolumeDataFragmentShader"),a.setOptions(e),a.setup();const d=new(ye())(this.getExecutionContext());d._language="GLSL",d._parts.push(s),d._parts.push(a),d.setPrivate(!0),d.setName("SegmentedVolumeDataShader"),this.segmentIdentifiersNode&&d.addUserDefinedField(m().inputOutput,"segmentIdentifiers",new(l().SFNode)(this.segmentIdentifiersNode)),o.addShaderFields(d);for(const[e,t]of this.renderStyleNodes.entries())this.getSegmentEnabled(e)&&t.addShaderFields(d);const u=[];return this.addShaderUniformNames(u),d.setUniformNames(u),d.setup(),d}});const be=Te;S().set("x_ite/Components/VolumeRendering/SegmentedVolumeData",be);const De=be;function Oe(e){v.call(this,e),this.addType(m().ShadedVolumeStyle)}Oe.prototype=Object.assign(Object.create(v.prototype),{constructor:Oe,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"lighting",new(l().SFBool)),new(u())(m().inputOutput,"shadows",new(l().SFBool)),new(u())(m().initializeOnly,"phaseFunction",new(l().SFString)("Henyey-Greenstein")),new(u())(m().inputOutput,"material",new(l().SFNode)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"ShadedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._material.addInterest("set_material__",this),this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_material__(),this.set_surfaceNormals__())},set_material__:function(){this.materialNode&&this.materialNode.removeInterest("addNodeEvent",this),this.materialNode=I()(m().X3DMaterialNode,this._material),this.materialNode&&this.materialNode.addInterest("addNodeEvent",this)},set_surfaceNormals__:function(){this.surfaceNormalsNode=I()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(this.materialNode&&(e.addUserDefinedField(m().inputOutput,"ambientIntensity_"+this.getId(),this.materialNode._ambientIntensity.copy()),e.addUserDefinedField(m().inputOutput,"diffuseColor_"+this.getId(),this.materialNode._diffuseColor.copy()),e.addUserDefinedField(m().inputOutput,"specularColor_"+this.getId(),this.materialNode._specularColor.copy()),e.addUserDefinedField(m().inputOutput,"emissiveColor_"+this.getId(),this.materialNode._emissiveColor.copy()),e.addUserDefinedField(m().inputOutput,"shininess_"+this.getId(),this.materialNode._shininess.copy()),e.addUserDefinedField(m().inputOutput,"transparency_"+this.getId(),this.materialNode._transparency.copy())),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// ShadedVolumeStyle\n",e+="\n",e+="uniform float ambientIntensity_"+this.getId()+";\n",e+="uniform vec3 diffuseColor_"+this.getId()+";\n",e+="uniform vec3 specularColor_"+this.getId()+";\n",e+="uniform vec3 emissiveColor_"+this.getId()+";\n",e+="uniform float shininess_"+this.getId()+";\n",e+="uniform float transparency_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="float\n",e+="getSpotFactor_"+this.getId()+" (const in float cutOffAngle, const in float beamWidth, const in vec3 L, const in vec3 d)\n",e+="{\n",e+=" float spotAngle = acos (clamp (dot (-L, d), -1.0, 1.0));\n",e+="\n",e+=" if (spotAngle >= cutOffAngle)\n",e+=" return 0.0;\n",e+=" else if (spotAngle <= beamWidth)\n",e+=" return 1.0;\n",e+="\n",e+=" return (spotAngle - cutOffAngle) / (beamWidth - cutOffAngle);\n",e+="}\n",e+="\n",e+="vec4\n",e+="getShadedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec4 shadedColor = vec4 (0.0);\n",this._lighting.getValue()?(this.materialNode?(e+=" vec3 diffuseFactor = diffuseColor_"+this.getId()+";\n",e+=" vec3 ambientTerm = diffuseFactor * ambientIntensity_"+this.getId()+";\n",e+="\n",e+=" shadedColor .a = originalColor .a * (1.0 - transparency_"+this.getId()+");\n"):(e+=" vec3 diffuseFactor = originalColor .rgb;\n",e+=" vec3 ambientTerm = vec3 (0.0);\n",e+="\n",e+=" shadedColor .a = originalColor .a;\n"),e+="\n",e+=" vec3 N = surfaceNormal .xyz;\n",e+=" vec3 V = normalize (-vertex); // normalized vector from point on geometry to viewer's position\n",e+="\n",e+=" for (int i = 0; i < X3D_NUM_LIGHTS; ++ i)\n",e+=" {\n",e+=" x3d_LightSourceParameters light = x3d_LightSource [i];\n",e+="\n",e+=" vec3 vL = light .location - vertex; // Light to fragment\n",e+=" float dL = length (light .matrix * vL);\n",e+=" bool di = light .type == x3d_DirectionalLight;\n",e+="\n",e+=" if (di || dL <= light .radius)\n",e+=" {\n",e+=" vec3 d = light .direction;\n",e+=" vec3 c = light .attenuation;\n",e+=" vec3 L = di ? -d : normalize (vL); // Normalized vector from point on geometry to light source i position.\n",e+=" vec3 H = normalize (L + V); // Specular term\n",e+="\n",e+=" float lightAngle = max (dot (N, L), 0.0); // Angle between normal and light ray.\n",e+=" vec3 diffuseTerm = diffuseFactor * lightAngle;\n",e+=" float specularFactor = shininess_"+this.getId()+" > 0.0 ? pow (max (dot (N, H), 0.0), shininess_"+this.getId()+" * 128.0) : 1.0;\n",e+=" vec3 specularTerm = light .intensity * specularColor_"+this.getId()+" * specularFactor;\n",e+="\n",e+=" float attenuationFactor = di ? 1.0 : 1.0 / max (dot (c, vec3 (1.0, dL, dL * dL)), 1.0);\n",e+=" float spotFactor = light .type == x3d_SpotLight ? getSpotFactor_"+this.getId()+" (light .cutOffAngle, light .beamWidth, L, d) : 1.0;\n",e+=" float attenuationSpotFactor = attenuationFactor * spotFactor;\n",e+=" vec3 ambientColor = light .ambientIntensity * ambientTerm;\n",e+=" vec3 diffuseSpecularColor = light .intensity * (diffuseTerm + specularTerm);\n",e+="\n",e+=" shadedColor .rgb += attenuationSpotFactor * light .color * (ambientColor + diffuseSpecularColor);\n",e+=" }\n",e+="\n",e+=" shadedColor .rgb += emissiveColor_"+this.getId()+";\n",e+=" }\n"):this.materialNode?(e+=" shadedColor .rgb = diffuseColor_"+this.getId()+";\n",e+=" shadedColor .a = originalColor .a * (1.0 - transparency_"+this.getId()+");\n"):e+=" shadedColor = originalColor;\n",e+="\n",e+=" return shadedColor;\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ShadedVolumeStyle\n",e+="\n",e+=" textureColor = getShadedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const Ee=Oe;S().set("x_ite/Components/VolumeRendering/ShadedVolumeStyle",Ee);const Xe=Ee;function Be(e){v.call(this,e),this.addType(m().SilhouetteEnhancementVolumeStyle)}Be.prototype=Object.assign(Object.create(v.prototype),{constructor:Be,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"silhouetteRetainedOpacity",new(l().SFFloat)(1)),new(u())(m().inputOutput,"silhouetteBoundaryOpacity",new(l().SFFloat)(0)),new(u())(m().inputOutput,"silhouetteSharpness",new(l().SFFloat)(.5)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"SilhouetteEnhancementVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=I()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"silhouetteRetainedOpacity_"+this.getId(),this._silhouetteRetainedOpacity.copy()),e.addUserDefinedField(m().inputOutput,"silhouetteBoundaryOpacity_"+this.getId(),this._silhouetteBoundaryOpacity.copy()),e.addUserDefinedField(m().inputOutput,"silhouetteSharpness_"+this.getId(),this._silhouetteSharpness.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// SilhouetteEnhancementVolumeStyle\n",e+="\n",e+="uniform float silhouetteRetainedOpacity_"+this.getId()+";\n",e+="uniform float silhouetteBoundaryOpacity_"+this.getId()+";\n",e+="uniform float silhouetteSharpness_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getSilhouetteEnhancementStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+=" \n",e+=" float silhouetteRetainedOpacity = silhouetteRetainedOpacity_"+this.getId()+";\n",e+=" float silhouetteBoundaryOpacity = silhouetteBoundaryOpacity_"+this.getId()+";\n",e+=" float silhouetteSharpness = silhouetteSharpness_"+this.getId()+";\n",e+="\n",e+=" return vec4 (originalColor .rgb, originalColor .a * (silhouetteRetainedOpacity + silhouetteBoundaryOpacity * pow (1.0 - abs (dot (surfaceNormal .xyz, normalize (vertex))), silhouetteSharpness)));\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // SilhouetteEnhancementVolumeStyle\n",e+="\n",e+=" textureColor = getSilhouetteEnhancementStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const Me=Be;S().set("x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle",Me);const Ue=Me;function Pe(e){v.call(this,e),this.addType(m().ToneMappedVolumeStyle)}Pe.prototype=Object.assign(Object.create(v.prototype),{constructor:Pe,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"enabled",new(l().SFBool)(!0)),new(u())(m().inputOutput,"coolColor",new(l().SFColorRGBA)(0,0,1,0)),new(u())(m().inputOutput,"warmColor",new(l().SFColorRGBA)(1,1,0,0)),new(u())(m().inputOutput,"surfaceNormals",new(l().SFNode))]),getTypeName:function(){return"ToneMappedVolumeStyle"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"renderStyle"},initialize:function(){v.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._surfaceNormals.addInterest("set_surfaceNormals__",this),this.set_surfaceNormals__())},set_surfaceNormals__:function(){this.surfaceNormalsNode=I()(m().X3DTexture3DNode,this._surfaceNormals)},addShaderFields:function(e){this._enabled.getValue()&&(e.addUserDefinedField(m().inputOutput,"coolColor_"+this.getId(),this._coolColor.copy()),e.addUserDefinedField(m().inputOutput,"warmColor_"+this.getId(),this._warmColor.copy()),this.surfaceNormalsNode&&e.addUserDefinedField(m().inputOutput,"surfaceNormals_"+this.getId(),new(l().SFNode)(this.surfaceNormalsNode)))},getUniformsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+="// ToneMappedVolumeStyle\n",e+="\n",e+="uniform vec4 coolColor_"+this.getId()+";\n",e+="uniform vec4 warmColor_"+this.getId()+";\n",e+=this.getNormalText(this.surfaceNormalsNode),e+="\n",e+="vec4\n",e+="getToneMappedStyle_"+this.getId()+" (in vec4 originalColor, in vec3 texCoord)\n",e+="{\n",e+=" vec4 surfaceNormal = getNormal_"+this.getId()+" (texCoord);\n",e+="\n",e+=" if (surfaceNormal .w == 0.0)\n",e+=" return vec4 (0.0);\n",e+="\n",e+=" vec3 toneColor = vec3 (0.0);\n",e+=" vec3 coolColor = coolColor_"+this.getId()+" .rgb;\n",e+=" vec3 warmColor = warmColor_"+this.getId()+" .rgb;\n",e+="\n",e+=" for (int i = 0; i < X3D_NUM_LIGHTS; ++ i)\n",e+=" {\n",e+=" x3d_LightSourceParameters light = x3d_LightSource [i];\n",e+="\n",e+=" vec3 L = light .type == x3d_DirectionalLight ? -light .direction : normalize (light .location - vertex);\n",e+=" float colorFactor = dot (L, surfaceNormal .xyz) * 0.5 + 0.5;\n",e+="\n",e+=" toneColor += mix (warmColor .rgb, coolColor .rgb, colorFactor);\n",e+=" }\n",e+="\n",e+=" return vec4 (toneColor, originalColor .a);\n",e+="}\n",e},getFunctionsText:function(){if(!this._enabled.getValue())return"";let e="";return e+="\n",e+=" // ToneMappedVolumeStyle\n",e+="\n",e+=" textureColor = getToneMappedStyle_"+this.getId()+" (textureColor, texCoord);\n",e}});const Le=Pe;S().set("x_ite/Components/VolumeRendering/ToneMappedVolumeStyle",Le);const Ae=Le;function ze(e){_e.call(this,e),this.addType(m().VolumeData),this.renderStyleNode=null}ze.prototype=Object.assign(Object.create(_e.prototype),{constructor:ze,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(c())([new(u())(m().inputOutput,"metadata",new(l().SFNode)),new(u())(m().inputOutput,"dimensions",new(l().SFVec3f)(1,1,1)),new(u())(m().inputOutput,"visible",new(l().SFBool)(!0)),new(u())(m().inputOutput,"bboxDisplay",new(l().SFBool)),new(u())(m().initializeOnly,"bboxCenter",new(l().SFVec3f)(0,0,0)),new(u())(m().initializeOnly,"bboxSize",new(l().SFVec3f)(-1,-1,-1)),new(u())(m().inputOutput,"renderStyle",new(l().SFNode)),new(u())(m().inputOutput,"voxels",new(l().SFNode))]),getTypeName:function(){return"VolumeData"},getComponentName:function(){return"VolumeRendering"},getContainerField:function(){return"children"},initialize:function(){_e.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this._renderStyle.addInterest("set_renderStyle__",this),this._voxels.addInterest("set_voxels__",this),this._renderStyle.addInterest("updateShader",this),this.getAppearance()._texture=this._voxels,this.set_renderStyle__(),this.set_voxels__(),this.updateShader())},set_renderStyle__:function(){this.renderStyleNode&&(this.renderStyleNode.removeInterest("updateShader",this),this.renderStyleNode.removeVolumeData(this)),this.renderStyleNode=I()(m().X3DVolumeRenderStyleNode,this._renderStyle),this.renderStyleNode&&(this.renderStyleNode.addInterest("updateShader",this),this.renderStyleNode.addVolumeData(this))},set_voxels__:function(){this.voxelsNode=I()(m().X3DTexture3DNode,this._voxels),this.voxelsNode?this.getAppearance()._texture=this._voxels:this.getAppearance()._texture=this.getBrowser().getDefaultVoxels(this.getExecutionContext())},createShader:function(e,t,n){const o=this.getBrowser().getDefaultVolumeStyle();let i=o.getUniformsText(),r=o.getFunctionsText();this.renderStyleNode&&(i+=this.renderStyleNode.getUniformsText(),r+=this.renderStyleNode.getFunctionsText()),n=(n=n.replace(/\/\/ VOLUME_STYLES_UNIFORMS\n/,i)).replace(/\/\/ VOLUME_STYLES_FUNCTIONS\n/,r);const s=new(Ne())(this.getExecutionContext());s._url.push("data:x-shader/x-vertex,"+t),s.setPrivate(!0),s.setName("VolumeDataVertexShader"),s.setOptions(e),s.setup();const a=new(Ne())(this.getExecutionContext());a._type="FRAGMENT",a._url.push("data:x-shader/x-fragment,"+n),a.setPrivate(!0),a.setName("VolumeDataFragmentShader"),a.setOptions(e),a.setup();const l=new(ye())(this.getExecutionContext());l._language="GLSL",l._parts.push(s),l._parts.push(a),l.setPrivate(!0),l.setName("VolumeDataShader"),o.addShaderFields(l),this.renderStyleNode&&this.renderStyleNode.addShaderFields(l);const d=[];return this.addShaderUniformNames(d),l.setUniformNames(d),l.setup(),l}});const Re=ze;S().set("x_ite/Components/VolumeRendering/VolumeData",Re);const je=Re;n().addComponent({name:"VolumeRendering",types:{BlendedVolumeStyle:A,BoundaryEnhancementVolumeStyle:j,CartoonVolumeStyle:H,ComposedVolumeStyle:W,EdgeEnhancementVolumeStyle:Z,IsoSurfaceVolumeData:ve,OpacityMapVolumeStyle:b,ProjectionVolumeStyle:Ve,SegmentedVolumeData:De,ShadedVolumeStyle:Xe,SilhouetteEnhancementVolumeStyle:Ue,ToneMappedVolumeStyle:Ae,VolumeData:je},abstractTypes:{X3DComposableVolumeRenderStyleNode:v,X3DVolumeDataNode:_e,X3DVolumeRenderStyleNode:N},browserContext:U});const Ge=void 0;S().set("assets/components/VolumeRendering",Ge)})();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* X_ITE v8.
|
|
1
|
+
/* X_ITE v8.3.0 */(() => { // webpackBootstrap
|
|
2
2
|
/******/ "use strict";
|
|
3
3
|
/******/ // The require scope
|
|
4
4
|
/******/ var __webpack_require__ = {};
|
|
@@ -39,25 +39,28 @@ var __webpack_exports__ = {};
|
|
|
39
39
|
// UNUSED EXPORTS: default
|
|
40
40
|
|
|
41
41
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
|
|
42
|
-
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
42
|
+
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Components");
|
|
43
43
|
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
|
|
44
44
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
|
|
45
|
-
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
45
|
+
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Fields");
|
|
46
46
|
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
|
|
47
47
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
|
|
48
|
-
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
48
|
+
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Base/X3DFieldDefinition");
|
|
49
49
|
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
|
|
50
50
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
|
|
51
|
-
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
51
|
+
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Base/FieldDefinitionArray");
|
|
52
52
|
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
|
|
53
53
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Shape/X3DAppearanceChildNode\")"
|
|
54
|
-
const X3DAppearanceChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
54
|
+
const X3DAppearanceChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Components/Shape/X3DAppearanceChildNode");
|
|
55
55
|
var X3DAppearanceChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DAppearanceChildNode_namespaceObject);
|
|
56
56
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Rendering/TraverseType\")"
|
|
57
|
-
const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
57
|
+
const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Rendering/TraverseType");
|
|
58
58
|
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
|
|
59
|
-
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.
|
|
59
|
+
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Base/X3DConstants");
|
|
60
60
|
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
|
|
61
|
+
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
|
|
62
|
+
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.3.0")] .require ("x_ite/Namespace");
|
|
63
|
+
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
|
|
61
64
|
;// CONCATENATED MODULE: ./src/x_ite/Components/X_ITE/BlendMode.js
|
|
62
65
|
/*******************************************************************************
|
|
63
66
|
*
|
|
@@ -99,7 +102,7 @@ var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_names
|
|
|
99
102
|
* details (a copy is included in the LICENSE file that accompanied this code).
|
|
100
103
|
*
|
|
101
104
|
* You should have received a copy of the GNU General Public License version 3
|
|
102
|
-
* along with X_ITE. If not, see <
|
|
105
|
+
* along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
|
|
103
106
|
* copy of the GPLv3 License.
|
|
104
107
|
*
|
|
105
108
|
* For Silvio, Joy and Adi.
|
|
@@ -249,8 +252,11 @@ BlendMode .prototype = Object .assign (Object .create ((X3DAppearanceChildNode_d
|
|
|
249
252
|
},
|
|
250
253
|
});
|
|
251
254
|
|
|
252
|
-
|
|
255
|
+
const __default__ = BlendMode;
|
|
256
|
+
;
|
|
253
257
|
|
|
258
|
+
Namespace_default().set ("x_ite/Components/X_ITE/BlendMode", __default__);
|
|
259
|
+
/* harmony default export */ const X_ITE_BlendMode = (__default__);
|
|
254
260
|
;// CONCATENATED MODULE: ./src/assets/components/X_ITE.js
|
|
255
261
|
/*******************************************************************************
|
|
256
262
|
*
|
|
@@ -292,7 +298,7 @@ BlendMode .prototype = Object .assign (Object .create ((X3DAppearanceChildNode_d
|
|
|
292
298
|
* details (a copy is included in the LICENSE file that accompanied this code).
|
|
293
299
|
*
|
|
294
300
|
* You should have received a copy of the GNU General Public License version 3
|
|
295
|
-
* along with X_ITE. If not, see <
|
|
301
|
+
* along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
|
|
296
302
|
* copy of the GPLv3 License.
|
|
297
303
|
*
|
|
298
304
|
* For Silvio, Joy and Adi.
|
|
@@ -312,7 +318,10 @@ Components_default().addComponent ({
|
|
|
312
318
|
{ },
|
|
313
319
|
});
|
|
314
320
|
|
|
315
|
-
|
|
321
|
+
const X_ITE_default_ = undefined;
|
|
322
|
+
;
|
|
316
323
|
|
|
324
|
+
Namespace_default().set ("assets/components/X_ITE", X_ITE_default_);
|
|
325
|
+
/* harmony default export */ const X_ITE = ((/* unused pure expression or super */ null && (X_ITE_default_)));
|
|
317
326
|
/******/ })()
|
|
318
327
|
;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/* X_ITE v8.
|
|
1
|
+
/* X_ITE v8.3.0 */(()=>{"use strict";var t={n:e=>{var o=e&&e.__esModule?()=>e.default:()=>e;return t.d(o,{a:o}),o},d:(e,o)=>{for(var i in o)t.o(o,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:o[i]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const e=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components");var o=t.n(e);const i=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Fields");var s=t.n(i);const a=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/X3DFieldDefinition");var n=t.n(a);const r=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/FieldDefinitionArray");var _=t.n(r);const c=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Components/Shape/X3DAppearanceChildNode");var p=t.n(c);window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Rendering/TraverseType");const h=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Base/X3DConstants");var u=t.n(h);const T=window[Symbol.for("X_ITE.X3D-8.3.0")].require("x_ite/Namespace");var l=t.n(T);function A(t){p().call(this,t),this.addType(u().BlendMode),this.factorTypes=new Map,this.equationTypes=new Map}A.prototype=Object.assign(Object.create(p().prototype),{constructor:A,[Symbol.for("X_ITE.X3DBaseNode.fieldDefinitions")]:new(_())([new(n())(u().inputOutput,"metadata",new(s().SFNode)),new(n())(u().inputOutput,"blendColor",new(s().SFColorRGBA)),new(n())(u().inputOutput,"sourceColorFactor",new(s().SFString)("SRC_ALPHA")),new(n())(u().inputOutput,"sourceAlphaFactor",new(s().SFString)("ONE")),new(n())(u().inputOutput,"destinationColorFactor",new(s().SFString)("ONE_MINUS_SRC_ALPHA")),new(n())(u().inputOutput,"destinationAlphaFactor",new(s().SFString)("ONE_MINUS_SRC_ALPHA")),new(n())(u().inputOutput,"colorEquation",new(s().SFString)("FUNC_ADD")),new(n())(u().inputOutput,"alphaEquation",new(s().SFString)("FUNC_ADD"))]),getTypeName:function(){return"BlendMode"},getComponentName:function(){return"X_ITE"},getContainerField:function(){return"blendMode"},initialize:function(){p().prototype.initialize.call(this);const t=this.getBrowser().getContext(),e=t.getExtension("EXT_blend_minmax");this.factorTypes.set("ZERO",t.ZERO),this.factorTypes.set("ONE",t.ONE),this.factorTypes.set("SRC_COLOR",t.SRC_COLOR),this.factorTypes.set("ONE_MINUS_SRC_COLOR",t.ONE_MINUS_SRC_COLOR),this.factorTypes.set("DST_COLOR",t.DST_COLOR),this.factorTypes.set("ONE_MINUS_DST_COLOR",t.ONE_MINUS_DST_COLOR),this.factorTypes.set("SRC_ALPHA",t.SRC_ALPHA),this.factorTypes.set("ONE_MINUS_SRC_ALPHA",t.ONE_MINUS_SRC_ALPHA),this.factorTypes.set("DST_ALPHA",t.DST_ALPHA),this.factorTypes.set("ONE_MINUS_DST_ALPHA",t.ONE_MINUS_DST_ALPHA),this.factorTypes.set("SRC_ALPHA_SATURATE",t.SRC_ALPHA_SATURATE),this.factorTypes.set("CONSTANT_COLOR",t.CONSTANT_COLOR),this.factorTypes.set("ONE_MINUS_CONSTANT_COLOR",t.ONE_MINUS_CONSTANT_COLOR),this.factorTypes.set("CONSTANT_ALPHA",t.CONSTANT_ALPHA),this.factorTypes.set("ONE_MINUS_CONSTANT_ALPHA",t.ONE_MINUS_CONSTANT_ALPHA),this.equationTypes.set("FUNC_ADD",t.FUNC_ADD),this.equationTypes.set("FUNC_SUBTRACT",t.FUNC_SUBTRACT),this.equationTypes.set("FUNC_REVERSE_SUBTRACT",t.FUNC_REVERSE_SUBTRACT),this.equationTypes.set("MIN",t.MIN||e&&e.MIN_EXT),this.equationTypes.set("MAX",t.MAX||e&&e.MAX_EXT),this._sourceColorFactor.addInterest("set_sourceColorFactor__",this),this._sourceAlphaFactor.addInterest("set_sourceAlphaFactor__",this),this._destinationColorFactor.addInterest("set_destinationColorFactor__",this),this._destinationAlphaFactor.addInterest("set_destinationAlphaFactor__",this),this._colorEquation.addInterest("set_colorEquation__",this),this._alphaEquation.addInterest("set_alphaEquation__",this),this.set_sourceColorFactor__(),this.set_sourceAlphaFactor__(),this.set_destinationColorFactor__(),this.set_destinationAlphaFactor__(),this.set_colorEquation__(),this.set_alphaEquation__()},set_sourceColorFactor__:function(){this.sourceColorFactorType=this.factorTypes.get(this._sourceColorFactor.getValue()),void 0===this.sourceColorFactorType&&(this.sourceColorFactorType=this.factorTypes.get("SRC_ALPHA"))},set_sourceAlphaFactor__:function(){this.sourceAlphaFactorType=this.factorTypes.get(this._sourceAlphaFactor.getValue()),void 0===this.sourceAlphaFactorType&&(this.sourceAlphaFactorType=this.factorTypes.get("ONE"))},set_destinationColorFactor__:function(){this.destinationColorFactorType=this.factorTypes.get(this._destinationColorFactor.getValue()),void 0===this.destinationColorFactorType&&(this.destinationColorFactorType=this.factorTypes.get("ONE_MINUS_SRC_ALPHA"))},set_destinationAlphaFactor__:function(){this.destinationAlphaFactorType=this.factorTypes.get(this._destinationAlphaFactor.getValue()),void 0===this.destinationAlphaFactorType&&(this.destinationAlphaFactorType=this.factorTypes.get("ONE_MINUS_SRC_ALPHA"))},set_colorEquation__:function(){this.colorEquationType=this.equationTypes.get(this._colorEquation.getValue()),void 0===this.colorEquationType&&(this.colorEquationType=this.equationTypes.get("FUNC_ADD"))},set_alphaEquation__:function(){this.alphaEquationType=this.equationTypes.get(this._alphaEquation.getValue()),void 0===this.alphaEquationType&&(this.alphaEquationType=this.equationTypes.get("FUNC_ADD"))},enable:function(t){const e=this._blendColor.getValue();t.blendColor(e.r,e.g,e.b,e.a),t.blendFuncSeparate(this.sourceColorFactorType,this.destinationColorFactorType,this.sourceAlphaFactorType,this.destinationAlphaFactorType),t.blendEquationSeparate(this.colorEquationType,this.alphaEquationType)},disable:function(t){t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),t.blendEquationSeparate(t.FUNC_ADD,t.FUNC_ADD)}});const S=A;l().set("x_ite/Components/X_ITE/BlendMode",S);const C=S;o().addComponent({name:"X_ITE",types:{BlendMode:C},abstractTypes:{}});const d=void 0;l().set("assets/components/X_ITE",d)})();
|
package/dist/x_ite.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
/* X_ITE v8.0.0 */@import url("https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic");:host,X3DCanvas{display:inline-block;overflow:hidden;outline:none;margin:0;border:0;border-radius:0;padding:0;width:300px;height:150px;user-select:none;-webkit-user-select:none}:host([hidden]){display:none}:host(.x_ite-fullscreen){width:100vw !important;height:100vh !important}X3DCanvas>:not(.x_ite-private-browser,.x_ite-private-menu){display:none}.x_ite-private-browser{overflow:hidden;position:relative;margin:0;border:0;border-radius:0;padding:0;width:100%;height:100%;user-select:none;-webkit-user-select:none}.x_ite-private-surface{position:absolute;margin:0;border:0;border-radius:0;padding:0;inset:0}.x_ite-private-canvas{display:block;outline:none;margin:0;border:0;border-radius:0;padding:0;width:100%;height:100%}.x_ite-private-notification{position:absolute;top:20px;right:-4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:5px;color:white;font-family:PT Sans, sans-serif;font-size:10pt;letter-spacing:unset;line-height:1;white-space:pre;pointer-events:none}.x_ite-private-notification span{padding:0 24px 0 20px;background:url("assets/images/icon.bw.png") no-repeat 0 2px}.x_ite-private-browser-timings{position:absolute;bottom:-4px;left:-4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border-top:4px solid rgba(60,60,60,0.61803);border-right:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:10px 15px 14px 14px;color:white;font-family:PT Sans, sans-serif;font-size:9pt;white-space:pre;pointer-events:none}.x_ite-private-browser-timings table,.x_ite-private-browser-timings thead,.x_ite-private-browser-timings tbody,.x_ite-private-browser-timings tfoot,.x_ite-private-browser-timings tr,.x_ite-private-browser-timings th,.x_ite-private-browser-timings td{box-sizing:border-box;outline:0;margin:0;border:0;border-radius:0;padding:0;background:none;color:white;font-size:inherit;font-weight:normal;font-style:normal;letter-spacing:unset;line-height:1;text-align:left}.x_ite-private-browser-timings table{overflow:hidden;background:url("assets/images/Time.png") no-repeat;width:100%;max-width:100%;border-collapse:separate;border-spacing:2px;empty-cells:show}.x_ite-private-browser-timings thead th{padding-left:20px;padding-bottom:5px;font-weight:bold}.x_ite-private-browser-timings td:first-child{padding-right:10px}.x_ite-private-browser-timings tr.x_ite-private-more td{padding-bottom:5px}.x_ite-private-browser-timings td{padding-bottom:2px}.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{box-sizing:border-box;border:0;border-radius:10px;padding:2px 2px 4px 2px;width:100%;background:rgba(0,0,0,0.381966);color:white;font-family:PT Sans, sans-serif;font-style:italic;font-size:9pt;letter-spacing:unset;line-height:1.1;text-align:center;pointer-events:all;cursor:pointer}.x_ite-private-world-info-overlay{position:absolute;inset:0}.x_ite-private-world-info{overflow-y:auto;position:absolute;inset:0;margin:21pt;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:15px;padding:21pt}.x_ite-private-world-info .x_ite-private-world-info-top,.x_ite-private-world-info .x_ite-private-world-info-title,.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info p{box-sizing:border-box;outline:0;margin:0;border:0;border-radius:0;padding:0;background:none;color:white;font-family:PT Sans, sans-serif;font-size:inherit;font-weight:inherit;font-style:normal;letter-spacing:unset;line-height:1.2;text-align:left}.x_ite-private-world-info .x_ite-private-world-info-top{font-weight:bold;font-style:italic;font-size:9pt}.x_ite-private-world-info .x_ite-private-world-info-title{margin:0.3em 0 1em 0;font-weight:bold;font-size:21pt}.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info .x_ite-private-world-info-info p{margin:1em 0 1em 0;font-size:14pt}.x_ite-private-world-info a{text-decoration:underline;color:#fd9f2e}.x_ite-private-menu.context-menu-layer{position:fixed;z-index:10000;inset:0}.x_ite-private-menu.context-menu-list{position:fixed;z-index:10000;isolation:isolate}.x_ite-private-menu .context-menu-list{position:absolute}.x_ite-private-menu.context-menu-list,.x_ite-private-menu .context-menu-list{display:block;box-sizing:border-box;min-width:120px;margin:0;margin-left:1px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:5px 10px 9px 9px;color:white;font-family:PT Sans, sans-serif;font-size:10pt;white-space:pre;line-height:1.2;list-style-type:none}.x_ite-private-menu .context-menu-item{cursor:pointer;position:relative;border-radius:5px;margin:0;font-size:10pt;line-height:1;letter-spacing:unset;text-align:left}.x_ite-private-menu .context-menu-item:hover:not(.context-menu-not-selectable){background-color:rgba(255,69,58,0.8)}.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{cursor:default;margin:2px 0;border-top:0;border-bottom:1px solid #8a8a8a;padding-top:0;padding-bottom:0}.x_ite-private-menu .context-menu-separator+.context-menu-separator{display:none !important}.x_ite-private-menu .context-menu-submenu:after{content:"";position:absolute;display:block;right:0;top:8px;margin-right:2px;border-style:solid;border-width:4px 0 4px 5px;border-color:transparent transparent transparent #eee;width:0;height:0}.x_ite-private-menu .context-menu-item>span{display:block;width:100%;padding:5px 24px}.x_ite-private-menu .context-menu-input>label{cursor:pointer;display:block;box-sizing:border-box;margin:0;padding:5px 24px;width:100%;font-size:10pt;letter-spacing:unset;line-height:1}.x_ite-private-menu .context-menu-input>label>*{vertical-align:top;font-size:10pt;font-weight:normal;letter-spacing:unset;line-height:1}.x_ite-private-menu .context-menu-item>label>input{all:revert;cursor:pointer}.x_ite-private-menu .context-menu-input>label>input[type="checkbox"],.x_ite-private-menu .context-menu-input>label>input[type="radio"]{accent-color:#ff453a;display:inline;width:12px;margin:0;margin-left:-20px;padding:0}.x_ite-private-menu .context-menu-input>label>span{padding-left:8px}.x_ite-private-menu .context-menu-item>.context-menu-list{top:-9px;right:-5px;display:none}.x_ite-private-menu .context-menu-title{font-weight:bold}.x_ite-private-menu .context-menu-selected{font-weight:bold;font-style:italic}.x_ite-private-menu .context-menu-icon{background-repeat:no-repeat;background-position:2px 3px}.x_ite-private-icon-viewpoint{background:url("assets/images/Viewpoint.png")}.x_ite-private-icon-examine-viewer{background:url("assets/images/ExamineViewer.png")}.x_ite-private-icon-walk-viewer{background:url("assets/images/WalkViewer.png")}.x_ite-private-icon-fly-viewer{background:url("assets/images/FlyViewer.png")}.x_ite-private-icon-lookat-viewer{background:url("assets/images/gtk-zoom-in.png")}.x_ite-private-icon-plane-viewer{background:url("assets/images/PlaneViewer.png")}.x_ite-private-icon-none-viewer{background:url("assets/images/NoneViewer.png")}.x_ite-private-icon-zoom-fit{background:url("assets/images/gtk-zoom-fit.png")}.x_ite-private-icon-zoom-in{background:url("assets/images/gtk-zoom-in.png")}.x_ite-private-icon-primitive-quality{background:url("assets/images/PrimitiveQuality.png")}.x_ite-private-icon-texture-quality{background:url("assets/images/TextureQuality.png")}.x_ite-private-icon-shading{background:url("assets/images/Shading.png")}.x_ite-private-icon-enter-fullscreen{background:url("assets/images/gtk-fullscreen.png")}.x_ite-private-icon-leave-fullscreen{background:url("assets/images/gtk-leave-fullscreen.png")}.x_ite-private-icon-world-info{background:url("assets/images/go-next.png")}.x_ite-private-icon-help-about{background:url("assets/images/help-about.png")}.x_ite-private-splash-screen{position:absolute;inset:0;background:#1b1d21;background:-moz-radial-gradient(center, ellipse cover, #2f3135 0%, #1b1d21 100%);background:-webkit-radial-gradient(center, ellipse cover, #2f3135 0%, #1b1d21 100%);background:radial-gradient(ellipse at center, #2f3135 0%, #1b1d21 100%)}.x_ite-private-spinner{position:absolute;top:calc(50% - (138px / 2));left:calc(50% - (134px / 2));width:138px;height:134px;background:url("assets/images/logo.128.png") no-repeat;-webkit-animation:spinner-animation-spin 32s linear infinite;-moz-animation:spinner-animation-spin 32s linear infinite;animation:spinner-animation-spin 32s linear infinite}@-moz-keyframes spinner-animation-spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spinner-animation-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-animation-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.x_ite-private-progress{position:absolute;top:calc(50% - 28pt - 11pt);left:calc(50% - 100px);width:200px}.x_ite-private-x_ite{color:white;font-size:28pt;text-align:center;text-shadow:1px 1px 0 black;font-family:PT Sans, sans-serif}.x_ite-private-x_ite span.x_ite-private-x3d{font-weight:bold}.x_ite-private-spinner-text{color:white;font-size:11pt;text-align:center;text-shadow:1px 1px 0 black;font-family:PT Sans, sans-serif}.x_ite-private-progressbar{margin:8px;border-left:2px solid rgba(255,255,255,0.5);border-right:2px solid rgba(255,255,255,0.5);padding:0 2px;text-align:left}.x_ite-private-progressbar div{width:0%;height:6px;background:rgba(255,255,255,0.5)}
|
|
1
|
+
/* X_ITE v8.3.0 */@import url("https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700,700italic");:host,X3DCanvas{display:inline-block;overflow:hidden;outline:none;margin:0;border:0;border-radius:0;padding:0;width:300px;height:150px;user-select:none;-webkit-user-select:none}:host([hidden]){display:none}:host(.x_ite-fullscreen){width:100vw !important;height:100vh !important}X3DCanvas>:not(.x_ite-private-browser,.x_ite-private-menu){display:none}.x_ite-private-browser{overflow:hidden;position:relative;margin:0;border:0;border-radius:0;padding:0;width:100%;height:100%;user-select:none;-webkit-user-select:none}.x_ite-private-surface{position:absolute;margin:0;border:0;border-radius:0;padding:0;top:0;right:0;bottom:0;left:0;inset:0}.x_ite-private-canvas{display:block;outline:none;margin:0;border:0;border-radius:0;padding:0;width:100%;height:100%}.x_ite-private-notification{position:absolute;top:20px;right:-4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:5px;color:white;font-family:PT Sans, sans-serif;font-size:10pt;letter-spacing:unset;line-height:1;white-space:pre;pointer-events:none}.x_ite-private-notification span{padding:0 24px 0 20px;background:url("assets/images/icon.bw.png") no-repeat 0 2px}.x_ite-private-browser-timings{position:absolute;bottom:-4px;left:-4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border-top:4px solid rgba(60,60,60,0.61803);border-right:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:10px 15px 14px 14px;color:white;font-family:PT Sans, sans-serif;font-size:9pt;white-space:pre;pointer-events:none}.x_ite-private-browser-timings table,.x_ite-private-browser-timings thead,.x_ite-private-browser-timings tbody,.x_ite-private-browser-timings tfoot,.x_ite-private-browser-timings tr,.x_ite-private-browser-timings th,.x_ite-private-browser-timings td{box-sizing:border-box;outline:0;margin:0;border:0;border-radius:0;padding:0;background:none;color:white;font-size:inherit;font-weight:normal;font-style:normal;letter-spacing:unset;line-height:1;text-align:left}.x_ite-private-browser-timings table{overflow:hidden;background:url("assets/images/Time.png") no-repeat;width:100%;max-width:100%;border-collapse:separate;border-spacing:2px;empty-cells:show}.x_ite-private-browser-timings thead th{padding-left:20px;padding-bottom:5px;font-weight:bold}.x_ite-private-browser-timings td:first-child{padding-right:10px}.x_ite-private-browser-timings tr.x_ite-private-more td{padding-bottom:5px}.x_ite-private-browser-timings td{padding-bottom:2px}.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{box-sizing:border-box;border:0;border-radius:10px;padding:2px 2px 4px 2px;width:100%;background:rgba(0,0,0,0.381966);color:white;font-family:PT Sans, sans-serif;font-style:italic;font-size:9pt;letter-spacing:unset;line-height:1.1;text-align:center;pointer-events:all;cursor:pointer}.x_ite-private-world-info-overlay{position:absolute;top:0;right:0;bottom:0;left:0;inset:0}.x_ite-private-world-info{overflow-y:auto;position:absolute;top:0;right:0;bottom:0;left:0;inset:0;margin:21pt;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:15px;padding:21pt}.x_ite-private-world-info .x_ite-private-world-info-top,.x_ite-private-world-info .x_ite-private-world-info-title,.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info p{box-sizing:border-box;outline:0;margin:0;border:0;border-radius:0;padding:0;background:none;color:white;font-family:PT Sans, sans-serif;font-size:inherit;font-weight:inherit;font-style:normal;letter-spacing:unset;line-height:1.2;text-align:left}.x_ite-private-world-info .x_ite-private-world-info-top{font-weight:bold;font-style:italic;font-size:9pt}.x_ite-private-world-info .x_ite-private-world-info-title{margin:0.3em 0 1em 0;font-weight:bold;font-size:21pt}.x_ite-private-world-info .x_ite-private-world-info-info,.x_ite-private-world-info .x_ite-private-world-info-info p{margin:1em 0 1em 0;font-size:14pt}.x_ite-private-world-info a{text-decoration:underline;color:#fd9f2e}.x_ite-private-menu.context-menu-layer{position:fixed;z-index:10000;top:0;right:0;bottom:0;left:0;inset:0}.x_ite-private-menu.context-menu-list{position:fixed;z-index:10000;isolation:isolate}.x_ite-private-menu .context-menu-list{position:absolute}.x_ite-private-menu.context-menu-list,.x_ite-private-menu .context-menu-list{display:block;box-sizing:border-box;min-width:120px;margin:0;margin-left:1px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(0,0,0,0.61803);background:-moz-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:-webkit-linear-gradient(top, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);background:linear-gradient(to bottom, rgba(50,50,50,0.61803) 0%, rgba(0,0,0,0.61803) 100%);-webkit-background-clip:padding-box;background-clip:padding-box;border:4px solid rgba(60,60,60,0.61803);border-radius:5px;padding:5px 10px 9px 9px;color:white;font-family:PT Sans, sans-serif;font-size:10pt;white-space:pre;line-height:1.2;list-style-type:none}.x_ite-private-menu .context-menu-item{cursor:pointer;position:relative;border-radius:5px;margin:0;font-size:10pt;line-height:1;letter-spacing:unset;text-align:left}.x_ite-private-menu .context-menu-item:hover:not(.context-menu-not-selectable){background-color:rgba(255,69,58,0.8)}.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{cursor:default;margin:2px 0;border-top:0;border-bottom:1px solid #8a8a8a;padding-top:0;padding-bottom:0}.x_ite-private-menu .context-menu-separator+.context-menu-separator{display:none !important}.x_ite-private-menu .context-menu-submenu:after{content:"";position:absolute;display:block;right:0;top:8px;margin-right:2px;border-style:solid;border-width:4px 0 4px 5px;border-color:transparent transparent transparent #eee;width:0;height:0}.x_ite-private-menu .context-menu-item>span{display:block;width:100%;padding:5px 24px}.x_ite-private-menu .context-menu-input>label{cursor:pointer;display:block;box-sizing:border-box;margin:0;padding:5px 24px;width:100%;font-size:10pt;letter-spacing:unset;line-height:1}.x_ite-private-menu .context-menu-input>label>*{vertical-align:top;font-size:10pt;font-weight:normal;letter-spacing:unset;line-height:1}.x_ite-private-menu .context-menu-item>label>input{all:revert;cursor:pointer}.x_ite-private-menu .context-menu-input>label>input[type="checkbox"],.x_ite-private-menu .context-menu-input>label>input[type="radio"]{accent-color:#ff453a;display:inline;width:12px;margin:0;margin-left:-20px;padding:0}.x_ite-private-menu .context-menu-input>label>span{padding-left:8px}.x_ite-private-menu .context-menu-item>.context-menu-list{top:-9px;right:-5px;display:none}.x_ite-private-menu .context-menu-title{font-weight:bold}.x_ite-private-menu .context-menu-selected{font-weight:bold;font-style:italic}.x_ite-private-menu .context-menu-icon{background-repeat:no-repeat;background-position:2px 3px}.x_ite-private-icon-viewpoint{background:url("assets/images/Viewpoint.png")}.x_ite-private-icon-examine-viewer{background:url("assets/images/ExamineViewer.png")}.x_ite-private-icon-walk-viewer{background:url("assets/images/WalkViewer.png")}.x_ite-private-icon-fly-viewer{background:url("assets/images/FlyViewer.png")}.x_ite-private-icon-lookat-viewer{background:url("assets/images/gtk-zoom-in.png")}.x_ite-private-icon-plane-viewer{background:url("assets/images/PlaneViewer.png")}.x_ite-private-icon-none-viewer{background:url("assets/images/NoneViewer.png")}.x_ite-private-icon-zoom-fit{background:url("assets/images/gtk-zoom-fit.png")}.x_ite-private-icon-zoom-in{background:url("assets/images/gtk-zoom-in.png")}.x_ite-private-icon-primitive-quality{background:url("assets/images/PrimitiveQuality.png")}.x_ite-private-icon-texture-quality{background:url("assets/images/TextureQuality.png")}.x_ite-private-icon-shading{background:url("assets/images/Shading.png")}.x_ite-private-icon-enter-fullscreen{background:url("assets/images/gtk-fullscreen.png")}.x_ite-private-icon-leave-fullscreen{background:url("assets/images/gtk-leave-fullscreen.png")}.x_ite-private-icon-world-info{background:url("assets/images/go-next.png")}.x_ite-private-icon-help-about{background:url("assets/images/help-about.png")}.x_ite-private-splash-screen{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:#1b1d21;background:-moz-radial-gradient(center, ellipse cover, #2f3135 0%, #1b1d21 100%);background:-webkit-radial-gradient(center, ellipse cover, #2f3135 0%, #1b1d21 100%);background:radial-gradient(ellipse at center, #2f3135 0%, #1b1d21 100%)}.x_ite-private-spinner{position:absolute;top:calc(50% - (138px / 2));left:calc(50% - (134px / 2));width:138px;height:134px;background:url("assets/images/logo.128.png") no-repeat;-webkit-animation:spinner-animation-spin 32s linear infinite;-moz-animation:spinner-animation-spin 32s linear infinite;animation:spinner-animation-spin 32s linear infinite}@-moz-keyframes spinner-animation-spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spinner-animation-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-animation-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.x_ite-private-progress{position:absolute;top:calc(50% - 28pt - 11pt);left:calc(50% - 100px);width:200px}.x_ite-private-x_ite{color:white;font-size:28pt;text-align:center;text-shadow:1px 1px 0 black;font-family:PT Sans, sans-serif}.x_ite-private-x_ite span.x_ite-private-x3d{font-weight:bold}.x_ite-private-spinner-text{color:white;font-size:11pt;text-align:center;text-shadow:1px 1px 0 black;font-family:PT Sans, sans-serif}.x_ite-private-progressbar{margin:8px;border-left:2px solid rgba(255,255,255,0.5);border-right:2px solid rgba(255,255,255,0.5);padding:0 2px;text-align:left}.x_ite-private-progressbar div{width:0%;height:6px;background:rgba(255,255,255,0.5)}
|