molstar 4.2.0 → 4.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/LICENSE +20 -20
- package/README.md +197 -197
- package/build/viewer/embedded.html +52 -52
- package/build/viewer/index.html +129 -129
- package/build/viewer/molstar.js +1 -1
- package/build/viewer/molstar.js.LICENSE.txt +9 -0
- package/lib/apps/docking-viewer/index.html +36 -36
- package/lib/apps/mesoscale-explorer/index.html +100 -100
- package/lib/apps/mesoscale-explorer/style.scss +33 -33
- package/lib/apps/viewer/app.d.ts +2 -1
- package/lib/apps/viewer/app.js +2 -1
- package/lib/apps/viewer/embedded.html +52 -52
- package/lib/apps/viewer/index.html +129 -129
- package/lib/cli/chem-comp-dict/create-ions.js +9 -9
- package/lib/cli/chem-comp-dict/create-saccharides.js +9 -9
- package/lib/cli/cifschema/util/generate.js +12 -12
- package/lib/cli/lipid-params/index.js +9 -9
- package/lib/commonjs/apps/viewer/app.d.ts +2 -1
- package/lib/commonjs/apps/viewer/app.js +1 -0
- package/lib/commonjs/cli/chem-comp-dict/create-ions.js +9 -9
- package/lib/commonjs/cli/chem-comp-dict/create-saccharides.js +9 -9
- package/lib/commonjs/cli/cifschema/util/generate.js +12 -12
- package/lib/commonjs/cli/lipid-params/index.js +9 -9
- package/lib/commonjs/examples/alpha-orbitals/example-data.js +160 -160
- package/lib/commonjs/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
- package/lib/commonjs/extensions/assembly-symmetry/prop.js +24 -24
- package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.js +5 -5
- package/lib/commonjs/extensions/dnatco/ntc-tube/behavior.js +5 -5
- package/lib/commonjs/extensions/geo-export/usdz-exporter.js +41 -41
- package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +1 -0
- package/lib/commonjs/extensions/mp4-export/encoder.js +1 -1
- package/lib/commonjs/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
- package/lib/commonjs/extensions/mvs/components/custom-label/representation.d.ts +2 -2
- package/lib/commonjs/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
- package/lib/commonjs/extensions/sb-ncbr/index.d.ts +8 -0
- package/lib/commonjs/extensions/sb-ncbr/index.js +14 -1
- package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/actions.js +89 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/algorithm.js +474 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/behavior.js +96 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/data-model.js +28 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/examples.js +54 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/props.js +26 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
- package/lib/commonjs/extensions/sb-ncbr/tunnels/representation.js +99 -0
- package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +17 -0
- package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
- package/lib/commonjs/mol-canvas3d/passes/dof.d.ts +34 -0
- package/lib/commonjs/mol-canvas3d/passes/dof.js +167 -0
- package/lib/commonjs/mol-canvas3d/passes/draw.d.ts +2 -0
- package/lib/commonjs/mol-canvas3d/passes/draw.js +31 -8
- package/lib/commonjs/mol-canvas3d/passes/image.d.ts +8 -0
- package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +8 -0
- package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
- package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
- package/lib/commonjs/mol-gl/shader/background.frag.js +95 -95
- package/lib/commonjs/mol-gl/shader/background.vert.js +11 -11
- package/lib/commonjs/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
- package/lib/commonjs/mol-gl/shader/bloom/blur.frag.js +28 -28
- package/lib/commonjs/mol-gl/shader/bloom/composite.frag.js +33 -33
- package/lib/commonjs/mol-gl/shader/bloom/luminosity.frag.js +52 -52
- package/lib/commonjs/mol-gl/shader/cas.frag.js +144 -144
- package/lib/commonjs/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
- package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
- package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
- package/lib/commonjs/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
- package/lib/commonjs/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
- package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
- package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
- package/lib/commonjs/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
- package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
- package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
- package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
- package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
- package/lib/commonjs/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
- package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
- package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
- package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
- package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
- package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
- package/lib/commonjs/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
- package/lib/commonjs/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
- package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +234 -234
- package/lib/commonjs/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
- package/lib/commonjs/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
- package/lib/commonjs/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
- package/lib/commonjs/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
- package/lib/commonjs/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
- package/lib/commonjs/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
- package/lib/commonjs/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
- package/lib/commonjs/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
- package/lib/commonjs/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
- package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
- package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
- package/lib/commonjs/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
- package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
- package/lib/commonjs/mol-gl/shader/compose.frag.js +12 -12
- package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
- package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
- package/lib/commonjs/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
- package/lib/commonjs/mol-gl/shader/copy.frag.js +11 -11
- package/lib/commonjs/mol-gl/shader/cylinders.frag.js +266 -266
- package/lib/commonjs/mol-gl/shader/cylinders.vert.js +89 -89
- package/lib/commonjs/mol-gl/shader/depth-merge.frag.js +23 -23
- package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +362 -362
- package/lib/commonjs/mol-gl/shader/direct-volume.vert.js +41 -41
- package/lib/commonjs/mol-gl/shader/dof.frag.d.ts +7 -0
- package/lib/commonjs/mol-gl/shader/dof.frag.js +122 -0
- package/lib/commonjs/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
- package/lib/commonjs/mol-gl/shader/evaluate-wboit.frag.js +17 -17
- package/lib/commonjs/mol-gl/shader/fxaa.frag.js +228 -228
- package/lib/commonjs/mol-gl/shader/gaussian-density.frag.js +49 -49
- package/lib/commonjs/mol-gl/shader/gaussian-density.vert.js +27 -27
- package/lib/commonjs/mol-gl/shader/hi-z.frag.js +18 -18
- package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
- package/lib/commonjs/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
- package/lib/commonjs/mol-gl/shader/image.frag.js +169 -169
- package/lib/commonjs/mol-gl/shader/image.vert.js +21 -21
- package/lib/commonjs/mol-gl/shader/lines.frag.js +42 -42
- package/lib/commonjs/mol-gl/shader/lines.vert.js +117 -117
- package/lib/commonjs/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
- package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
- package/lib/commonjs/mol-gl/shader/marking/edge.frag.js +28 -28
- package/lib/commonjs/mol-gl/shader/marking/overlay.frag.js +26 -26
- package/lib/commonjs/mol-gl/shader/mesh.frag.js +65 -65
- package/lib/commonjs/mol-gl/shader/mesh.vert.js +49 -49
- package/lib/commonjs/mol-gl/shader/outlines.frag.js +95 -95
- package/lib/commonjs/mol-gl/shader/points.frag.js +59 -59
- package/lib/commonjs/mol-gl/shader/points.vert.js +38 -38
- package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +150 -150
- package/lib/commonjs/mol-gl/shader/quad.vert.js +10 -10
- package/lib/commonjs/mol-gl/shader/shadows.frag.js +123 -123
- package/lib/commonjs/mol-gl/shader/smaa/blend.frag.js +56 -56
- package/lib/commonjs/mol-gl/shader/smaa/blend.vert.js +25 -25
- package/lib/commonjs/mol-gl/shader/smaa/edges.frag.js +66 -66
- package/lib/commonjs/mol-gl/shader/smaa/edges.vert.js +26 -26
- package/lib/commonjs/mol-gl/shader/smaa/weights.frag.js +206 -206
- package/lib/commonjs/mol-gl/shader/smaa/weights.vert.js +32 -32
- package/lib/commonjs/mol-gl/shader/spheres.frag.js +148 -148
- package/lib/commonjs/mol-gl/shader/spheres.vert.js +132 -132
- package/lib/commonjs/mol-gl/shader/ssao-blur.frag.js +97 -97
- package/lib/commonjs/mol-gl/shader/ssao.frag.js +211 -211
- package/lib/commonjs/mol-gl/shader/text.frag.js +85 -85
- package/lib/commonjs/mol-gl/shader/text.vert.js +85 -85
- package/lib/commonjs/mol-gl/shader/util/grid3d-template.frag.js +46 -46
- package/lib/commonjs/mol-gl/shader-code.js +15 -15
- package/lib/commonjs/mol-gl/webgl/compat.js +12 -12
- package/lib/commonjs/mol-gl/webgl/context.js +1 -0
- package/lib/commonjs/mol-gl/webgl/timer.d.ts +1 -1
- package/lib/commonjs/mol-gl/webgl/timer.js +8 -1
- package/lib/commonjs/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
- package/lib/commonjs/mol-plugin/animation-loop.d.ts +1 -0
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
- package/lib/commonjs/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
- package/lib/commonjs/mol-plugin-ui/viewport/simple-settings.js +3 -0
- package/lib/commonjs/servers/common/swagger-ui/indexTemplate.js +66 -66
- package/lib/commonjs/servers/volume/config.js +5 -5
- package/lib/examples/alpha-orbitals/example-data.js +160 -160
- package/lib/examples/alpha-orbitals/index.html +72 -72
- package/lib/examples/basic-wrapper/index.html +137 -137
- package/lib/examples/lighting/index.html +88 -88
- package/lib/examples/proteopedia-wrapper/index.html +236 -236
- package/lib/extensions/alpha-orbitals/gpu/shader.frag.js +136 -136
- package/lib/extensions/assembly-symmetry/prop.js +24 -24
- package/lib/extensions/dnatco/confal-pyramids/behavior.js +5 -5
- package/lib/extensions/dnatco/ntc-tube/behavior.js +5 -5
- package/lib/extensions/geo-export/usdz-exporter.js +41 -41
- package/lib/extensions/meshes/mesh-extension.d.ts +1 -0
- package/lib/extensions/mp4-export/encoder.js +1 -1
- package/lib/extensions/mvs/components/annotation-label/representation.d.ts +0 -2
- package/lib/extensions/mvs/components/custom-label/representation.d.ts +2 -2
- package/lib/extensions/mvs/tree/mvs/mvs-builder.d.ts +8 -2
- package/lib/extensions/sb-ncbr/index.d.ts +8 -0
- package/lib/extensions/sb-ncbr/index.js +8 -0
- package/lib/extensions/sb-ncbr/tunnels/actions.d.ts +20 -0
- package/lib/extensions/sb-ncbr/tunnels/actions.js +86 -0
- package/lib/extensions/sb-ncbr/tunnels/algorithm.d.ts +26 -0
- package/lib/extensions/sb-ncbr/tunnels/algorithm.js +469 -0
- package/lib/extensions/sb-ncbr/tunnels/behavior.d.ts +40 -0
- package/lib/extensions/sb-ncbr/tunnels/behavior.js +92 -0
- package/lib/extensions/sb-ncbr/tunnels/data-model.d.ts +146 -0
- package/lib/extensions/sb-ncbr/tunnels/data-model.js +23 -0
- package/lib/extensions/sb-ncbr/tunnels/examples.d.ts +12 -0
- package/lib/extensions/sb-ncbr/tunnels/examples.js +49 -0
- package/lib/extensions/sb-ncbr/tunnels/props.d.ts +19 -0
- package/lib/extensions/sb-ncbr/tunnels/props.js +22 -0
- package/lib/extensions/sb-ncbr/tunnels/representation.d.ts +29 -0
- package/lib/extensions/sb-ncbr/tunnels/representation.js +96 -0
- package/lib/mol-canvas3d/canvas3d.d.ts +17 -0
- package/lib/mol-canvas3d/canvas3d.js +4 -0
- package/lib/mol-canvas3d/passes/dof.d.ts +34 -0
- package/lib/mol-canvas3d/passes/dof.js +163 -0
- package/lib/mol-canvas3d/passes/draw.d.ts +2 -0
- package/lib/mol-canvas3d/passes/draw.js +31 -8
- package/lib/mol-canvas3d/passes/image.d.ts +8 -0
- package/lib/mol-canvas3d/passes/postprocessing.d.ts +8 -0
- package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
- package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
- package/lib/mol-gl/shader/background.frag.js +95 -95
- package/lib/mol-gl/shader/background.vert.js +11 -11
- package/lib/mol-gl/shader/blend-back-dpoit.frag.js +13 -13
- package/lib/mol-gl/shader/bloom/blur.frag.js +28 -28
- package/lib/mol-gl/shader/bloom/composite.frag.js +33 -33
- package/lib/mol-gl/shader/bloom/luminosity.frag.js +52 -52
- package/lib/mol-gl/shader/cas.frag.js +144 -144
- package/lib/mol-gl/shader/chunks/apply-fog.glsl.js +31 -31
- package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +12 -12
- package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +77 -77
- package/lib/mol-gl/shader/chunks/apply-marker-color.glsl.js +16 -16
- package/lib/mol-gl/shader/chunks/assign-clipping-varying.glsl.js +8 -8
- package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +140 -140
- package/lib/mol-gl/shader/chunks/assign-group.glsl.js +6 -6
- package/lib/mol-gl/shader/chunks/assign-marker-varying.glsl.js +8 -8
- package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +112 -112
- package/lib/mol-gl/shader/chunks/assign-position.glsl.js +14 -14
- package/lib/mol-gl/shader/chunks/assign-size.glsl.js +18 -18
- package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +12 -12
- package/lib/mol-gl/shader/chunks/check-transparency.glsl.js +16 -16
- package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +7 -7
- package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +5 -5
- package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +60 -60
- package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +122 -122
- package/lib/mol-gl/shader/chunks/common-clip.glsl.js +104 -104
- package/lib/mol-gl/shader/chunks/common-frag-params.glsl.js +150 -150
- package/lib/mol-gl/shader/chunks/common-vert-params.glsl.js +61 -61
- package/lib/mol-gl/shader/chunks/common.glsl.js +234 -234
- package/lib/mol-gl/shader/chunks/dpoit-write.glsl.js +62 -62
- package/lib/mol-gl/shader/chunks/fade-lod.glsl.js +42 -42
- package/lib/mol-gl/shader/chunks/float-to-rgba.glsl.js +39 -39
- package/lib/mol-gl/shader/chunks/light-frag-params.glsl.js +127 -127
- package/lib/mol-gl/shader/chunks/matrix-scale.glsl.js +5 -5
- package/lib/mol-gl/shader/chunks/normal-frag-params.glsl.js +2 -2
- package/lib/mol-gl/shader/chunks/read-from-texture.glsl.js +14 -14
- package/lib/mol-gl/shader/chunks/rgba-to-float.glsl.js +84 -84
- package/lib/mol-gl/shader/chunks/size-vert-params.glsl.js +11 -11
- package/lib/mol-gl/shader/chunks/texture3d-from-1d-trilinear.glsl.js +23 -23
- package/lib/mol-gl/shader/chunks/texture3d-from-2d-linear.glsl.js +17 -17
- package/lib/mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl.js +8 -8
- package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +25 -25
- package/lib/mol-gl/shader/compose.frag.js +12 -12
- package/lib/mol-gl/shader/compute/color-smoothing/accumulate.frag.js +23 -23
- package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +43 -43
- package/lib/mol-gl/shader/compute/color-smoothing/normalize.frag.js +15 -15
- package/lib/mol-gl/shader/copy.frag.js +11 -11
- package/lib/mol-gl/shader/cylinders.frag.js +266 -266
- package/lib/mol-gl/shader/cylinders.vert.js +89 -89
- package/lib/mol-gl/shader/depth-merge.frag.js +23 -23
- package/lib/mol-gl/shader/direct-volume.frag.js +362 -362
- package/lib/mol-gl/shader/direct-volume.vert.js +41 -41
- package/lib/mol-gl/shader/dof.frag.d.ts +7 -0
- package/lib/mol-gl/shader/dof.frag.js +119 -0
- package/lib/mol-gl/shader/evaluate-dpoit.frag.js +10 -10
- package/lib/mol-gl/shader/evaluate-wboit.frag.js +17 -17
- package/lib/mol-gl/shader/fxaa.frag.js +228 -228
- package/lib/mol-gl/shader/gaussian-density.frag.js +49 -49
- package/lib/mol-gl/shader/gaussian-density.vert.js +27 -27
- package/lib/mol-gl/shader/hi-z.frag.js +18 -18
- package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.js +58 -58
- package/lib/mol-gl/shader/histogram-pyramid/sum.frag.js +19 -19
- package/lib/mol-gl/shader/image.frag.js +169 -169
- package/lib/mol-gl/shader/image.vert.js +21 -21
- package/lib/mol-gl/shader/lines.frag.js +42 -42
- package/lib/mol-gl/shader/lines.vert.js +117 -117
- package/lib/mol-gl/shader/marching-cubes/active-voxels.frag.js +70 -70
- package/lib/mol-gl/shader/marching-cubes/isosurface.frag.js +311 -311
- package/lib/mol-gl/shader/marking/edge.frag.js +28 -28
- package/lib/mol-gl/shader/marking/overlay.frag.js +26 -26
- package/lib/mol-gl/shader/mesh.frag.js +65 -65
- package/lib/mol-gl/shader/mesh.vert.js +49 -49
- package/lib/mol-gl/shader/outlines.frag.js +95 -95
- package/lib/mol-gl/shader/points.frag.js +59 -59
- package/lib/mol-gl/shader/points.vert.js +38 -38
- package/lib/mol-gl/shader/postprocessing.frag.js +150 -150
- package/lib/mol-gl/shader/quad.vert.js +10 -10
- package/lib/mol-gl/shader/shadows.frag.js +123 -123
- package/lib/mol-gl/shader/smaa/blend.frag.js +56 -56
- package/lib/mol-gl/shader/smaa/blend.vert.js +25 -25
- package/lib/mol-gl/shader/smaa/edges.frag.js +66 -66
- package/lib/mol-gl/shader/smaa/edges.vert.js +26 -26
- package/lib/mol-gl/shader/smaa/weights.frag.js +206 -206
- package/lib/mol-gl/shader/smaa/weights.vert.js +32 -32
- package/lib/mol-gl/shader/spheres.frag.js +148 -148
- package/lib/mol-gl/shader/spheres.vert.js +132 -132
- package/lib/mol-gl/shader/ssao-blur.frag.js +97 -97
- package/lib/mol-gl/shader/ssao.frag.js +211 -211
- package/lib/mol-gl/shader/text.frag.js +85 -85
- package/lib/mol-gl/shader/text.vert.js +85 -85
- package/lib/mol-gl/shader/util/grid3d-template.frag.js +46 -46
- package/lib/mol-gl/shader-code.js +15 -15
- package/lib/mol-gl/webgl/compat.js +12 -12
- package/lib/mol-gl/webgl/context.js +1 -0
- package/lib/mol-gl/webgl/timer.d.ts +1 -1
- package/lib/mol-gl/webgl/timer.js +8 -1
- package/lib/mol-math/linear-algebra/3d/minimize-rmsd.js +2 -1
- package/lib/mol-plugin/animation-loop.d.ts +1 -0
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +6 -6
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +1 -1
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +3 -3
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/animation/built-in/state-snapshots.js +7 -3
- package/lib/mol-plugin-ui/skin/base/base.scss +37 -37
- package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
- package/lib/mol-plugin-ui/skin/base/components/controls.scss +445 -445
- package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
- package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
- package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
- package/lib/mol-plugin-ui/skin/base/components/misc.scss +663 -663
- package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
- package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
- package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
- package/lib/mol-plugin-ui/skin/base/components/toast.scss +83 -83
- package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
- package/lib/mol-plugin-ui/skin/base/components/viewport.scss +194 -194
- package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
- package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
- package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
- package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
- package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
- package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
- package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
- package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
- package/lib/mol-plugin-ui/skin/base/variables.scss +88 -88
- package/lib/mol-plugin-ui/skin/blue.scss +1 -1
- package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
- package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
- package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
- package/lib/mol-plugin-ui/skin/dark.scss +1 -1
- package/lib/mol-plugin-ui/skin/light.scss +1 -1
- package/lib/mol-plugin-ui/viewport/simple-settings.js +3 -0
- package/lib/servers/common/swagger-ui/indexTemplate.js +66 -66
- package/lib/servers/volume/config.js +5 -5
- package/package.json +196 -195
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
export const color_vert_params = `
|
|
2
|
-
uniform float uMetalness;
|
|
3
|
-
uniform float uRoughness;
|
|
4
|
-
uniform float uBumpiness;
|
|
5
|
-
|
|
6
|
-
#if defined(dRenderVariant_color)
|
|
7
|
-
#if defined(dColorType_uniform)
|
|
8
|
-
uniform vec3 uColor;
|
|
9
|
-
#elif defined(dColorType_attribute)
|
|
10
|
-
varying vec4 vColor;
|
|
11
|
-
attribute vec3 aColor;
|
|
12
|
-
#elif defined(dColorType_texture)
|
|
13
|
-
varying vec4 vColor;
|
|
14
|
-
uniform vec2 uColorTexDim;
|
|
15
|
-
uniform sampler2D tColor;
|
|
16
|
-
#elif defined(dColorType_grid)
|
|
17
|
-
varying vec4 vColor;
|
|
18
|
-
uniform vec2 uColorTexDim;
|
|
19
|
-
uniform vec3 uColorGridDim;
|
|
20
|
-
uniform vec4 uColorGridTransform;
|
|
21
|
-
uniform sampler2D tColorGrid;
|
|
22
|
-
#elif defined(dColorType_direct)
|
|
23
|
-
varying vec4 vColor;
|
|
24
|
-
#endif
|
|
25
|
-
|
|
26
|
-
#ifdef dUsePalette
|
|
27
|
-
varying float vPaletteV;
|
|
28
|
-
#endif
|
|
29
|
-
|
|
30
|
-
#ifdef dOverpaint
|
|
31
|
-
#if defined(dOverpaintType_instance) || defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)
|
|
32
|
-
varying vec4 vOverpaint;
|
|
33
|
-
uniform vec2 uOverpaintTexDim;
|
|
34
|
-
uniform sampler2D tOverpaint;
|
|
35
|
-
#elif defined(dOverpaintType_volumeInstance)
|
|
36
|
-
varying vec4 vOverpaint;
|
|
37
|
-
uniform vec2 uOverpaintTexDim;
|
|
38
|
-
uniform vec3 uOverpaintGridDim;
|
|
39
|
-
uniform vec4 uOverpaintGridTransform;
|
|
40
|
-
uniform sampler2D tOverpaintGrid;
|
|
41
|
-
#endif
|
|
42
|
-
uniform float uOverpaintStrength;
|
|
43
|
-
#endif
|
|
44
|
-
|
|
45
|
-
#ifdef dEmissive
|
|
46
|
-
#if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
|
|
47
|
-
varying float vEmissive;
|
|
48
|
-
uniform vec2 uEmissiveTexDim;
|
|
49
|
-
uniform sampler2D tEmissive;
|
|
50
|
-
#elif defined(dEmissiveType_volumeInstance)
|
|
51
|
-
varying float vEmissive;
|
|
52
|
-
uniform vec2 uEmissiveTexDim;
|
|
53
|
-
uniform vec3 uEmissiveGridDim;
|
|
54
|
-
uniform vec4 uEmissiveGridTransform;
|
|
55
|
-
uniform sampler2D tEmissiveGrid;
|
|
56
|
-
#endif
|
|
57
|
-
uniform float uEmissiveStrength;
|
|
58
|
-
#endif
|
|
59
|
-
|
|
60
|
-
#ifdef dSubstance
|
|
61
|
-
#if defined(dSubstanceType_instance) || defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)
|
|
62
|
-
varying vec4 vSubstance;
|
|
63
|
-
uniform vec2 uSubstanceTexDim;
|
|
64
|
-
uniform sampler2D tSubstance;
|
|
65
|
-
#elif defined(dSubstanceType_volumeInstance)
|
|
66
|
-
varying vec4 vSubstance;
|
|
67
|
-
uniform vec2 uSubstanceTexDim;
|
|
68
|
-
uniform vec3 uSubstanceGridDim;
|
|
69
|
-
uniform vec4 uSubstanceGridTransform;
|
|
70
|
-
uniform sampler2D tSubstanceGrid;
|
|
71
|
-
#endif
|
|
72
|
-
uniform float uSubstanceStrength;
|
|
73
|
-
#endif
|
|
74
|
-
#elif defined(dRenderVariant_emissive)
|
|
75
|
-
#ifdef dEmissive
|
|
76
|
-
#if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
|
|
77
|
-
varying float vEmissive;
|
|
78
|
-
uniform vec2 uEmissiveTexDim;
|
|
79
|
-
uniform sampler2D tEmissive;
|
|
80
|
-
#elif defined(dEmissiveType_volumeInstance)
|
|
81
|
-
varying float vEmissive;
|
|
82
|
-
uniform vec2 uEmissiveTexDim;
|
|
83
|
-
uniform vec3 uEmissiveGridDim;
|
|
84
|
-
uniform vec4 uEmissiveGridTransform;
|
|
85
|
-
uniform sampler2D tEmissiveGrid;
|
|
86
|
-
#endif
|
|
87
|
-
uniform float uEmissiveStrength;
|
|
88
|
-
#endif
|
|
89
|
-
#elif defined(dRenderVariant_pick)
|
|
90
|
-
#if __VERSION__ == 100 || !defined(dVaryingGroup)
|
|
91
|
-
#ifdef requiredDrawBuffers
|
|
92
|
-
varying vec4 vObject;
|
|
93
|
-
varying vec4 vInstance;
|
|
94
|
-
varying vec4 vGroup;
|
|
95
|
-
#else
|
|
96
|
-
varying vec4 vColor;
|
|
97
|
-
#endif
|
|
98
|
-
#else
|
|
99
|
-
#ifdef requiredDrawBuffers
|
|
100
|
-
flat out vec4 vObject;
|
|
101
|
-
flat out vec4 vInstance;
|
|
102
|
-
flat out vec4 vGroup;
|
|
103
|
-
#else
|
|
104
|
-
flat out vec4 vColor;
|
|
105
|
-
#endif
|
|
106
|
-
#endif
|
|
107
|
-
#endif
|
|
108
|
-
|
|
109
|
-
#ifdef dTransparency
|
|
110
|
-
#if defined(dTransparencyType_instance) || defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)
|
|
111
|
-
varying float vTransparency;
|
|
112
|
-
uniform vec2 uTransparencyTexDim;
|
|
113
|
-
uniform sampler2D tTransparency;
|
|
114
|
-
#elif defined(dTransparencyType_volumeInstance)
|
|
115
|
-
varying float vTransparency;
|
|
116
|
-
uniform vec2 uTransparencyTexDim;
|
|
117
|
-
uniform vec3 uTransparencyGridDim;
|
|
118
|
-
uniform vec4 uTransparencyGridTransform;
|
|
119
|
-
uniform sampler2D tTransparencyGrid;
|
|
120
|
-
#endif
|
|
121
|
-
uniform float uTransparencyStrength;
|
|
122
|
-
#endif
|
|
1
|
+
export const color_vert_params = `
|
|
2
|
+
uniform float uMetalness;
|
|
3
|
+
uniform float uRoughness;
|
|
4
|
+
uniform float uBumpiness;
|
|
5
|
+
|
|
6
|
+
#if defined(dRenderVariant_color)
|
|
7
|
+
#if defined(dColorType_uniform)
|
|
8
|
+
uniform vec3 uColor;
|
|
9
|
+
#elif defined(dColorType_attribute)
|
|
10
|
+
varying vec4 vColor;
|
|
11
|
+
attribute vec3 aColor;
|
|
12
|
+
#elif defined(dColorType_texture)
|
|
13
|
+
varying vec4 vColor;
|
|
14
|
+
uniform vec2 uColorTexDim;
|
|
15
|
+
uniform sampler2D tColor;
|
|
16
|
+
#elif defined(dColorType_grid)
|
|
17
|
+
varying vec4 vColor;
|
|
18
|
+
uniform vec2 uColorTexDim;
|
|
19
|
+
uniform vec3 uColorGridDim;
|
|
20
|
+
uniform vec4 uColorGridTransform;
|
|
21
|
+
uniform sampler2D tColorGrid;
|
|
22
|
+
#elif defined(dColorType_direct)
|
|
23
|
+
varying vec4 vColor;
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
#ifdef dUsePalette
|
|
27
|
+
varying float vPaletteV;
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
#ifdef dOverpaint
|
|
31
|
+
#if defined(dOverpaintType_instance) || defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)
|
|
32
|
+
varying vec4 vOverpaint;
|
|
33
|
+
uniform vec2 uOverpaintTexDim;
|
|
34
|
+
uniform sampler2D tOverpaint;
|
|
35
|
+
#elif defined(dOverpaintType_volumeInstance)
|
|
36
|
+
varying vec4 vOverpaint;
|
|
37
|
+
uniform vec2 uOverpaintTexDim;
|
|
38
|
+
uniform vec3 uOverpaintGridDim;
|
|
39
|
+
uniform vec4 uOverpaintGridTransform;
|
|
40
|
+
uniform sampler2D tOverpaintGrid;
|
|
41
|
+
#endif
|
|
42
|
+
uniform float uOverpaintStrength;
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
#ifdef dEmissive
|
|
46
|
+
#if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
|
|
47
|
+
varying float vEmissive;
|
|
48
|
+
uniform vec2 uEmissiveTexDim;
|
|
49
|
+
uniform sampler2D tEmissive;
|
|
50
|
+
#elif defined(dEmissiveType_volumeInstance)
|
|
51
|
+
varying float vEmissive;
|
|
52
|
+
uniform vec2 uEmissiveTexDim;
|
|
53
|
+
uniform vec3 uEmissiveGridDim;
|
|
54
|
+
uniform vec4 uEmissiveGridTransform;
|
|
55
|
+
uniform sampler2D tEmissiveGrid;
|
|
56
|
+
#endif
|
|
57
|
+
uniform float uEmissiveStrength;
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
#ifdef dSubstance
|
|
61
|
+
#if defined(dSubstanceType_instance) || defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)
|
|
62
|
+
varying vec4 vSubstance;
|
|
63
|
+
uniform vec2 uSubstanceTexDim;
|
|
64
|
+
uniform sampler2D tSubstance;
|
|
65
|
+
#elif defined(dSubstanceType_volumeInstance)
|
|
66
|
+
varying vec4 vSubstance;
|
|
67
|
+
uniform vec2 uSubstanceTexDim;
|
|
68
|
+
uniform vec3 uSubstanceGridDim;
|
|
69
|
+
uniform vec4 uSubstanceGridTransform;
|
|
70
|
+
uniform sampler2D tSubstanceGrid;
|
|
71
|
+
#endif
|
|
72
|
+
uniform float uSubstanceStrength;
|
|
73
|
+
#endif
|
|
74
|
+
#elif defined(dRenderVariant_emissive)
|
|
75
|
+
#ifdef dEmissive
|
|
76
|
+
#if defined(dEmissiveType_instance) || defined(dEmissiveType_groupInstance) || defined(dEmissiveType_vertexInstance)
|
|
77
|
+
varying float vEmissive;
|
|
78
|
+
uniform vec2 uEmissiveTexDim;
|
|
79
|
+
uniform sampler2D tEmissive;
|
|
80
|
+
#elif defined(dEmissiveType_volumeInstance)
|
|
81
|
+
varying float vEmissive;
|
|
82
|
+
uniform vec2 uEmissiveTexDim;
|
|
83
|
+
uniform vec3 uEmissiveGridDim;
|
|
84
|
+
uniform vec4 uEmissiveGridTransform;
|
|
85
|
+
uniform sampler2D tEmissiveGrid;
|
|
86
|
+
#endif
|
|
87
|
+
uniform float uEmissiveStrength;
|
|
88
|
+
#endif
|
|
89
|
+
#elif defined(dRenderVariant_pick)
|
|
90
|
+
#if __VERSION__ == 100 || !defined(dVaryingGroup)
|
|
91
|
+
#ifdef requiredDrawBuffers
|
|
92
|
+
varying vec4 vObject;
|
|
93
|
+
varying vec4 vInstance;
|
|
94
|
+
varying vec4 vGroup;
|
|
95
|
+
#else
|
|
96
|
+
varying vec4 vColor;
|
|
97
|
+
#endif
|
|
98
|
+
#else
|
|
99
|
+
#ifdef requiredDrawBuffers
|
|
100
|
+
flat out vec4 vObject;
|
|
101
|
+
flat out vec4 vInstance;
|
|
102
|
+
flat out vec4 vGroup;
|
|
103
|
+
#else
|
|
104
|
+
flat out vec4 vColor;
|
|
105
|
+
#endif
|
|
106
|
+
#endif
|
|
107
|
+
#endif
|
|
108
|
+
|
|
109
|
+
#ifdef dTransparency
|
|
110
|
+
#if defined(dTransparencyType_instance) || defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)
|
|
111
|
+
varying float vTransparency;
|
|
112
|
+
uniform vec2 uTransparencyTexDim;
|
|
113
|
+
uniform sampler2D tTransparency;
|
|
114
|
+
#elif defined(dTransparencyType_volumeInstance)
|
|
115
|
+
varying float vTransparency;
|
|
116
|
+
uniform vec2 uTransparencyTexDim;
|
|
117
|
+
uniform vec3 uTransparencyGridDim;
|
|
118
|
+
uniform vec4 uTransparencyGridTransform;
|
|
119
|
+
uniform sampler2D tTransparencyGrid;
|
|
120
|
+
#endif
|
|
121
|
+
uniform float uTransparencyStrength;
|
|
122
|
+
#endif
|
|
123
123
|
`;
|
|
@@ -4,108 +4,108 @@
|
|
|
4
4
|
* @author Ludovic Autin <autin@scripps.edu>
|
|
5
5
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
6
6
|
*/
|
|
7
|
-
export const common_clip = `
|
|
8
|
-
#if dClipObjectCount != 0
|
|
9
|
-
vec3 quaternionTransform(const in vec4 q, const in vec3 v) {
|
|
10
|
-
vec3 t = 2.0 * cross(q.xyz, v);
|
|
11
|
-
return v + q.w * t + cross(q.xyz, t);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
vec4 computePlane(const in vec3 normal, const in vec3 inPoint) {
|
|
15
|
-
return vec4(normalize(normal), -dot(normal, inPoint));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
float planeSD(const in vec4 plane, const in vec3 center) {
|
|
19
|
-
return -dot(plane.xyz, center - plane.xyz * -plane.w);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
float sphereSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
23
|
-
return (
|
|
24
|
-
length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0
|
|
25
|
-
) * min(min(size.x, size.y), size.z);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
float cubeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
29
|
-
vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;
|
|
30
|
-
return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
float cylinderSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
34
|
-
vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
|
|
35
|
-
|
|
36
|
-
vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;
|
|
37
|
-
return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
float infiniteConeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
41
|
-
vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
|
|
42
|
-
|
|
43
|
-
float q = length(t.xy);
|
|
44
|
-
return dot(size.xy, vec2(q, t.z));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
float getSignedDistance(const in vec3 center, const in int type, const in vec3 position, const in vec4 rotation, const in vec3 scale) {
|
|
48
|
-
if (type == 1) {
|
|
49
|
-
vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));
|
|
50
|
-
vec4 plane = computePlane(normal, position);
|
|
51
|
-
return planeSD(plane, center);
|
|
52
|
-
} else if (type == 2) {
|
|
53
|
-
return sphereSD(position, rotation, scale * 0.5, center);
|
|
54
|
-
} else if (type == 3) {
|
|
55
|
-
return cubeSD(position, rotation, scale * 0.5, center);
|
|
56
|
-
} else if (type == 4) {
|
|
57
|
-
return cylinderSD(position, rotation, scale * 0.5, center);
|
|
58
|
-
} else if (type == 5) {
|
|
59
|
-
return infiniteConeSD(position, rotation, scale * 0.5, center);
|
|
60
|
-
} else {
|
|
61
|
-
return 0.1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
#if __VERSION__ == 100
|
|
66
|
-
// 8-bit
|
|
67
|
-
int bitwiseAnd(in int a, in int b) {
|
|
68
|
-
int d = 128;
|
|
69
|
-
int result = 0;
|
|
70
|
-
for (int i = 0; i < 8; ++i) {
|
|
71
|
-
if (d <= 0) break;
|
|
72
|
-
if (a >= d && b >= d) result += d;
|
|
73
|
-
if (a >= d) a -= d;
|
|
74
|
-
if (b >= d) b -= d;
|
|
75
|
-
d /= 2;
|
|
76
|
-
}
|
|
77
|
-
return result;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
bool hasBit(const in int mask, const in int bit) {
|
|
81
|
-
return bitwiseAnd(mask, bit) == 0;
|
|
82
|
-
}
|
|
83
|
-
#else
|
|
84
|
-
bool hasBit(const in int mask, const in int bit) {
|
|
85
|
-
return (mask & bit) == 0;
|
|
86
|
-
}
|
|
87
|
-
#endif
|
|
88
|
-
|
|
89
|
-
bool clipTest(const in vec4 sphere) {
|
|
90
|
-
// flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)
|
|
91
|
-
#if defined(dClipping)
|
|
92
|
-
int flag = int(floor(vClipping * 255.0 + 0.5));
|
|
93
|
-
#else
|
|
94
|
-
int flag = 0;
|
|
95
|
-
#endif
|
|
96
|
-
|
|
97
|
-
#pragma unroll_loop_start
|
|
98
|
-
for (int i = 0; i < dClipObjectCount; ++i) {
|
|
99
|
-
if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {
|
|
100
|
-
// TODO take sphere radius into account?
|
|
101
|
-
bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;
|
|
102
|
-
if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
#pragma unroll_loop_end
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
#endif
|
|
7
|
+
export const common_clip = `
|
|
8
|
+
#if dClipObjectCount != 0
|
|
9
|
+
vec3 quaternionTransform(const in vec4 q, const in vec3 v) {
|
|
10
|
+
vec3 t = 2.0 * cross(q.xyz, v);
|
|
11
|
+
return v + q.w * t + cross(q.xyz, t);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
vec4 computePlane(const in vec3 normal, const in vec3 inPoint) {
|
|
15
|
+
return vec4(normalize(normal), -dot(normal, inPoint));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
float planeSD(const in vec4 plane, const in vec3 center) {
|
|
19
|
+
return -dot(plane.xyz, center - plane.xyz * -plane.w);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
float sphereSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
23
|
+
return (
|
|
24
|
+
length(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position) / size) - 1.0
|
|
25
|
+
) * min(min(size.x, size.y), size.z);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
float cubeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
29
|
+
vec3 d = abs(quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position)) - size;
|
|
30
|
+
return min(max(d.x, max(d.y, d.z)), 0.0) + length(max(d, 0.0));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
float cylinderSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
34
|
+
vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
|
|
35
|
+
|
|
36
|
+
vec2 d = abs(vec2(length(t.xz), t.y)) - size.xy;
|
|
37
|
+
return min(max(d.x, d.y), 0.0) + length(max(d, 0.0));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
float infiniteConeSD(const in vec3 position, const in vec4 rotation, const in vec3 size, const in vec3 center) {
|
|
41
|
+
vec3 t = quaternionTransform(vec4(-rotation.x, -rotation.y, -rotation.z, rotation.w), center - position);
|
|
42
|
+
|
|
43
|
+
float q = length(t.xy);
|
|
44
|
+
return dot(size.xy, vec2(q, t.z));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
float getSignedDistance(const in vec3 center, const in int type, const in vec3 position, const in vec4 rotation, const in vec3 scale) {
|
|
48
|
+
if (type == 1) {
|
|
49
|
+
vec3 normal = quaternionTransform(rotation, vec3(0.0, 1.0, 0.0));
|
|
50
|
+
vec4 plane = computePlane(normal, position);
|
|
51
|
+
return planeSD(plane, center);
|
|
52
|
+
} else if (type == 2) {
|
|
53
|
+
return sphereSD(position, rotation, scale * 0.5, center);
|
|
54
|
+
} else if (type == 3) {
|
|
55
|
+
return cubeSD(position, rotation, scale * 0.5, center);
|
|
56
|
+
} else if (type == 4) {
|
|
57
|
+
return cylinderSD(position, rotation, scale * 0.5, center);
|
|
58
|
+
} else if (type == 5) {
|
|
59
|
+
return infiniteConeSD(position, rotation, scale * 0.5, center);
|
|
60
|
+
} else {
|
|
61
|
+
return 0.1;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#if __VERSION__ == 100
|
|
66
|
+
// 8-bit
|
|
67
|
+
int bitwiseAnd(in int a, in int b) {
|
|
68
|
+
int d = 128;
|
|
69
|
+
int result = 0;
|
|
70
|
+
for (int i = 0; i < 8; ++i) {
|
|
71
|
+
if (d <= 0) break;
|
|
72
|
+
if (a >= d && b >= d) result += d;
|
|
73
|
+
if (a >= d) a -= d;
|
|
74
|
+
if (b >= d) b -= d;
|
|
75
|
+
d /= 2;
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
bool hasBit(const in int mask, const in int bit) {
|
|
81
|
+
return bitwiseAnd(mask, bit) == 0;
|
|
82
|
+
}
|
|
83
|
+
#else
|
|
84
|
+
bool hasBit(const in int mask, const in int bit) {
|
|
85
|
+
return (mask & bit) == 0;
|
|
86
|
+
}
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
bool clipTest(const in vec4 sphere) {
|
|
90
|
+
// flag is a bit-flag for clip-objects to ignore (note, object ids start at 1 not 0)
|
|
91
|
+
#if defined(dClipping)
|
|
92
|
+
int flag = int(floor(vClipping * 255.0 + 0.5));
|
|
93
|
+
#else
|
|
94
|
+
int flag = 0;
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
#pragma unroll_loop_start
|
|
98
|
+
for (int i = 0; i < dClipObjectCount; ++i) {
|
|
99
|
+
if (flag == 0 || hasBit(flag, UNROLLED_LOOP_INDEX + 1)) {
|
|
100
|
+
// TODO take sphere radius into account?
|
|
101
|
+
bool test = getSignedDistance(sphere.xyz, uClipObjectType[i], uClipObjectPosition[i], uClipObjectRotation[i], uClipObjectScale[i]) <= 0.0;
|
|
102
|
+
if ((!uClipObjectInvert[i] && test) || (uClipObjectInvert[i] && !test)) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
#pragma unroll_loop_end
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
#endif
|
|
111
111
|
`;
|