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
|
@@ -8,121 +8,121 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.lines_vert = void 0;
|
|
11
|
-
exports.lines_vert = `
|
|
12
|
-
precision highp float;
|
|
13
|
-
precision highp int;
|
|
14
|
-
|
|
15
|
-
#include common
|
|
16
|
-
#include read_from_texture
|
|
17
|
-
#include common_vert_params
|
|
18
|
-
#include color_vert_params
|
|
19
|
-
#include size_vert_params
|
|
20
|
-
#include common_clip
|
|
21
|
-
|
|
22
|
-
uniform float uPixelRatio;
|
|
23
|
-
uniform vec4 uViewport;
|
|
24
|
-
|
|
25
|
-
attribute mat4 aTransform;
|
|
26
|
-
attribute float aInstance;
|
|
27
|
-
attribute float aGroup;
|
|
28
|
-
|
|
29
|
-
attribute vec2 aMapping;
|
|
30
|
-
attribute vec3 aStart;
|
|
31
|
-
attribute vec3 aEnd;
|
|
32
|
-
|
|
33
|
-
void trimSegment(const in vec4 start, inout vec4 end) {
|
|
34
|
-
// trim end segment so it terminates between the camera plane and the near plane
|
|
35
|
-
// conservative estimate of the near plane
|
|
36
|
-
float a = uProjection[2][2]; // 3rd entry in 3rd column
|
|
37
|
-
float b = uProjection[3][2]; // 3rd entry in 4th column
|
|
38
|
-
float nearEstimate = -0.5 * b / a;
|
|
39
|
-
float alpha = (nearEstimate - start.z) / (end.z - start.z);
|
|
40
|
-
end.xyz = mix(start.xyz, end.xyz, alpha);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
void main(){
|
|
44
|
-
float aspect = uViewport.z / uViewport.w;
|
|
45
|
-
|
|
46
|
-
#include assign_group
|
|
47
|
-
#include assign_color_varying
|
|
48
|
-
#include assign_marker_varying
|
|
49
|
-
#include assign_clipping_varying
|
|
50
|
-
#include assign_size
|
|
51
|
-
|
|
52
|
-
mat4 modelView = uView * uModel * aTransform;
|
|
53
|
-
|
|
54
|
-
// camera space
|
|
55
|
-
vec4 start = modelView * vec4(aStart, 1.0);
|
|
56
|
-
vec4 end = modelView * vec4(aEnd, 1.0);
|
|
57
|
-
|
|
58
|
-
// assign position
|
|
59
|
-
vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);
|
|
60
|
-
vec4 mvPosition = modelView * position4;
|
|
61
|
-
vViewPosition = mvPosition.xyz;
|
|
62
|
-
|
|
63
|
-
vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
|
|
64
|
-
|
|
65
|
-
// special case for perspective projection, and segments that terminate either in, or behind, the camera plane
|
|
66
|
-
// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
|
|
67
|
-
// but we need to perform ndc-space calculations in the shader, so we must address this issue directly
|
|
68
|
-
// perhaps there is a more elegant solution -- WestLangley
|
|
69
|
-
bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column
|
|
70
|
-
if (perspective) {
|
|
71
|
-
if (start.z < 0.0 && end.z >= 0.0) {
|
|
72
|
-
trimSegment(start, end);
|
|
73
|
-
} else if (end.z < 0.0 && start.z >= 0.0) {
|
|
74
|
-
trimSegment(end, start);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// clip space
|
|
79
|
-
vec4 clipStart = uProjection * start;
|
|
80
|
-
vec4 clipEnd = uProjection * end;
|
|
81
|
-
|
|
82
|
-
// ndc space
|
|
83
|
-
vec2 ndcStart = clipStart.xy / clipStart.w;
|
|
84
|
-
vec2 ndcEnd = clipEnd.xy / clipEnd.w;
|
|
85
|
-
|
|
86
|
-
// direction
|
|
87
|
-
vec2 dir = ndcEnd - ndcStart;
|
|
88
|
-
|
|
89
|
-
// account for clip-space aspect ratio
|
|
90
|
-
dir.x *= aspect;
|
|
91
|
-
dir = normalize(dir);
|
|
92
|
-
|
|
93
|
-
// perpendicular to dir
|
|
94
|
-
vec2 offset = vec2(dir.y, - dir.x);
|
|
95
|
-
|
|
96
|
-
// undo aspect ratio adjustment
|
|
97
|
-
dir.x /= aspect;
|
|
98
|
-
offset.x /= aspect;
|
|
99
|
-
|
|
100
|
-
// sign flip
|
|
101
|
-
if (aMapping.x < 0.0) offset *= -1.0;
|
|
102
|
-
|
|
103
|
-
// calculate linewidth
|
|
104
|
-
float linewidth;
|
|
105
|
-
#ifdef dLineSizeAttenuation
|
|
106
|
-
linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;
|
|
107
|
-
#else
|
|
108
|
-
linewidth = size * uPixelRatio;
|
|
109
|
-
#endif
|
|
110
|
-
linewidth = max(1.0, linewidth);
|
|
111
|
-
|
|
112
|
-
// adjust for linewidth
|
|
113
|
-
offset *= linewidth;
|
|
114
|
-
|
|
115
|
-
// adjust for clip-space to screen-space conversion
|
|
116
|
-
offset /= uViewport.w;
|
|
117
|
-
|
|
118
|
-
// select end
|
|
119
|
-
vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;
|
|
120
|
-
|
|
121
|
-
// back to clip space
|
|
122
|
-
offset *= clip.w;
|
|
123
|
-
clip.xy += offset;
|
|
124
|
-
gl_Position = clip;
|
|
125
|
-
|
|
126
|
-
#include clip_instance
|
|
127
|
-
}
|
|
11
|
+
exports.lines_vert = `
|
|
12
|
+
precision highp float;
|
|
13
|
+
precision highp int;
|
|
14
|
+
|
|
15
|
+
#include common
|
|
16
|
+
#include read_from_texture
|
|
17
|
+
#include common_vert_params
|
|
18
|
+
#include color_vert_params
|
|
19
|
+
#include size_vert_params
|
|
20
|
+
#include common_clip
|
|
21
|
+
|
|
22
|
+
uniform float uPixelRatio;
|
|
23
|
+
uniform vec4 uViewport;
|
|
24
|
+
|
|
25
|
+
attribute mat4 aTransform;
|
|
26
|
+
attribute float aInstance;
|
|
27
|
+
attribute float aGroup;
|
|
28
|
+
|
|
29
|
+
attribute vec2 aMapping;
|
|
30
|
+
attribute vec3 aStart;
|
|
31
|
+
attribute vec3 aEnd;
|
|
32
|
+
|
|
33
|
+
void trimSegment(const in vec4 start, inout vec4 end) {
|
|
34
|
+
// trim end segment so it terminates between the camera plane and the near plane
|
|
35
|
+
// conservative estimate of the near plane
|
|
36
|
+
float a = uProjection[2][2]; // 3rd entry in 3rd column
|
|
37
|
+
float b = uProjection[3][2]; // 3rd entry in 4th column
|
|
38
|
+
float nearEstimate = -0.5 * b / a;
|
|
39
|
+
float alpha = (nearEstimate - start.z) / (end.z - start.z);
|
|
40
|
+
end.xyz = mix(start.xyz, end.xyz, alpha);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
void main(){
|
|
44
|
+
float aspect = uViewport.z / uViewport.w;
|
|
45
|
+
|
|
46
|
+
#include assign_group
|
|
47
|
+
#include assign_color_varying
|
|
48
|
+
#include assign_marker_varying
|
|
49
|
+
#include assign_clipping_varying
|
|
50
|
+
#include assign_size
|
|
51
|
+
|
|
52
|
+
mat4 modelView = uView * uModel * aTransform;
|
|
53
|
+
|
|
54
|
+
// camera space
|
|
55
|
+
vec4 start = modelView * vec4(aStart, 1.0);
|
|
56
|
+
vec4 end = modelView * vec4(aEnd, 1.0);
|
|
57
|
+
|
|
58
|
+
// assign position
|
|
59
|
+
vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);
|
|
60
|
+
vec4 mvPosition = modelView * position4;
|
|
61
|
+
vViewPosition = mvPosition.xyz;
|
|
62
|
+
|
|
63
|
+
vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader
|
|
64
|
+
|
|
65
|
+
// special case for perspective projection, and segments that terminate either in, or behind, the camera plane
|
|
66
|
+
// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
|
|
67
|
+
// but we need to perform ndc-space calculations in the shader, so we must address this issue directly
|
|
68
|
+
// perhaps there is a more elegant solution -- WestLangley
|
|
69
|
+
bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column
|
|
70
|
+
if (perspective) {
|
|
71
|
+
if (start.z < 0.0 && end.z >= 0.0) {
|
|
72
|
+
trimSegment(start, end);
|
|
73
|
+
} else if (end.z < 0.0 && start.z >= 0.0) {
|
|
74
|
+
trimSegment(end, start);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// clip space
|
|
79
|
+
vec4 clipStart = uProjection * start;
|
|
80
|
+
vec4 clipEnd = uProjection * end;
|
|
81
|
+
|
|
82
|
+
// ndc space
|
|
83
|
+
vec2 ndcStart = clipStart.xy / clipStart.w;
|
|
84
|
+
vec2 ndcEnd = clipEnd.xy / clipEnd.w;
|
|
85
|
+
|
|
86
|
+
// direction
|
|
87
|
+
vec2 dir = ndcEnd - ndcStart;
|
|
88
|
+
|
|
89
|
+
// account for clip-space aspect ratio
|
|
90
|
+
dir.x *= aspect;
|
|
91
|
+
dir = normalize(dir);
|
|
92
|
+
|
|
93
|
+
// perpendicular to dir
|
|
94
|
+
vec2 offset = vec2(dir.y, - dir.x);
|
|
95
|
+
|
|
96
|
+
// undo aspect ratio adjustment
|
|
97
|
+
dir.x /= aspect;
|
|
98
|
+
offset.x /= aspect;
|
|
99
|
+
|
|
100
|
+
// sign flip
|
|
101
|
+
if (aMapping.x < 0.0) offset *= -1.0;
|
|
102
|
+
|
|
103
|
+
// calculate linewidth
|
|
104
|
+
float linewidth;
|
|
105
|
+
#ifdef dLineSizeAttenuation
|
|
106
|
+
linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;
|
|
107
|
+
#else
|
|
108
|
+
linewidth = size * uPixelRatio;
|
|
109
|
+
#endif
|
|
110
|
+
linewidth = max(1.0, linewidth);
|
|
111
|
+
|
|
112
|
+
// adjust for linewidth
|
|
113
|
+
offset *= linewidth;
|
|
114
|
+
|
|
115
|
+
// adjust for clip-space to screen-space conversion
|
|
116
|
+
offset /= uViewport.w;
|
|
117
|
+
|
|
118
|
+
// select end
|
|
119
|
+
vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;
|
|
120
|
+
|
|
121
|
+
// back to clip space
|
|
122
|
+
offset *= clip.w;
|
|
123
|
+
clip.xy += offset;
|
|
124
|
+
gl_Position = clip;
|
|
125
|
+
|
|
126
|
+
#include clip_instance
|
|
127
|
+
}
|
|
128
128
|
`;
|
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.activeVoxels_frag = void 0;
|
|
4
|
-
exports.activeVoxels_frag = `
|
|
5
|
-
precision highp float;
|
|
6
|
-
precision highp int;
|
|
7
|
-
precision highp sampler2D;
|
|
8
|
-
|
|
9
|
-
uniform sampler2D tTriCount;
|
|
10
|
-
uniform sampler2D tVolumeData;
|
|
11
|
-
|
|
12
|
-
uniform float uIsoValue;
|
|
13
|
-
uniform vec3 uGridDim;
|
|
14
|
-
uniform vec3 uGridTexDim;
|
|
15
|
-
uniform vec2 uScale;
|
|
16
|
-
|
|
17
|
-
#include common
|
|
18
|
-
|
|
19
|
-
// cube corners (excluding origin)
|
|
20
|
-
const vec3 c1 = vec3(1., 0., 0.);
|
|
21
|
-
const vec3 c2 = vec3(1., 1., 0.);
|
|
22
|
-
const vec3 c3 = vec3(0., 1., 0.);
|
|
23
|
-
const vec3 c4 = vec3(0., 0., 1.);
|
|
24
|
-
const vec3 c5 = vec3(1., 0., 1.);
|
|
25
|
-
const vec3 c6 = vec3(1., 1., 1.);
|
|
26
|
-
const vec3 c7 = vec3(0., 1., 1.);
|
|
27
|
-
|
|
28
|
-
vec3 index3dFrom2d(vec2 coord) {
|
|
29
|
-
vec2 gridTexPos = coord * uGridTexDim.xy;
|
|
30
|
-
vec2 columnRow = ivec2Div(gridTexPos, uGridDim.xy);
|
|
31
|
-
vec2 posXY = gridTexPos - columnRow * uGridDim.xy;
|
|
32
|
-
float posZ = columnRow.y * intDiv(uGridTexDim.x, uGridDim.x) + columnRow.x;
|
|
33
|
-
return vec3(posXY, posZ);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
vec4 texture3dFrom2dNearest(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
|
|
37
|
-
float zSlice = floor(pos.z * gridDim.z + 0.5); // round to nearest z-slice
|
|
38
|
-
float column = intDiv(intMod(zSlice * gridDim.x, texDim.x), gridDim.x);
|
|
39
|
-
float row = intDiv(zSlice * gridDim.x, texDim.x);
|
|
40
|
-
vec2 coord = (vec2(column * gridDim.x, row * gridDim.y) + (pos.xy * gridDim.xy)) / (texDim / uScale);
|
|
41
|
-
return texture2D(tex, coord);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
vec4 voxel(vec3 pos) {
|
|
45
|
-
pos = min(max(vec3(0.0), pos), uGridDim - vec3(1.0));
|
|
46
|
-
return texture3dFrom2dNearest(tVolumeData, pos / uGridDim, uGridDim, uGridTexDim.xy);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
void main(void) {
|
|
50
|
-
vec2 uv = gl_FragCoord.xy / uGridTexDim.xy;
|
|
51
|
-
vec3 posXYZ = index3dFrom2d(uv);
|
|
52
|
-
|
|
53
|
-
// get MC case as the sum of corners that are below the given iso level
|
|
54
|
-
float c = step(voxel(posXYZ).a, uIsoValue)
|
|
55
|
-
+ 2. * step(voxel(posXYZ + c1).a, uIsoValue)
|
|
56
|
-
+ 4. * step(voxel(posXYZ + c2).a, uIsoValue)
|
|
57
|
-
+ 8. * step(voxel(posXYZ + c3).a, uIsoValue)
|
|
58
|
-
+ 16. * step(voxel(posXYZ + c4).a, uIsoValue)
|
|
59
|
-
+ 32. * step(voxel(posXYZ + c5).a, uIsoValue)
|
|
60
|
-
+ 64. * step(voxel(posXYZ + c6).a, uIsoValue)
|
|
61
|
-
+ 128. * step(voxel(posXYZ + c7).a, uIsoValue);
|
|
62
|
-
c *= step(c, 254.);
|
|
63
|
-
|
|
64
|
-
// handle out of bounds positions
|
|
65
|
-
posXYZ += 1.0;
|
|
66
|
-
posXYZ.xy += 1.0; // pixel padding (usually ok even if the texture has no padding)
|
|
67
|
-
if (posXYZ.x >= uGridDim.x || posXYZ.y >= uGridDim.y || posXYZ.z >= uGridDim.z)
|
|
68
|
-
c = 0.0;
|
|
69
|
-
|
|
70
|
-
// get total triangles to generate for calculated MC case from triCount texture
|
|
71
|
-
float totalTrianglesToGenerate = texture2D(tTriCount, vec2(intMod(c, 16.), floor(c / 16.)) / 16.).a;
|
|
72
|
-
gl_FragColor = vec4(vec3(totalTrianglesToGenerate * 3.0), c / 255.0);
|
|
73
|
-
}
|
|
4
|
+
exports.activeVoxels_frag = `
|
|
5
|
+
precision highp float;
|
|
6
|
+
precision highp int;
|
|
7
|
+
precision highp sampler2D;
|
|
8
|
+
|
|
9
|
+
uniform sampler2D tTriCount;
|
|
10
|
+
uniform sampler2D tVolumeData;
|
|
11
|
+
|
|
12
|
+
uniform float uIsoValue;
|
|
13
|
+
uniform vec3 uGridDim;
|
|
14
|
+
uniform vec3 uGridTexDim;
|
|
15
|
+
uniform vec2 uScale;
|
|
16
|
+
|
|
17
|
+
#include common
|
|
18
|
+
|
|
19
|
+
// cube corners (excluding origin)
|
|
20
|
+
const vec3 c1 = vec3(1., 0., 0.);
|
|
21
|
+
const vec3 c2 = vec3(1., 1., 0.);
|
|
22
|
+
const vec3 c3 = vec3(0., 1., 0.);
|
|
23
|
+
const vec3 c4 = vec3(0., 0., 1.);
|
|
24
|
+
const vec3 c5 = vec3(1., 0., 1.);
|
|
25
|
+
const vec3 c6 = vec3(1., 1., 1.);
|
|
26
|
+
const vec3 c7 = vec3(0., 1., 1.);
|
|
27
|
+
|
|
28
|
+
vec3 index3dFrom2d(vec2 coord) {
|
|
29
|
+
vec2 gridTexPos = coord * uGridTexDim.xy;
|
|
30
|
+
vec2 columnRow = ivec2Div(gridTexPos, uGridDim.xy);
|
|
31
|
+
vec2 posXY = gridTexPos - columnRow * uGridDim.xy;
|
|
32
|
+
float posZ = columnRow.y * intDiv(uGridTexDim.x, uGridDim.x) + columnRow.x;
|
|
33
|
+
return vec3(posXY, posZ);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
vec4 texture3dFrom2dNearest(sampler2D tex, vec3 pos, vec3 gridDim, vec2 texDim) {
|
|
37
|
+
float zSlice = floor(pos.z * gridDim.z + 0.5); // round to nearest z-slice
|
|
38
|
+
float column = intDiv(intMod(zSlice * gridDim.x, texDim.x), gridDim.x);
|
|
39
|
+
float row = intDiv(zSlice * gridDim.x, texDim.x);
|
|
40
|
+
vec2 coord = (vec2(column * gridDim.x, row * gridDim.y) + (pos.xy * gridDim.xy)) / (texDim / uScale);
|
|
41
|
+
return texture2D(tex, coord);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
vec4 voxel(vec3 pos) {
|
|
45
|
+
pos = min(max(vec3(0.0), pos), uGridDim - vec3(1.0));
|
|
46
|
+
return texture3dFrom2dNearest(tVolumeData, pos / uGridDim, uGridDim, uGridTexDim.xy);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
void main(void) {
|
|
50
|
+
vec2 uv = gl_FragCoord.xy / uGridTexDim.xy;
|
|
51
|
+
vec3 posXYZ = index3dFrom2d(uv);
|
|
52
|
+
|
|
53
|
+
// get MC case as the sum of corners that are below the given iso level
|
|
54
|
+
float c = step(voxel(posXYZ).a, uIsoValue)
|
|
55
|
+
+ 2. * step(voxel(posXYZ + c1).a, uIsoValue)
|
|
56
|
+
+ 4. * step(voxel(posXYZ + c2).a, uIsoValue)
|
|
57
|
+
+ 8. * step(voxel(posXYZ + c3).a, uIsoValue)
|
|
58
|
+
+ 16. * step(voxel(posXYZ + c4).a, uIsoValue)
|
|
59
|
+
+ 32. * step(voxel(posXYZ + c5).a, uIsoValue)
|
|
60
|
+
+ 64. * step(voxel(posXYZ + c6).a, uIsoValue)
|
|
61
|
+
+ 128. * step(voxel(posXYZ + c7).a, uIsoValue);
|
|
62
|
+
c *= step(c, 254.);
|
|
63
|
+
|
|
64
|
+
// handle out of bounds positions
|
|
65
|
+
posXYZ += 1.0;
|
|
66
|
+
posXYZ.xy += 1.0; // pixel padding (usually ok even if the texture has no padding)
|
|
67
|
+
if (posXYZ.x >= uGridDim.x || posXYZ.y >= uGridDim.y || posXYZ.z >= uGridDim.z)
|
|
68
|
+
c = 0.0;
|
|
69
|
+
|
|
70
|
+
// get total triangles to generate for calculated MC case from triCount texture
|
|
71
|
+
float totalTrianglesToGenerate = texture2D(tTriCount, vec2(intMod(c, 16.), floor(c / 16.)) / 16.).a;
|
|
72
|
+
gl_FragColor = vec4(vec3(totalTrianglesToGenerate * 3.0), c / 255.0);
|
|
73
|
+
}
|
|
74
74
|
`;
|