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
|
@@ -3,152 +3,152 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
6
|
-
export const spheres_frag = `
|
|
7
|
-
precision highp float;
|
|
8
|
-
precision highp int;
|
|
9
|
-
|
|
10
|
-
#define bumpEnabled
|
|
11
|
-
|
|
12
|
-
#include common
|
|
13
|
-
#include common_frag_params
|
|
14
|
-
#include color_frag_params
|
|
15
|
-
#include light_frag_params
|
|
16
|
-
#include common_clip
|
|
17
|
-
|
|
18
|
-
uniform mat4 uInvView;
|
|
19
|
-
uniform float uAlphaThickness;
|
|
20
|
-
|
|
21
|
-
varying float vRadius;
|
|
22
|
-
varying vec3 vPoint;
|
|
23
|
-
varying vec3 vPointViewPosition;
|
|
24
|
-
|
|
25
|
-
#ifdef dSolidInterior
|
|
26
|
-
const bool solidInterior = true;
|
|
27
|
-
#else
|
|
28
|
-
const bool solidInterior = false;
|
|
29
|
-
#endif
|
|
30
|
-
|
|
31
|
-
bool SphereImpostor(out vec3 modelPos, out vec3 cameraPos, out vec3 cameraNormal, out bool interior, out float fragmentDepth){
|
|
32
|
-
vec3 cameraSpherePos = -vPointViewPosition;
|
|
33
|
-
|
|
34
|
-
vec3 rayOrigin = mix(vec3(0.0, 0.0, 0.0), vPoint, uIsOrtho);
|
|
35
|
-
vec3 rayDirection = mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
|
|
36
|
-
vec3 cameraSphereDir = mix(cameraSpherePos, rayOrigin - cameraSpherePos, uIsOrtho);
|
|
37
|
-
|
|
38
|
-
float B = dot(rayDirection, cameraSphereDir);
|
|
39
|
-
float det = B * B + vRadius * vRadius - dot(cameraSphereDir, cameraSphereDir);
|
|
40
|
-
|
|
41
|
-
if (det < 0.0) return false;
|
|
42
|
-
|
|
43
|
-
float sqrtDet = sqrt(det);
|
|
44
|
-
float posT = mix(B + sqrtDet, B - sqrtDet, uIsOrtho);
|
|
45
|
-
float negT = mix(B - sqrtDet, B + sqrtDet, uIsOrtho);
|
|
46
|
-
|
|
47
|
-
cameraPos = rayDirection * negT + rayOrigin;
|
|
48
|
-
modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
|
|
49
|
-
fragmentDepth = calcDepth(cameraPos);
|
|
50
|
-
|
|
51
|
-
bool objectClipped = false;
|
|
52
|
-
|
|
53
|
-
#if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
|
|
54
|
-
if (clipTest(vec4(modelPos, 0.0))) {
|
|
55
|
-
objectClipped = true;
|
|
56
|
-
fragmentDepth = -1.0;
|
|
57
|
-
}
|
|
58
|
-
#endif
|
|
59
|
-
|
|
60
|
-
if (fragmentDepth > 0.0) {
|
|
61
|
-
cameraNormal = normalize(cameraPos - cameraSpherePos);
|
|
62
|
-
interior = false;
|
|
63
|
-
return true;
|
|
64
|
-
} else if (uDoubleSided || solidInterior) {
|
|
65
|
-
cameraPos = rayDirection * posT + rayOrigin;
|
|
66
|
-
modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
|
|
67
|
-
fragmentDepth = calcDepth(cameraPos);
|
|
68
|
-
cameraNormal = -normalize(cameraPos - cameraSpherePos);
|
|
69
|
-
interior = true;
|
|
70
|
-
if (fragmentDepth > 0.0) {
|
|
71
|
-
#ifdef dSolidInterior
|
|
72
|
-
if (!objectClipped) {
|
|
73
|
-
fragmentDepth = 0.0 + (0.0000001 / vRadius);
|
|
74
|
-
cameraNormal = -mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
|
|
75
|
-
}
|
|
76
|
-
#endif
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
void main(void){
|
|
85
|
-
vec3 cameraNormal;
|
|
86
|
-
float fragmentDepth;
|
|
87
|
-
|
|
88
|
-
#ifdef dApproximate
|
|
89
|
-
vec3 pointDir = -vPointViewPosition - vPoint;
|
|
90
|
-
if (dot(pointDir, pointDir) > vRadius * vRadius) discard;
|
|
91
|
-
vec3 vViewPosition = -vPointViewPosition;
|
|
92
|
-
fragmentDepth = gl_FragCoord.z;
|
|
93
|
-
#if !defined(dIgnoreLight) || defined(dXrayShaded)
|
|
94
|
-
pointDir.z -= cos(length(pointDir) / vRadius);
|
|
95
|
-
cameraNormal = -normalize(pointDir / vRadius);
|
|
96
|
-
#endif
|
|
97
|
-
interior = false;
|
|
98
|
-
#else
|
|
99
|
-
vec3 modelPos;
|
|
100
|
-
vec3 cameraPos;
|
|
101
|
-
bool hit = SphereImpostor(modelPos, cameraPos, cameraNormal, interior, fragmentDepth);
|
|
102
|
-
if (!hit) discard;
|
|
103
|
-
|
|
104
|
-
if (fragmentDepth < 0.0) discard;
|
|
105
|
-
if (fragmentDepth > 1.0) discard;
|
|
106
|
-
|
|
107
|
-
gl_FragDepthEXT = fragmentDepth;
|
|
108
|
-
|
|
109
|
-
vec3 vModelPosition = modelPos;
|
|
110
|
-
vec3 vViewPosition = cameraPos;
|
|
111
|
-
#endif
|
|
112
|
-
|
|
113
|
-
#include fade_lod
|
|
114
|
-
#if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
|
|
115
|
-
#include clip_pixel
|
|
116
|
-
#endif
|
|
117
|
-
#include assign_material_color
|
|
118
|
-
|
|
119
|
-
#if defined(dRenderVariant_color)
|
|
120
|
-
if (uRenderMask == MaskTransparent && uAlphaThickness > 0.0) {
|
|
121
|
-
material.a *= min(1.0, vRadius / uAlphaThickness);
|
|
122
|
-
}
|
|
123
|
-
#endif
|
|
124
|
-
|
|
125
|
-
#include check_transparency
|
|
126
|
-
|
|
127
|
-
#if defined(dRenderVariant_pick)
|
|
128
|
-
#include check_picking_alpha
|
|
129
|
-
#ifdef requiredDrawBuffers
|
|
130
|
-
gl_FragColor = vObject;
|
|
131
|
-
gl_FragData[1] = vInstance;
|
|
132
|
-
gl_FragData[2] = vGroup;
|
|
133
|
-
gl_FragData[3] = packDepthToRGBA(fragmentDepth);
|
|
134
|
-
#else
|
|
135
|
-
gl_FragColor = vColor;
|
|
136
|
-
#endif
|
|
137
|
-
#elif defined(dRenderVariant_depth)
|
|
138
|
-
gl_FragColor = material;
|
|
139
|
-
#elif defined(dRenderVariant_marking)
|
|
140
|
-
gl_FragColor = material;
|
|
141
|
-
#elif defined(dRenderVariant_emissive)
|
|
142
|
-
gl_FragColor = material;
|
|
143
|
-
#elif defined(dRenderVariant_color)
|
|
144
|
-
vec3 normal = -cameraNormal;
|
|
145
|
-
#include apply_light_color
|
|
146
|
-
|
|
147
|
-
#include apply_interior_color
|
|
148
|
-
#include apply_marker_color
|
|
149
|
-
#include apply_fog
|
|
150
|
-
#include wboit_write
|
|
151
|
-
#include dpoit_write
|
|
152
|
-
#endif
|
|
153
|
-
}
|
|
6
|
+
export const spheres_frag = `
|
|
7
|
+
precision highp float;
|
|
8
|
+
precision highp int;
|
|
9
|
+
|
|
10
|
+
#define bumpEnabled
|
|
11
|
+
|
|
12
|
+
#include common
|
|
13
|
+
#include common_frag_params
|
|
14
|
+
#include color_frag_params
|
|
15
|
+
#include light_frag_params
|
|
16
|
+
#include common_clip
|
|
17
|
+
|
|
18
|
+
uniform mat4 uInvView;
|
|
19
|
+
uniform float uAlphaThickness;
|
|
20
|
+
|
|
21
|
+
varying float vRadius;
|
|
22
|
+
varying vec3 vPoint;
|
|
23
|
+
varying vec3 vPointViewPosition;
|
|
24
|
+
|
|
25
|
+
#ifdef dSolidInterior
|
|
26
|
+
const bool solidInterior = true;
|
|
27
|
+
#else
|
|
28
|
+
const bool solidInterior = false;
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
bool SphereImpostor(out vec3 modelPos, out vec3 cameraPos, out vec3 cameraNormal, out bool interior, out float fragmentDepth){
|
|
32
|
+
vec3 cameraSpherePos = -vPointViewPosition;
|
|
33
|
+
|
|
34
|
+
vec3 rayOrigin = mix(vec3(0.0, 0.0, 0.0), vPoint, uIsOrtho);
|
|
35
|
+
vec3 rayDirection = mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
|
|
36
|
+
vec3 cameraSphereDir = mix(cameraSpherePos, rayOrigin - cameraSpherePos, uIsOrtho);
|
|
37
|
+
|
|
38
|
+
float B = dot(rayDirection, cameraSphereDir);
|
|
39
|
+
float det = B * B + vRadius * vRadius - dot(cameraSphereDir, cameraSphereDir);
|
|
40
|
+
|
|
41
|
+
if (det < 0.0) return false;
|
|
42
|
+
|
|
43
|
+
float sqrtDet = sqrt(det);
|
|
44
|
+
float posT = mix(B + sqrtDet, B - sqrtDet, uIsOrtho);
|
|
45
|
+
float negT = mix(B - sqrtDet, B + sqrtDet, uIsOrtho);
|
|
46
|
+
|
|
47
|
+
cameraPos = rayDirection * negT + rayOrigin;
|
|
48
|
+
modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
|
|
49
|
+
fragmentDepth = calcDepth(cameraPos);
|
|
50
|
+
|
|
51
|
+
bool objectClipped = false;
|
|
52
|
+
|
|
53
|
+
#if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
|
|
54
|
+
if (clipTest(vec4(modelPos, 0.0))) {
|
|
55
|
+
objectClipped = true;
|
|
56
|
+
fragmentDepth = -1.0;
|
|
57
|
+
}
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
if (fragmentDepth > 0.0) {
|
|
61
|
+
cameraNormal = normalize(cameraPos - cameraSpherePos);
|
|
62
|
+
interior = false;
|
|
63
|
+
return true;
|
|
64
|
+
} else if (uDoubleSided || solidInterior) {
|
|
65
|
+
cameraPos = rayDirection * posT + rayOrigin;
|
|
66
|
+
modelPos = (uInvView * vec4(cameraPos, 1.0)).xyz;
|
|
67
|
+
fragmentDepth = calcDepth(cameraPos);
|
|
68
|
+
cameraNormal = -normalize(cameraPos - cameraSpherePos);
|
|
69
|
+
interior = true;
|
|
70
|
+
if (fragmentDepth > 0.0) {
|
|
71
|
+
#ifdef dSolidInterior
|
|
72
|
+
if (!objectClipped) {
|
|
73
|
+
fragmentDepth = 0.0 + (0.0000001 / vRadius);
|
|
74
|
+
cameraNormal = -mix(normalize(vPoint), vec3(0.0, 0.0, 1.0), uIsOrtho);
|
|
75
|
+
}
|
|
76
|
+
#endif
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
void main(void){
|
|
85
|
+
vec3 cameraNormal;
|
|
86
|
+
float fragmentDepth;
|
|
87
|
+
|
|
88
|
+
#ifdef dApproximate
|
|
89
|
+
vec3 pointDir = -vPointViewPosition - vPoint;
|
|
90
|
+
if (dot(pointDir, pointDir) > vRadius * vRadius) discard;
|
|
91
|
+
vec3 vViewPosition = -vPointViewPosition;
|
|
92
|
+
fragmentDepth = gl_FragCoord.z;
|
|
93
|
+
#if !defined(dIgnoreLight) || defined(dXrayShaded)
|
|
94
|
+
pointDir.z -= cos(length(pointDir) / vRadius);
|
|
95
|
+
cameraNormal = -normalize(pointDir / vRadius);
|
|
96
|
+
#endif
|
|
97
|
+
interior = false;
|
|
98
|
+
#else
|
|
99
|
+
vec3 modelPos;
|
|
100
|
+
vec3 cameraPos;
|
|
101
|
+
bool hit = SphereImpostor(modelPos, cameraPos, cameraNormal, interior, fragmentDepth);
|
|
102
|
+
if (!hit) discard;
|
|
103
|
+
|
|
104
|
+
if (fragmentDepth < 0.0) discard;
|
|
105
|
+
if (fragmentDepth > 1.0) discard;
|
|
106
|
+
|
|
107
|
+
gl_FragDepthEXT = fragmentDepth;
|
|
108
|
+
|
|
109
|
+
vec3 vModelPosition = modelPos;
|
|
110
|
+
vec3 vViewPosition = cameraPos;
|
|
111
|
+
#endif
|
|
112
|
+
|
|
113
|
+
#include fade_lod
|
|
114
|
+
#if !defined(dClipPrimitive) && defined(dClipVariant_pixel) && dClipObjectCount != 0
|
|
115
|
+
#include clip_pixel
|
|
116
|
+
#endif
|
|
117
|
+
#include assign_material_color
|
|
118
|
+
|
|
119
|
+
#if defined(dRenderVariant_color)
|
|
120
|
+
if (uRenderMask == MaskTransparent && uAlphaThickness > 0.0) {
|
|
121
|
+
material.a *= min(1.0, vRadius / uAlphaThickness);
|
|
122
|
+
}
|
|
123
|
+
#endif
|
|
124
|
+
|
|
125
|
+
#include check_transparency
|
|
126
|
+
|
|
127
|
+
#if defined(dRenderVariant_pick)
|
|
128
|
+
#include check_picking_alpha
|
|
129
|
+
#ifdef requiredDrawBuffers
|
|
130
|
+
gl_FragColor = vObject;
|
|
131
|
+
gl_FragData[1] = vInstance;
|
|
132
|
+
gl_FragData[2] = vGroup;
|
|
133
|
+
gl_FragData[3] = packDepthToRGBA(fragmentDepth);
|
|
134
|
+
#else
|
|
135
|
+
gl_FragColor = vColor;
|
|
136
|
+
#endif
|
|
137
|
+
#elif defined(dRenderVariant_depth)
|
|
138
|
+
gl_FragColor = material;
|
|
139
|
+
#elif defined(dRenderVariant_marking)
|
|
140
|
+
gl_FragColor = material;
|
|
141
|
+
#elif defined(dRenderVariant_emissive)
|
|
142
|
+
gl_FragColor = material;
|
|
143
|
+
#elif defined(dRenderVariant_color)
|
|
144
|
+
vec3 normal = -cameraNormal;
|
|
145
|
+
#include apply_light_color
|
|
146
|
+
|
|
147
|
+
#include apply_interior_color
|
|
148
|
+
#include apply_marker_color
|
|
149
|
+
#include apply_fog
|
|
150
|
+
#include wboit_write
|
|
151
|
+
#include dpoit_write
|
|
152
|
+
#endif
|
|
153
|
+
}
|
|
154
154
|
`;
|
|
@@ -3,136 +3,136 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
6
|
-
export const spheres_vert = `
|
|
7
|
-
precision highp float;
|
|
8
|
-
precision highp int;
|
|
9
|
-
|
|
10
|
-
#include common
|
|
11
|
-
#include read_from_texture
|
|
12
|
-
#include common_vert_params
|
|
13
|
-
#include color_vert_params
|
|
14
|
-
#include size_vert_params
|
|
15
|
-
#include common_clip
|
|
16
|
-
|
|
17
|
-
uniform mat4 uModelView;
|
|
18
|
-
uniform mat4 uInvProjection;
|
|
19
|
-
uniform float uIsOrtho;
|
|
20
|
-
|
|
21
|
-
uniform vec2 uTexDim;
|
|
22
|
-
uniform sampler2D tPositionGroup;
|
|
23
|
-
|
|
24
|
-
attribute mat4 aTransform;
|
|
25
|
-
attribute float aInstance;
|
|
26
|
-
|
|
27
|
-
varying float vRadius;
|
|
28
|
-
varying vec3 vPoint;
|
|
29
|
-
varying vec3 vPointViewPosition;
|
|
30
|
-
|
|
31
|
-
#include matrix_scale
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Bounding rectangle of a clipped, perspective-projected 3D Sphere.
|
|
35
|
-
* Michael Mara, Morgan McGuire. 2013
|
|
36
|
-
*
|
|
37
|
-
* Specialization by Arseny Kapoulkine, MIT License Copyright (c) 2018
|
|
38
|
-
* https://github.com/zeux/niagara
|
|
39
|
-
*/
|
|
40
|
-
void sphereProjection(const in vec3 p, const in float r, const in vec2 mapping) {
|
|
41
|
-
vec3 pr = p * r;
|
|
42
|
-
float pzr2 = p.z * p.z - r * r;
|
|
43
|
-
|
|
44
|
-
float vx = sqrt(p.x * p.x + pzr2);
|
|
45
|
-
float minx = ((vx * p.x - pr.z) / (vx * p.z + pr.x)) * uProjection[0][0];
|
|
46
|
-
float maxx = ((vx * p.x + pr.z) / (vx * p.z - pr.x)) * uProjection[0][0];
|
|
47
|
-
|
|
48
|
-
float vy = sqrt(p.y * p.y + pzr2);
|
|
49
|
-
float miny = ((vy * p.y - pr.z) / (vy * p.z + pr.y)) * uProjection[1][1];
|
|
50
|
-
float maxy = ((vy * p.y + pr.z) / (vy * p.z - pr.y)) * uProjection[1][1];
|
|
51
|
-
|
|
52
|
-
gl_Position.xy = vec2(maxx + minx, maxy + miny) * -0.5;
|
|
53
|
-
gl_Position.xy -= mapping * vec2(maxx - minx, maxy - miny) * 0.5;
|
|
54
|
-
gl_Position.xy *= gl_Position.w;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
void main(void){
|
|
58
|
-
vec2 mapping = vec2(1.0, 1.0); // vertices 2 and 5
|
|
59
|
-
#if __VERSION__ == 100
|
|
60
|
-
int m = imod(VertexID, 6);
|
|
61
|
-
#else
|
|
62
|
-
int m = VertexID % 6;
|
|
63
|
-
#endif
|
|
64
|
-
if (m == 0) {
|
|
65
|
-
mapping = vec2(-1.0, 1.0);
|
|
66
|
-
} else if (m == 1 || m == 3) {
|
|
67
|
-
mapping = vec2(-1.0, -1.0);
|
|
68
|
-
} else if (m == 4) {
|
|
69
|
-
mapping = vec2(1.0, -1.0);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
vec4 positionGroup = readFromTexture(tPositionGroup, VertexID / 6, uTexDim);
|
|
73
|
-
vec3 position = positionGroup.rgb;
|
|
74
|
-
float group = positionGroup.a;
|
|
75
|
-
|
|
76
|
-
#include assign_color_varying
|
|
77
|
-
#include assign_marker_varying
|
|
78
|
-
#include assign_clipping_varying
|
|
79
|
-
#include assign_size
|
|
80
|
-
|
|
81
|
-
vRadius = size * matrixScale(uModelView);
|
|
82
|
-
|
|
83
|
-
vec4 position4 = vec4(position, 1.0);
|
|
84
|
-
vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
|
|
85
|
-
|
|
86
|
-
float d;
|
|
87
|
-
if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
|
|
88
|
-
d = dot(uCameraPlane.xyz, vModelPosition) + uCameraPlane.w;
|
|
89
|
-
float f = min(
|
|
90
|
-
smoothstep(uLod.x, uLod.x + uLod.z, d),
|
|
91
|
-
1.0 - smoothstep(uLod.y - uLod.z, uLod.y, d)
|
|
92
|
-
) * uLod.w;
|
|
93
|
-
vRadius *= f;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
vec4 mvPosition = uModelView * aTransform * position4;
|
|
97
|
-
|
|
98
|
-
#ifdef dApproximate
|
|
99
|
-
vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
|
|
100
|
-
mvCorner.xy += mapping * vRadius;
|
|
101
|
-
gl_Position = uProjection * mvCorner;
|
|
102
|
-
#else
|
|
103
|
-
if (uIsOrtho == 1.0) {
|
|
104
|
-
vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
|
|
105
|
-
mvCorner.xy += mapping * vRadius;
|
|
106
|
-
gl_Position = uProjection * mvCorner;
|
|
107
|
-
} else {
|
|
108
|
-
gl_Position = uProjection * vec4(mvPosition.xyz, 1.0);
|
|
109
|
-
sphereProjection(mvPosition.xyz, vRadius, mapping);
|
|
110
|
-
}
|
|
111
|
-
#endif
|
|
112
|
-
|
|
113
|
-
vec4 vPoint4 = uInvProjection * gl_Position;
|
|
114
|
-
vPoint = vPoint4.xyz / vPoint4.w;
|
|
115
|
-
vPointViewPosition = -mvPosition.xyz / mvPosition.w;
|
|
116
|
-
|
|
117
|
-
if (gl_Position.z < -gl_Position.w) {
|
|
118
|
-
mvPosition.z -= 2.0 * vRadius; // avoid clipping
|
|
119
|
-
gl_Position.z = (uProjection * vec4(mvPosition.xyz, 1.0)).z;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
|
|
123
|
-
if (d < uLod.x || d > uLod.y) {
|
|
124
|
-
// move out of [ -w, +w ] to 'discard' in vert shader
|
|
125
|
-
gl_Position.z = 2.0 * gl_Position.w;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
#if defined(dClipPrimitive) && !defined(dClipVariant_instance) && dClipObjectCount != 0
|
|
130
|
-
if (clipTest(vec4(vModelPosition.xyz, 0.0))) {
|
|
131
|
-
// move out of [ -w, +w ] to 'discard' in vert shader
|
|
132
|
-
gl_Position.z = 2.0 * gl_Position.w;
|
|
133
|
-
}
|
|
134
|
-
#else
|
|
135
|
-
#include clip_instance
|
|
136
|
-
#endif
|
|
137
|
-
}
|
|
6
|
+
export const spheres_vert = `
|
|
7
|
+
precision highp float;
|
|
8
|
+
precision highp int;
|
|
9
|
+
|
|
10
|
+
#include common
|
|
11
|
+
#include read_from_texture
|
|
12
|
+
#include common_vert_params
|
|
13
|
+
#include color_vert_params
|
|
14
|
+
#include size_vert_params
|
|
15
|
+
#include common_clip
|
|
16
|
+
|
|
17
|
+
uniform mat4 uModelView;
|
|
18
|
+
uniform mat4 uInvProjection;
|
|
19
|
+
uniform float uIsOrtho;
|
|
20
|
+
|
|
21
|
+
uniform vec2 uTexDim;
|
|
22
|
+
uniform sampler2D tPositionGroup;
|
|
23
|
+
|
|
24
|
+
attribute mat4 aTransform;
|
|
25
|
+
attribute float aInstance;
|
|
26
|
+
|
|
27
|
+
varying float vRadius;
|
|
28
|
+
varying vec3 vPoint;
|
|
29
|
+
varying vec3 vPointViewPosition;
|
|
30
|
+
|
|
31
|
+
#include matrix_scale
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Bounding rectangle of a clipped, perspective-projected 3D Sphere.
|
|
35
|
+
* Michael Mara, Morgan McGuire. 2013
|
|
36
|
+
*
|
|
37
|
+
* Specialization by Arseny Kapoulkine, MIT License Copyright (c) 2018
|
|
38
|
+
* https://github.com/zeux/niagara
|
|
39
|
+
*/
|
|
40
|
+
void sphereProjection(const in vec3 p, const in float r, const in vec2 mapping) {
|
|
41
|
+
vec3 pr = p * r;
|
|
42
|
+
float pzr2 = p.z * p.z - r * r;
|
|
43
|
+
|
|
44
|
+
float vx = sqrt(p.x * p.x + pzr2);
|
|
45
|
+
float minx = ((vx * p.x - pr.z) / (vx * p.z + pr.x)) * uProjection[0][0];
|
|
46
|
+
float maxx = ((vx * p.x + pr.z) / (vx * p.z - pr.x)) * uProjection[0][0];
|
|
47
|
+
|
|
48
|
+
float vy = sqrt(p.y * p.y + pzr2);
|
|
49
|
+
float miny = ((vy * p.y - pr.z) / (vy * p.z + pr.y)) * uProjection[1][1];
|
|
50
|
+
float maxy = ((vy * p.y + pr.z) / (vy * p.z - pr.y)) * uProjection[1][1];
|
|
51
|
+
|
|
52
|
+
gl_Position.xy = vec2(maxx + minx, maxy + miny) * -0.5;
|
|
53
|
+
gl_Position.xy -= mapping * vec2(maxx - minx, maxy - miny) * 0.5;
|
|
54
|
+
gl_Position.xy *= gl_Position.w;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void main(void){
|
|
58
|
+
vec2 mapping = vec2(1.0, 1.0); // vertices 2 and 5
|
|
59
|
+
#if __VERSION__ == 100
|
|
60
|
+
int m = imod(VertexID, 6);
|
|
61
|
+
#else
|
|
62
|
+
int m = VertexID % 6;
|
|
63
|
+
#endif
|
|
64
|
+
if (m == 0) {
|
|
65
|
+
mapping = vec2(-1.0, 1.0);
|
|
66
|
+
} else if (m == 1 || m == 3) {
|
|
67
|
+
mapping = vec2(-1.0, -1.0);
|
|
68
|
+
} else if (m == 4) {
|
|
69
|
+
mapping = vec2(1.0, -1.0);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
vec4 positionGroup = readFromTexture(tPositionGroup, VertexID / 6, uTexDim);
|
|
73
|
+
vec3 position = positionGroup.rgb;
|
|
74
|
+
float group = positionGroup.a;
|
|
75
|
+
|
|
76
|
+
#include assign_color_varying
|
|
77
|
+
#include assign_marker_varying
|
|
78
|
+
#include assign_clipping_varying
|
|
79
|
+
#include assign_size
|
|
80
|
+
|
|
81
|
+
vRadius = size * matrixScale(uModelView);
|
|
82
|
+
|
|
83
|
+
vec4 position4 = vec4(position, 1.0);
|
|
84
|
+
vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
|
|
85
|
+
|
|
86
|
+
float d;
|
|
87
|
+
if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
|
|
88
|
+
d = dot(uCameraPlane.xyz, vModelPosition) + uCameraPlane.w;
|
|
89
|
+
float f = min(
|
|
90
|
+
smoothstep(uLod.x, uLod.x + uLod.z, d),
|
|
91
|
+
1.0 - smoothstep(uLod.y - uLod.z, uLod.y, d)
|
|
92
|
+
) * uLod.w;
|
|
93
|
+
vRadius *= f;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
vec4 mvPosition = uModelView * aTransform * position4;
|
|
97
|
+
|
|
98
|
+
#ifdef dApproximate
|
|
99
|
+
vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
|
|
100
|
+
mvCorner.xy += mapping * vRadius;
|
|
101
|
+
gl_Position = uProjection * mvCorner;
|
|
102
|
+
#else
|
|
103
|
+
if (uIsOrtho == 1.0) {
|
|
104
|
+
vec4 mvCorner = vec4(mvPosition.xyz, 1.0);
|
|
105
|
+
mvCorner.xy += mapping * vRadius;
|
|
106
|
+
gl_Position = uProjection * mvCorner;
|
|
107
|
+
} else {
|
|
108
|
+
gl_Position = uProjection * vec4(mvPosition.xyz, 1.0);
|
|
109
|
+
sphereProjection(mvPosition.xyz, vRadius, mapping);
|
|
110
|
+
}
|
|
111
|
+
#endif
|
|
112
|
+
|
|
113
|
+
vec4 vPoint4 = uInvProjection * gl_Position;
|
|
114
|
+
vPoint = vPoint4.xyz / vPoint4.w;
|
|
115
|
+
vPointViewPosition = -mvPosition.xyz / mvPosition.w;
|
|
116
|
+
|
|
117
|
+
if (gl_Position.z < -gl_Position.w) {
|
|
118
|
+
mvPosition.z -= 2.0 * vRadius; // avoid clipping
|
|
119
|
+
gl_Position.z = (uProjection * vec4(mvPosition.xyz, 1.0)).z;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (uLod.w != 0.0 && (uLod.x != 0.0 || uLod.y != 0.0)) {
|
|
123
|
+
if (d < uLod.x || d > uLod.y) {
|
|
124
|
+
// move out of [ -w, +w ] to 'discard' in vert shader
|
|
125
|
+
gl_Position.z = 2.0 * gl_Position.w;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
#if defined(dClipPrimitive) && !defined(dClipVariant_instance) && dClipObjectCount != 0
|
|
130
|
+
if (clipTest(vec4(vModelPosition.xyz, 0.0))) {
|
|
131
|
+
// move out of [ -w, +w ] to 'discard' in vert shader
|
|
132
|
+
gl_Position.z = 2.0 * gl_Position.w;
|
|
133
|
+
}
|
|
134
|
+
#else
|
|
135
|
+
#include clip_instance
|
|
136
|
+
#endif
|
|
137
|
+
}
|
|
138
138
|
`;
|