molstar 3.26.0 → 3.28.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 +202 -202
- package/build/viewer/embedded.html +52 -52
- package/build/viewer/index.html +115 -115
- package/build/viewer/molstar.css +1 -1
- package/build/viewer/molstar.js +1 -1
- package/lib/apps/docking-viewer/index.html +36 -36
- package/lib/apps/docking-viewer/viewport.d.ts +2 -0
- package/lib/apps/docking-viewer/viewport.js +1 -0
- package/lib/apps/viewer/app.d.ts +3 -1
- package/lib/apps/viewer/app.js +4 -0
- package/lib/apps/viewer/embedded.html +52 -52
- package/lib/apps/viewer/index.html +115 -115
- package/lib/cli/structure-info/volume.js +1 -1
- package/lib/commonjs/apps/docking-viewer/viewport.d.ts +2 -0
- package/lib/commonjs/apps/docking-viewer/viewport.js +1 -0
- package/lib/commonjs/apps/viewer/app.d.ts +3 -1
- package/lib/commonjs/apps/viewer/app.js +4 -0
- package/lib/commonjs/cli/structure-info/volume.js +1 -1
- package/lib/commonjs/examples/lighting/index.js +1 -1
- package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -0
- package/lib/commonjs/extensions/cellpack/model.js +2 -1
- package/lib/commonjs/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
- package/lib/commonjs/extensions/meshes/choice.d.ts +26 -0
- package/lib/commonjs/extensions/meshes/choice.js +31 -0
- package/lib/commonjs/extensions/meshes/examples.d.ts +26 -0
- package/lib/commonjs/extensions/meshes/examples.js +337 -0
- package/lib/commonjs/extensions/meshes/mesh-cif-schema.d.ts +29 -0
- package/lib/commonjs/extensions/meshes/mesh-cif-schema.js +34 -0
- package/lib/commonjs/extensions/meshes/mesh-extension.d.ts +66 -0
- package/lib/commonjs/extensions/meshes/mesh-extension.js +221 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/behavior.js +379 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/server-info.js +30 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
- package/lib/commonjs/extensions/meshes/mesh-streaming/transformers.js +273 -0
- package/lib/commonjs/extensions/meshes/mesh-utils.d.ts +41 -0
- package/lib/commonjs/extensions/meshes/mesh-utils.js +357 -0
- package/lib/commonjs/extensions/meshes/metadata.d.ts +108 -0
- package/lib/commonjs/extensions/meshes/metadata.js +72 -0
- package/lib/commonjs/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
- package/lib/commonjs/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
- package/lib/commonjs/extensions/model-archive/quality-assessment/prop.js +16 -4
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
- package/lib/commonjs/extensions/rcsb/validation-report/behavior.d.ts +3 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-meshes.js +156 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-models.js +96 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-root.js +576 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-segmentation.js +200 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-state.js +32 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/entry-volume.js +234 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/external-api.js +85 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/global-state.js +83 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/helpers.js +171 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/index.d.ts +20 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/index.js +130 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/transformers.js +85 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/ui.d.ts +29 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/ui.js +232 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/api.js +83 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/data.js +7 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
- package/lib/commonjs/extensions/volumes-and-segmentations/volseg-api/utils.js +78 -0
- package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -0
- package/lib/commonjs/mol-canvas3d/passes/draw.js +3 -3
- package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -0
- package/lib/commonjs/mol-canvas3d/passes/postprocessing.d.ts +2 -1
- package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +27 -13
- package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
- package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +3 -2
- package/lib/commonjs/mol-geo/geometry/lines/lines.d.ts +0 -1
- package/lib/commonjs/mol-geo/geometry/points/points.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -0
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +3 -2
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
- package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +4 -6
- package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/cylinders.js +1 -1
- package/lib/commonjs/mol-gl/renderable/spheres.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/spheres.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
- package/lib/commonjs/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
- package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/cylinders.vert.d.ts +2 -2
- package/lib/commonjs/mol-gl/shader/cylinders.vert.js +2 -2
- package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/outlines.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/outlines.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/postprocessing.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/postprocessing.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/spheres.vert.d.ts +2 -2
- package/lib/commonjs/mol-gl/shader/spheres.vert.js +2 -2
- package/lib/commonjs/mol-gl/webgl/renderbuffer.d.ts +1 -1
- package/lib/commonjs/mol-gl/webgl/renderbuffer.js +15 -0
- package/lib/commonjs/mol-gl/webgl/state.d.ts +12 -0
- package/lib/commonjs/mol-gl/webgl/state.js +136 -0
- package/lib/commonjs/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
- package/lib/commonjs/mol-io/reader/cif/schema/segmentation.js +22 -0
- package/lib/commonjs/mol-io/reader/cif.d.ts +3 -1
- package/lib/commonjs/mol-io/reader/cif.js +3 -1
- package/lib/commonjs/mol-model/location.d.ts +2 -1
- package/lib/commonjs/mol-model/loci.d.ts +11 -11
- package/lib/commonjs/mol-model/loci.js +13 -1
- package/lib/commonjs/mol-model/sequence/alignment/sequence.d.ts +4 -1
- package/lib/commonjs/mol-model/sequence/alignment/sequence.js +4 -1
- package/lib/commonjs/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
- package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
- package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
- package/lib/commonjs/mol-model/structure/structure/util/superposition.d.ts +1 -0
- package/lib/commonjs/mol-model/structure/structure/util/superposition.js +2 -1
- package/lib/commonjs/mol-model/volume/volume.d.ts +35 -2
- package/lib/commonjs/mol-model/volume/volume.js +77 -2
- package/lib/commonjs/mol-model-formats/volume/segmentation.d.ts +23 -0
- package/lib/commonjs/mol-model-formats/volume/segmentation.js +138 -0
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
- package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
- package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
- package/lib/commonjs/mol-plugin/commands.d.ts +1 -0
- package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.js +4 -1
- package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
- package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js +6 -1
- package/lib/commonjs/mol-plugin-state/builder/structure/representation.d.ts +1 -0
- package/lib/commonjs/mol-plugin-state/formats/provider.d.ts +2 -2
- package/lib/commonjs/mol-plugin-state/formats/provider.js +11 -3
- package/lib/commonjs/mol-plugin-state/formats/registry.js +6 -5
- package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +27 -0
- package/lib/commonjs/mol-plugin-state/formats/volume.js +65 -1
- package/lib/commonjs/mol-plugin-state/manager/structure/component.d.ts +1 -1
- package/lib/commonjs/mol-plugin-state/manager/structure/component.js +18 -13
- package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +1 -2
- package/lib/commonjs/mol-plugin-state/transforms/representation.js +5 -6
- package/lib/commonjs/mol-plugin-state/transforms/volume.d.ts +11 -1
- package/lib/commonjs/mol-plugin-state/transforms/volume.js +55 -2
- package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
- package/lib/commonjs/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
- package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -0
- package/lib/commonjs/mol-plugin-ui/controls/parameters.js +22 -5
- package/lib/commonjs/mol-plugin-ui/sequence/sequence.d.ts +25 -17
- package/lib/commonjs/mol-plugin-ui/sequence.d.ts +19 -1
- package/lib/commonjs/mol-plugin-ui/sequence.js +8 -1
- package/lib/commonjs/mol-plugin-ui/state/apply-action.d.ts +2 -10
- package/lib/commonjs/mol-plugin-ui/state/apply-action.js +2 -2
- package/lib/commonjs/mol-plugin-ui/structure/quick-styles.js +2 -2
- package/lib/commonjs/mol-plugin-ui/structure/superposition.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/structure/volume.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/structure/volume.js +3 -2
- package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/params.d.ts +2 -0
- package/lib/commonjs/mol-repr/structure/registry.d.ts +12 -0
- package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
- package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
- package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/line.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/point.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +6 -0
- package/lib/commonjs/mol-repr/structure/units-visual.d.ts +2 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
- package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/element-cross.js +2 -1
- package/lib/commonjs/mol-repr/structure/visual/element-point.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/element-point.js +2 -1
- package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +4 -0
- package/lib/commonjs/mol-repr/structure/visual/element-sphere.js +3 -1
- package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
- package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
- package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
- package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
- package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +7 -0
- package/lib/commonjs/mol-repr/structure/visual/util/bond.js +18 -7
- package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +4 -1
- package/lib/commonjs/mol-repr/structure/visual/util/common.js +10 -6
- package/lib/commonjs/mol-repr/structure/visual/util/element.d.ts +1 -0
- package/lib/commonjs/mol-repr/structure/visual/util/element.js +2 -3
- package/lib/commonjs/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
- package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +4 -4
- package/lib/commonjs/mol-repr/volume/direct-volume.js +8 -6
- package/lib/commonjs/mol-repr/volume/isosurface.d.ts +4 -4
- package/lib/commonjs/mol-repr/volume/isosurface.js +17 -16
- package/lib/commonjs/mol-repr/volume/registry.d.ts +54 -1
- package/lib/commonjs/mol-repr/volume/registry.js +3 -1
- package/lib/commonjs/mol-repr/volume/representation.d.ts +11 -7
- package/lib/commonjs/mol-repr/volume/representation.js +142 -47
- package/lib/commonjs/mol-repr/volume/segment.d.ts +291 -0
- package/lib/commonjs/mol-repr/volume/segment.js +289 -0
- package/lib/commonjs/mol-repr/volume/slice.d.ts +2 -2
- package/lib/commonjs/mol-repr/volume/slice.js +5 -5
- package/lib/commonjs/mol-repr/volume/util.d.ts +12 -3
- package/lib/commonjs/mol-repr/volume/util.js +72 -6
- package/lib/commonjs/mol-script/language/builder.d.ts +1 -0
- package/lib/commonjs/mol-theme/color/volume-segment.d.ts +41 -0
- package/lib/commonjs/mol-theme/color/volume-segment.js +58 -0
- package/lib/commonjs/mol-theme/color/volume-value.js +2 -1
- package/lib/commonjs/mol-theme/color.d.ts +15 -0
- package/lib/commonjs/mol-theme/color.js +2 -0
- package/lib/commonjs/mol-theme/label.d.ts +1 -1
- package/lib/commonjs/mol-theme/label.js +13 -1
- package/lib/commonjs/mol-util/param-definition.d.ts +4 -1
- package/lib/commonjs/mol-util/param-definition.js +5 -2
- 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/lighting/index.js +1 -1
- package/lib/examples/proteopedia-wrapper/index.html +236 -236
- package/lib/extensions/anvil/behavior.d.ts +1 -0
- package/lib/extensions/cellpack/model.js +2 -1
- package/lib/extensions/dnatco/confal-pyramids/behavior.d.ts +1 -0
- package/lib/extensions/meshes/choice.d.ts +26 -0
- package/lib/extensions/meshes/choice.js +28 -0
- package/lib/extensions/meshes/examples.d.ts +26 -0
- package/lib/extensions/meshes/examples.js +325 -0
- package/lib/extensions/meshes/mesh-cif-schema.d.ts +29 -0
- package/lib/extensions/meshes/mesh-cif-schema.js +30 -0
- package/lib/extensions/meshes/mesh-extension.d.ts +66 -0
- package/lib/extensions/meshes/mesh-extension.js +218 -0
- package/lib/extensions/meshes/mesh-streaming/behavior.d.ts +105 -0
- package/lib/extensions/meshes/mesh-streaming/behavior.js +375 -0
- package/lib/extensions/meshes/mesh-streaming/server-info.d.ts +54 -0
- package/lib/extensions/meshes/mesh-streaming/server-info.js +26 -0
- package/lib/extensions/meshes/mesh-streaming/transformers.d.ts +42 -0
- package/lib/extensions/meshes/mesh-streaming/transformers.js +270 -0
- package/lib/extensions/meshes/mesh-utils.d.ts +41 -0
- package/lib/extensions/meshes/mesh-utils.js +346 -0
- package/lib/extensions/meshes/metadata.d.ts +108 -0
- package/lib/extensions/meshes/metadata.js +69 -0
- package/lib/extensions/model-archive/quality-assessment/behavior.d.ts +2 -0
- package/lib/extensions/model-archive/quality-assessment/prop.d.ts +1 -0
- package/lib/extensions/model-archive/quality-assessment/prop.js +16 -4
- package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -2
- package/lib/extensions/rcsb/validation-report/behavior.d.ts +3 -0
- package/lib/extensions/volumes-and-segmentations/entry-meshes.d.ts +17 -0
- package/lib/extensions/volumes-and-segmentations/entry-meshes.js +153 -0
- package/lib/extensions/volumes-and-segmentations/entry-models.d.ts +12 -0
- package/lib/extensions/volumes-and-segmentations/entry-models.js +93 -0
- package/lib/extensions/volumes-and-segmentations/entry-root.d.ts +122 -0
- package/lib/extensions/volumes-and-segmentations/entry-root.js +571 -0
- package/lib/extensions/volumes-and-segmentations/entry-segmentation.d.ts +20 -0
- package/lib/extensions/volumes-and-segmentations/entry-segmentation.js +197 -0
- package/lib/extensions/volumes-and-segmentations/entry-state.d.ts +88 -0
- package/lib/extensions/volumes-and-segmentations/entry-state.js +29 -0
- package/lib/extensions/volumes-and-segmentations/entry-volume.d.ts +35 -0
- package/lib/extensions/volumes-and-segmentations/entry-volume.js +231 -0
- package/lib/extensions/volumes-and-segmentations/external-api.d.ts +11 -0
- package/lib/extensions/volumes-and-segmentations/external-api.js +80 -0
- package/lib/extensions/volumes-and-segmentations/global-state.d.ts +51 -0
- package/lib/extensions/volumes-and-segmentations/global-state.js +80 -0
- package/lib/extensions/volumes-and-segmentations/helpers.d.ts +56 -0
- package/lib/extensions/volumes-and-segmentations/helpers.js +163 -0
- package/lib/extensions/volumes-and-segmentations/index.d.ts +20 -0
- package/lib/extensions/volumes-and-segmentations/index.js +127 -0
- package/lib/extensions/volumes-and-segmentations/transformers.d.ts +33 -0
- package/lib/extensions/volumes-and-segmentations/transformers.js +82 -0
- package/lib/extensions/volumes-and-segmentations/ui.d.ts +29 -0
- package/lib/extensions/volumes-and-segmentations/ui.js +229 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/api.d.ts +22 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/api.js +80 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/data.d.ts +92 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/data.js +6 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/utils.d.ts +23 -0
- package/lib/extensions/volumes-and-segmentations/volseg-api/utils.js +75 -0
- package/lib/mol-canvas3d/canvas3d.d.ts +2 -0
- package/lib/mol-canvas3d/passes/draw.js +3 -3
- package/lib/mol-canvas3d/passes/image.d.ts +1 -0
- package/lib/mol-canvas3d/passes/postprocessing.d.ts +2 -1
- package/lib/mol-canvas3d/passes/postprocessing.js +27 -13
- package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +2 -1
- package/lib/mol-geo/geometry/cylinders/cylinders.js +3 -2
- package/lib/mol-geo/geometry/lines/lines.d.ts +0 -1
- package/lib/mol-geo/geometry/points/points.d.ts +1 -1
- package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -0
- package/lib/mol-geo/geometry/spheres/spheres.js +3 -2
- package/lib/mol-gl/compute/histogram-pyramid/reduction.js +1 -2
- package/lib/mol-gl/compute/marching-cubes/isosurface.js +4 -6
- package/lib/mol-gl/renderable/cylinders.d.ts +1 -0
- package/lib/mol-gl/renderable/cylinders.js +1 -1
- package/lib/mol-gl/renderable/spheres.d.ts +1 -0
- package/lib/mol-gl/renderable/spheres.js +1 -1
- package/lib/mol-gl/shader/chunks/apply-light-color.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/apply-light-color.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/clip-instance.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/clip-instance.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/clip-pixel.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/clip-pixel.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/common-clip.glsl.d.ts +2 -2
- package/lib/mol-gl/shader/chunks/common-clip.glsl.js +2 -2
- package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
- package/lib/mol-gl/shader/cylinders.frag.js +1 -1
- package/lib/mol-gl/shader/cylinders.vert.d.ts +2 -2
- package/lib/mol-gl/shader/cylinders.vert.js +2 -2
- package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
- package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
- package/lib/mol-gl/shader/outlines.frag.d.ts +1 -1
- package/lib/mol-gl/shader/outlines.frag.js +1 -1
- package/lib/mol-gl/shader/postprocessing.frag.d.ts +1 -1
- package/lib/mol-gl/shader/postprocessing.frag.js +1 -1
- package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
- package/lib/mol-gl/shader/spheres.frag.js +1 -1
- package/lib/mol-gl/shader/spheres.vert.d.ts +2 -2
- package/lib/mol-gl/shader/spheres.vert.js +2 -2
- package/lib/mol-gl/webgl/renderbuffer.d.ts +1 -1
- package/lib/mol-gl/webgl/renderbuffer.js +15 -0
- package/lib/mol-gl/webgl/state.d.ts +12 -0
- package/lib/mol-gl/webgl/state.js +136 -0
- package/lib/mol-io/reader/cif/schema/segmentation.d.ts +38 -0
- package/lib/mol-io/reader/cif/schema/segmentation.js +19 -0
- package/lib/mol-io/reader/cif.d.ts +3 -1
- package/lib/mol-io/reader/cif.js +3 -1
- package/lib/mol-model/location.d.ts +2 -1
- package/lib/mol-model/loci.d.ts +11 -11
- package/lib/mol-model/loci.js +13 -1
- package/lib/mol-model/sequence/alignment/sequence.d.ts +4 -1
- package/lib/mol-model/sequence/alignment/sequence.js +3 -2
- package/lib/mol-model/structure/model/properties/atomic/hierarchy.d.ts +6 -0
- package/lib/mol-model/structure/model/properties/utils/atomic-index.js +8 -0
- package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +21 -5
- package/lib/mol-model/structure/structure/util/superposition.d.ts +1 -0
- package/lib/mol-model/structure/structure/util/superposition.js +1 -1
- package/lib/mol-model/volume/volume.d.ts +35 -2
- package/lib/mol-model/volume/volume.js +79 -4
- package/lib/mol-model-formats/volume/segmentation.d.ts +23 -0
- package/lib/mol-model-formats/volume/segmentation.js +135 -0
- package/lib/mol-plugin/behavior/dynamic/representation.d.ts +2 -2
- package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.d.ts +1 -0
- package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +2 -1
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +2 -3
- package/lib/mol-plugin/commands.d.ts +1 -0
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/animation/built-in/model-index.js +4 -1
- package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +2 -0
- package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +1 -0
- package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +13 -4
- package/lib/mol-plugin-state/builder/structure/representation-preset.js +6 -1
- package/lib/mol-plugin-state/builder/structure/representation.d.ts +1 -0
- package/lib/mol-plugin-state/formats/provider.d.ts +2 -2
- package/lib/mol-plugin-state/formats/provider.js +11 -3
- package/lib/mol-plugin-state/formats/registry.js +6 -5
- package/lib/mol-plugin-state/formats/volume.d.ts +27 -0
- package/lib/mol-plugin-state/formats/volume.js +64 -0
- package/lib/mol-plugin-state/manager/structure/component.d.ts +1 -1
- package/lib/mol-plugin-state/manager/structure/component.js +18 -13
- package/lib/mol-plugin-state/transforms/representation.d.ts +1 -2
- package/lib/mol-plugin-state/transforms/representation.js +5 -6
- package/lib/mol-plugin-state/transforms/volume.d.ts +11 -1
- package/lib/mol-plugin-state/transforms/volume.js +54 -1
- package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.d.ts +1 -0
- package/lib/mol-plugin-ui/controls/line-graph/line-graph-component.js +33 -13
- package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -0
- package/lib/mol-plugin-ui/controls/parameters.js +22 -5
- package/lib/mol-plugin-ui/sequence/sequence.d.ts +25 -17
- package/lib/mol-plugin-ui/sequence.d.ts +19 -1
- package/lib/mol-plugin-ui/sequence.js +7 -7
- package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
- package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
- package/lib/mol-plugin-ui/skin/base/components/controls.scss +418 -418
- 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 +643 -643
- 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 +137 -128
- 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 +85 -85
- 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/state/apply-action.d.ts +2 -10
- package/lib/mol-plugin-ui/state/apply-action.js +2 -2
- package/lib/mol-plugin-ui/structure/quick-styles.js +2 -2
- package/lib/mol-plugin-ui/structure/superposition.d.ts +1 -1
- package/lib/mol-plugin-ui/structure/volume.d.ts +1 -1
- package/lib/mol-plugin-ui/structure/volume.js +3 -2
- package/lib/mol-repr/structure/complex-visual.d.ts +1 -0
- package/lib/mol-repr/structure/params.d.ts +2 -0
- package/lib/mol-repr/structure/registry.d.ts +12 -0
- package/lib/mol-repr/structure/representation/backbone.d.ts +3 -0
- package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +6 -0
- package/lib/mol-repr/structure/representation/ellipsoid.d.ts +6 -0
- package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -0
- package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -0
- package/lib/mol-repr/structure/representation/line.d.ts +3 -0
- package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -0
- package/lib/mol-repr/structure/representation/point.d.ts +3 -0
- package/lib/mol-repr/structure/representation/spacefill.d.ts +6 -0
- package/lib/mol-repr/structure/units-visual.d.ts +2 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +4 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +2 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +1 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +1 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +4 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +2 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +1 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +1 -0
- package/lib/mol-repr/structure/visual/element-cross.d.ts +1 -0
- package/lib/mol-repr/structure/visual/element-cross.js +2 -1
- package/lib/mol-repr/structure/visual/element-point.d.ts +1 -0
- package/lib/mol-repr/structure/visual/element-point.js +2 -1
- package/lib/mol-repr/structure/visual/element-sphere.d.ts +4 -0
- package/lib/mol-repr/structure/visual/element-sphere.js +3 -1
- package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -0
- package/lib/mol-repr/structure/visual/gaussian-density-volume.js +6 -2
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -0
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -1
- package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.d.ts +1 -0
- package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.js +3 -1
- package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -0
- package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +4 -0
- package/lib/mol-repr/structure/visual/molecular-surface-wireframe.d.ts +1 -0
- package/lib/mol-repr/structure/visual/molecular-surface-wireframe.js +2 -0
- package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -0
- package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -0
- package/lib/mol-repr/structure/visual/util/bond.d.ts +7 -0
- package/lib/mol-repr/structure/visual/util/bond.js +19 -8
- package/lib/mol-repr/structure/visual/util/common.d.ts +4 -1
- package/lib/mol-repr/structure/visual/util/common.js +10 -6
- package/lib/mol-repr/structure/visual/util/element.d.ts +1 -0
- package/lib/mol-repr/structure/visual/util/element.js +3 -4
- package/lib/mol-repr/structure/visual/util/gaussian.d.ts +2 -0
- package/lib/mol-repr/volume/direct-volume.d.ts +4 -4
- package/lib/mol-repr/volume/direct-volume.js +8 -6
- package/lib/mol-repr/volume/isosurface.d.ts +4 -4
- package/lib/mol-repr/volume/isosurface.js +17 -16
- package/lib/mol-repr/volume/registry.d.ts +54 -1
- package/lib/mol-repr/volume/registry.js +3 -1
- package/lib/mol-repr/volume/representation.d.ts +11 -7
- package/lib/mol-repr/volume/representation.js +144 -49
- package/lib/mol-repr/volume/segment.d.ts +291 -0
- package/lib/mol-repr/volume/segment.js +279 -0
- package/lib/mol-repr/volume/slice.d.ts +2 -2
- package/lib/mol-repr/volume/slice.js +5 -5
- package/lib/mol-repr/volume/util.d.ts +12 -3
- package/lib/mol-repr/volume/util.js +71 -6
- package/lib/mol-script/language/builder.d.ts +1 -0
- package/lib/mol-theme/color/volume-segment.d.ts +41 -0
- package/lib/mol-theme/color/volume-segment.js +53 -0
- package/lib/mol-theme/color/volume-value.js +2 -1
- package/lib/mol-theme/color.d.ts +15 -0
- package/lib/mol-theme/color.js +2 -0
- package/lib/mol-theme/label.d.ts +1 -1
- package/lib/mol-theme/label.js +13 -1
- package/lib/mol-util/param-definition.d.ts +4 -1
- package/lib/mol-util/param-definition.js +5 -2
- package/package.json +169 -168
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
|
+
* @author David Sehnal <david.sehnal@gmail.com>
|
|
5
6
|
*/
|
|
6
7
|
import { __assign } from "tslib";
|
|
7
8
|
import { BondType } from '../../../../mol-model/structure/model/types';
|
|
@@ -12,11 +13,12 @@ import { LinkCylinderParams, LinkLineParams } from './link';
|
|
|
12
13
|
import { ObjectKeys } from '../../../../mol-util/type-helpers';
|
|
13
14
|
import { EmptyLoci } from '../../../../mol-model/loci';
|
|
14
15
|
import { Interval, OrderedSet, SortedArray } from '../../../../mol-data/int';
|
|
15
|
-
import {
|
|
16
|
+
import { isHydrogen } from './common';
|
|
16
17
|
export var BondParams = {
|
|
17
18
|
includeTypes: PD.MultiSelect(ObjectKeys(BondType.Names), PD.objectToOptions(BondType.Names)),
|
|
18
19
|
excludeTypes: PD.MultiSelect([], PD.objectToOptions(BondType.Names)),
|
|
19
20
|
ignoreHydrogens: PD.Boolean(false),
|
|
21
|
+
ignoreHydrogensVariant: PD.Select('all', PD.arrayToOptions(['all', 'non-polar'])),
|
|
20
22
|
aromaticBonds: PD.Boolean(true, { description: 'Display aromatic bonds with dashes' }),
|
|
21
23
|
multipleBonds: PD.Select('symmetric', PD.arrayToOptions(['off', 'symmetric', 'offset'])),
|
|
22
24
|
};
|
|
@@ -30,11 +32,10 @@ export function ignoreBondType(include, exclude, f) {
|
|
|
30
32
|
}
|
|
31
33
|
export function makeIntraBondIgnoreTest(structure, unit, props) {
|
|
32
34
|
var elements = unit.elements;
|
|
33
|
-
var atomicNumber = unit.model.atomicHierarchy.derived.atom.atomicNumber;
|
|
34
35
|
var bonds = unit.bonds;
|
|
35
36
|
var a = bonds.a, b = bonds.b, edgeProps = bonds.edgeProps;
|
|
36
37
|
var _flags = edgeProps.flags;
|
|
37
|
-
var ignoreHydrogens = props.ignoreHydrogens, includeTypes = props.includeTypes, excludeTypes = props.excludeTypes;
|
|
38
|
+
var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, includeTypes = props.includeTypes, excludeTypes = props.excludeTypes;
|
|
38
39
|
var include = BondType.fromNames(includeTypes);
|
|
39
40
|
var exclude = BondType.fromNames(excludeTypes);
|
|
40
41
|
var allBondTypes = BondType.isAll(include) && 0 /* BondType.Flag.None */ === exclude;
|
|
@@ -45,15 +46,25 @@ export function makeIntraBondIgnoreTest(structure, unit, props) {
|
|
|
45
46
|
if (allBondTypes && !ignoreHydrogens && !child)
|
|
46
47
|
return;
|
|
47
48
|
return function (edgeIndex) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
var aI = a[edgeIndex];
|
|
50
|
+
var bI = b[edgeIndex];
|
|
51
|
+
if ((!!childUnit && !SortedArray.has(childUnit.elements, elements[aI]))) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
if (!allBondTypes && ignoreBondType(include, exclude, _flags[edgeIndex])) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (!ignoreHydrogens)
|
|
58
|
+
return false;
|
|
59
|
+
if (isHydrogen(structure, unit, elements[aI], ignoreHydrogensVariant) || isHydrogen(structure, unit, elements[bI], ignoreHydrogensVariant))
|
|
60
|
+
return true;
|
|
61
|
+
return false;
|
|
51
62
|
};
|
|
52
63
|
}
|
|
53
64
|
export function makeInterBondIgnoreTest(structure, props) {
|
|
54
65
|
var bonds = structure.interUnitBonds;
|
|
55
66
|
var edges = bonds.edges;
|
|
56
|
-
var ignoreHydrogens = props.ignoreHydrogens, includeTypes = props.includeTypes, excludeTypes = props.excludeTypes;
|
|
67
|
+
var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, includeTypes = props.includeTypes, excludeTypes = props.excludeTypes;
|
|
57
68
|
var include = BondType.fromNames(includeTypes);
|
|
58
69
|
var exclude = BondType.fromNames(excludeTypes);
|
|
59
70
|
var allBondTypes = BondType.isAll(include) && 0 /* BondType.Flag.None */ === exclude;
|
|
@@ -75,7 +86,7 @@ export function makeInterBondIgnoreTest(structure, props) {
|
|
|
75
86
|
var b = edges[edgeIndex];
|
|
76
87
|
var uA = structure.unitMap.get(b.unitA);
|
|
77
88
|
var uB = structure.unitMap.get(b.unitB);
|
|
78
|
-
if (isHydrogen(uA, uA.elements[b.indexA]) || isHydrogen(uB, uB.elements[b.indexB]))
|
|
89
|
+
if (isHydrogen(structure, uA, uA.elements[b.indexA], ignoreHydrogensVariant) || isHydrogen(structure, uB, uB.elements[b.indexB], ignoreHydrogensVariant))
|
|
79
90
|
return true;
|
|
80
91
|
}
|
|
81
92
|
if (!allBondTypes) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
|
+
* @author David Sehnal <david.sehnal@gmail.com>
|
|
5
6
|
*/
|
|
6
7
|
import { Unit, Structure, ElementIndex, StructureElement, ResidueIndex } from '../../../../mol-model/structure';
|
|
7
8
|
import { TransformData } from '../../../../mol-geo/geometry/transform-data';
|
|
@@ -52,11 +53,13 @@ export declare function ensureReasonableResolution<T>(box: Box3D, props: {
|
|
|
52
53
|
export declare function getConformation(unit: Unit): import("../../../../mol-model/structure/model/properties/atomic").AtomicConformation | import("../../../../mol-model/structure/model/properties/coarse").CoarseSphereConformation | import("../../../../mol-model/structure/model/properties/coarse").CoarseGaussianConformation;
|
|
53
54
|
export declare const CommonSurfaceParams: {
|
|
54
55
|
ignoreHydrogens: PD.BooleanParam;
|
|
56
|
+
ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
|
|
55
57
|
traceOnly: PD.BooleanParam;
|
|
56
58
|
includeParent: PD.BooleanParam;
|
|
57
59
|
};
|
|
58
60
|
export declare const DefaultCommonSurfaceProps: PD.Values<{
|
|
59
61
|
ignoreHydrogens: PD.BooleanParam;
|
|
62
|
+
ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
|
|
60
63
|
traceOnly: PD.BooleanParam;
|
|
61
64
|
includeParent: PD.BooleanParam;
|
|
62
65
|
}>;
|
|
@@ -83,6 +86,6 @@ export declare function getStructureConformationAndRadius(structure: Structure,
|
|
|
83
86
|
boundary: import("../../../../mol-math/geometry/boundary").Boundary;
|
|
84
87
|
radius: (index: number) => number;
|
|
85
88
|
};
|
|
86
|
-
export declare function isHydrogen(unit: Unit, element: ElementIndex): boolean;
|
|
89
|
+
export declare function isHydrogen(structure: Structure, unit: Unit, element: ElementIndex, variant: 'all' | 'non-polar'): boolean;
|
|
87
90
|
export declare function isH(atomicNumber: ArrayLike<number>, element: ElementIndex): boolean;
|
|
88
91
|
export declare function isTrace(unit: Unit, element: ElementIndex): boolean;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
|
+
* @author David Sehnal <david.sehnal@gmail.com>
|
|
5
6
|
*/
|
|
6
7
|
import { __assign } from "tslib";
|
|
7
8
|
import { Unit, StructureElement } from '../../../../mol-model/structure';
|
|
@@ -14,6 +15,7 @@ import { fillSerial } from '../../../../mol-util/array';
|
|
|
14
15
|
import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
|
|
15
16
|
import { getBoundary } from '../../../../mol-math/geometry/boundary';
|
|
16
17
|
import { Box3D } from '../../../../mol-math/geometry';
|
|
18
|
+
import { hasPolarNeighbour } from '../../../../mol-model-props/computed/chemistry/functional-group';
|
|
17
19
|
/** Return a Loci for the elements of a whole residue the elementIndex belongs to. */
|
|
18
20
|
export function getResidueLoci(structure, unit, elementIndex) {
|
|
19
21
|
var elements = unit.elements, model = unit.model;
|
|
@@ -125,6 +127,7 @@ export function getConformation(unit) {
|
|
|
125
127
|
}
|
|
126
128
|
export var CommonSurfaceParams = {
|
|
127
129
|
ignoreHydrogens: PD.Boolean(false, { description: 'Whether or not to include hydrogen atoms in the surface calculation.' }),
|
|
130
|
+
ignoreHydrogensVariant: PD.Select('all', PD.arrayToOptions(['all', 'non-polar'])),
|
|
128
131
|
traceOnly: PD.Boolean(false, { description: 'Whether or not to only use trace atoms in the surface calculation.' }),
|
|
129
132
|
includeParent: PD.Boolean(false, { description: 'Include elements of the parent structure in surface calculation to get a surface patch of the current structure.' }),
|
|
130
133
|
};
|
|
@@ -149,7 +152,7 @@ function filterUnitId(id, elements, indices) {
|
|
|
149
152
|
}
|
|
150
153
|
}
|
|
151
154
|
export function getUnitConformationAndRadius(structure, unit, sizeTheme, props) {
|
|
152
|
-
var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly, includeParent = props.includeParent;
|
|
155
|
+
var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly, includeParent = props.includeParent;
|
|
153
156
|
var rootUnit = includeParent ? structure.root.unitMap.get(unit.id) : unit;
|
|
154
157
|
var differentRoot = includeParent && rootUnit !== unit;
|
|
155
158
|
var _a = getConformation(rootUnit), x = _a.x, y = _a.y, z = _a.z;
|
|
@@ -164,7 +167,7 @@ export function getUnitConformationAndRadius(structure, unit, sizeTheme, props)
|
|
|
164
167
|
var _id = [];
|
|
165
168
|
for (var i = 0, il = elements.length; i < il; ++i) {
|
|
166
169
|
var eI = elements[i];
|
|
167
|
-
if (ignoreHydrogens && isHydrogen(rootUnit, eI))
|
|
170
|
+
if (ignoreHydrogens && isHydrogen(structure, rootUnit, eI, ignoreHydrogensVariant))
|
|
168
171
|
continue;
|
|
169
172
|
if (traceOnly && !isTrace(rootUnit, eI))
|
|
170
173
|
continue;
|
|
@@ -193,7 +196,7 @@ export function getUnitConformationAndRadius(structure, unit, sizeTheme, props)
|
|
|
193
196
|
return { position: position, boundary: boundary, radius: radius };
|
|
194
197
|
}
|
|
195
198
|
export function getStructureConformationAndRadius(structure, sizeTheme, props) {
|
|
196
|
-
var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly, includeParent = props.includeParent;
|
|
199
|
+
var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly, includeParent = props.includeParent;
|
|
197
200
|
var differentRoot = includeParent && !!structure.parent;
|
|
198
201
|
var l = StructureElement.Location.create(structure.root);
|
|
199
202
|
var _a = structure.boundary.sphere, center = _a.center, sphereRadius = _a.radius;
|
|
@@ -221,7 +224,7 @@ export function getStructureConformationAndRadius(structure, sizeTheme, props) {
|
|
|
221
224
|
l.unit = unit;
|
|
222
225
|
for (var j = 0, jl = elements.length; j < jl; ++j) {
|
|
223
226
|
var eI = elements[j];
|
|
224
|
-
if (ignoreHydrogens && isHydrogen(unit, eI))
|
|
227
|
+
if (ignoreHydrogens && isHydrogen(structure, unit, eI, ignoreHydrogensVariant))
|
|
225
228
|
continue;
|
|
226
229
|
if (traceOnly && !isTrace(unit, eI))
|
|
227
230
|
continue;
|
|
@@ -283,10 +286,11 @@ export function getStructureConformationAndRadius(structure, sizeTheme, props) {
|
|
|
283
286
|
return { position: position, boundary: boundary, radius: radius };
|
|
284
287
|
}
|
|
285
288
|
var _H = AtomicNumbers['H'];
|
|
286
|
-
export function isHydrogen(unit, element) {
|
|
289
|
+
export function isHydrogen(structure, unit, element, variant) {
|
|
287
290
|
if (Unit.isCoarse(unit))
|
|
288
291
|
return false;
|
|
289
|
-
return unit.model.atomicHierarchy.derived.atom.atomicNumber[element] === _H
|
|
292
|
+
return (unit.model.atomicHierarchy.derived.atom.atomicNumber[element] === _H &&
|
|
293
|
+
(variant === 'all' || !hasPolarNeighbour(structure, unit, SortedArray.indexOf(unit.elements, element))));
|
|
290
294
|
}
|
|
291
295
|
export function isH(atomicNumber, element) {
|
|
292
296
|
return atomicNumber[element] === _H;
|
|
@@ -16,6 +16,7 @@ import { Spheres } from '../../../../mol-geo/geometry/spheres/spheres';
|
|
|
16
16
|
import { StructureGroup } from './common';
|
|
17
17
|
type ElementProps = {
|
|
18
18
|
ignoreHydrogens: boolean;
|
|
19
|
+
ignoreHydrogensVariant: 'all' | 'non-polar';
|
|
19
20
|
traceOnly: boolean;
|
|
20
21
|
};
|
|
21
22
|
export type ElementSphereMeshProps = {
|
|
@@ -15,13 +15,12 @@ import { addSphere } from '../../../../mol-geo/geometry/mesh/builder/sphere';
|
|
|
15
15
|
import { LocationIterator } from '../../../../mol-geo/util/location-iterator';
|
|
16
16
|
import { Spheres } from '../../../../mol-geo/geometry/spheres/spheres';
|
|
17
17
|
import { SpheresBuilder } from '../../../../mol-geo/geometry/spheres/spheres-builder';
|
|
18
|
-
import { isTrace,
|
|
18
|
+
import { isTrace, isHydrogen } from './common';
|
|
19
19
|
import { Sphere3D } from '../../../../mol-math/geometry';
|
|
20
20
|
// avoiding namespace lookup improved performance in Chrome (Aug 2020)
|
|
21
21
|
var v3add = Vec3.add;
|
|
22
22
|
export function makeElementIgnoreTest(structure, unit, props) {
|
|
23
|
-
var ignoreHydrogens = props.ignoreHydrogens, traceOnly = props.traceOnly;
|
|
24
|
-
var atomicNumber = unit.model.atomicHierarchy.derived.atom.atomicNumber;
|
|
23
|
+
var ignoreHydrogens = props.ignoreHydrogens, ignoreHydrogensVariant = props.ignoreHydrogensVariant, traceOnly = props.traceOnly;
|
|
25
24
|
var isCoarse = Unit.isCoarse(unit);
|
|
26
25
|
var child = structure.child;
|
|
27
26
|
var childUnit = child === null || child === void 0 ? void 0 : child.unitMap.get(unit.id);
|
|
@@ -31,7 +30,7 @@ export function makeElementIgnoreTest(structure, unit, props) {
|
|
|
31
30
|
return;
|
|
32
31
|
return function (element) {
|
|
33
32
|
return ((!!childUnit && !SortedArray.has(childUnit.elements, element)) ||
|
|
34
|
-
(!isCoarse && ignoreHydrogens &&
|
|
33
|
+
(!isCoarse && ignoreHydrogens && isHydrogen(structure, unit, element, ignoreHydrogensVariant)) ||
|
|
35
34
|
(traceOnly && !isTrace(unit, element)));
|
|
36
35
|
};
|
|
37
36
|
}
|
|
@@ -11,6 +11,7 @@ import { WebGLContext } from '../../../../mol-gl/webgl/context';
|
|
|
11
11
|
import { SizeTheme } from '../../../../mol-theme/size';
|
|
12
12
|
export declare const GaussianDensityParams: {
|
|
13
13
|
ignoreHydrogens: PD.BooleanParam;
|
|
14
|
+
ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
|
|
14
15
|
traceOnly: PD.BooleanParam;
|
|
15
16
|
includeParent: PD.BooleanParam;
|
|
16
17
|
resolution: PD.Numeric;
|
|
@@ -19,6 +20,7 @@ export declare const GaussianDensityParams: {
|
|
|
19
20
|
};
|
|
20
21
|
export declare const DefaultGaussianDensityProps: PD.Values<{
|
|
21
22
|
ignoreHydrogens: PD.BooleanParam;
|
|
23
|
+
ignoreHydrogensVariant: PD.Select<"all" | "non-polar">;
|
|
22
24
|
traceOnly: PD.BooleanParam;
|
|
23
25
|
includeParent: PD.BooleanParam;
|
|
24
26
|
resolution: PD.Numeric;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
@@ -17,11 +17,11 @@ import { Loci } from '../../mol-model/loci';
|
|
|
17
17
|
import { PickingId } from '../../mol-geo/geometry/picking';
|
|
18
18
|
export declare function createDirectVolume2d(ctx: RuntimeContext, webgl: WebGLContext, volume: Volume, directVolume?: DirectVolume): DirectVolume;
|
|
19
19
|
export declare function createDirectVolume3d(ctx: RuntimeContext, webgl: WebGLContext, volume: Volume, directVolume?: DirectVolume): DirectVolume;
|
|
20
|
-
export declare function createDirectVolume(ctx: VisualContext, volume: Volume, theme: Theme, props: PD.Values<DirectVolumeParams>, directVolume?: DirectVolume): Promise<DirectVolume>;
|
|
21
|
-
export declare function getDirectVolumeLoci(pickingId: PickingId, volume: Volume, props: DirectVolumeProps, id: number): Volume.Cell.Loci | {
|
|
20
|
+
export declare function createDirectVolume(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: PD.Values<DirectVolumeParams>, directVolume?: DirectVolume): Promise<DirectVolume>;
|
|
21
|
+
export declare function getDirectVolumeLoci(pickingId: PickingId, volume: Volume, key: number, props: DirectVolumeProps, id: number): Volume.Cell.Loci | {
|
|
22
22
|
kind: "empty-loci";
|
|
23
23
|
};
|
|
24
|
-
export declare function eachDirectVolume(loci: Loci, volume: Volume, props: DirectVolumeProps, apply: (interval: Interval) => boolean): boolean;
|
|
24
|
+
export declare function eachDirectVolume(loci: Loci, volume: Volume, key: number, props: DirectVolumeProps, apply: (interval: Interval) => boolean): boolean;
|
|
25
25
|
export declare const DirectVolumeParams: {
|
|
26
26
|
quality: {
|
|
27
27
|
isEssential: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
@@ -68,7 +68,7 @@ export function createDirectVolume3d(ctx, webgl, volume, directVolume) {
|
|
|
68
68
|
return DirectVolume.create(bbox, gridDimension, transform, unitToCartn, cellDim, texture, volume.grid.stats, false, axisOrder, directVolume);
|
|
69
69
|
}
|
|
70
70
|
//
|
|
71
|
-
export function createDirectVolume(ctx, volume, theme, props, directVolume) {
|
|
71
|
+
export function createDirectVolume(ctx, volume, key, theme, props, directVolume) {
|
|
72
72
|
return __awaiter(this, void 0, void 0, function () {
|
|
73
73
|
var runtime, webgl;
|
|
74
74
|
return __generator(this, function (_a) {
|
|
@@ -84,20 +84,22 @@ export function createDirectVolume(ctx, volume, theme, props, directVolume) {
|
|
|
84
84
|
function getLoci(volume, props) {
|
|
85
85
|
return Volume.Loci(volume);
|
|
86
86
|
}
|
|
87
|
-
export function getDirectVolumeLoci(pickingId, volume, props, id) {
|
|
87
|
+
export function getDirectVolumeLoci(pickingId, volume, key, props, id) {
|
|
88
88
|
var objectId = pickingId.objectId, groupId = pickingId.groupId;
|
|
89
89
|
if (id === objectId) {
|
|
90
90
|
return Volume.Cell.Loci(volume, Interval.ofSingleton(groupId));
|
|
91
91
|
}
|
|
92
92
|
return EmptyLoci;
|
|
93
93
|
}
|
|
94
|
-
export function eachDirectVolume(loci, volume, props, apply) {
|
|
94
|
+
export function eachDirectVolume(loci, volume, key, props, apply) {
|
|
95
95
|
return eachVolumeLoci(loci, volume, undefined, apply);
|
|
96
96
|
}
|
|
97
97
|
//
|
|
98
98
|
export var DirectVolumeParams = __assign(__assign({}, DirectVolume.Params), { quality: __assign(__assign({}, DirectVolume.Params.quality), { isEssential: false }) });
|
|
99
99
|
export function getDirectVolumeParams(ctx, volume) {
|
|
100
|
-
|
|
100
|
+
var params = PD.clone(DirectVolumeParams);
|
|
101
|
+
params.controlPoints.getVolume = function () { return volume; };
|
|
102
|
+
return params;
|
|
101
103
|
}
|
|
102
104
|
export function DirectVolumeVisual(materialId) {
|
|
103
105
|
return VolumeVisual({
|
|
@@ -126,5 +128,5 @@ export var DirectVolumeRepresentationProvider = VolumeRepresentationProvider({
|
|
|
126
128
|
defaultValues: PD.getDefaultValues(DirectVolumeParams),
|
|
127
129
|
defaultColorTheme: { name: 'volume-value' },
|
|
128
130
|
defaultSizeTheme: { name: 'uniform' },
|
|
129
|
-
isApplicable: function (volume) { return !Volume.isEmpty(volume); }
|
|
131
|
+
isApplicable: function (volume) { return !Volume.isEmpty(volume) && !Volume.Segmentation.get(volume); }
|
|
130
132
|
});
|
|
@@ -41,7 +41,7 @@ export declare const VolumeIsosurfaceParams: {
|
|
|
41
41
|
};
|
|
42
42
|
export type VolumeIsosurfaceParams = typeof VolumeIsosurfaceParams;
|
|
43
43
|
export type VolumeIsosurfaceProps = PD.Values<VolumeIsosurfaceParams>;
|
|
44
|
-
export declare function IsosurfaceVisual(materialId: number, volume: Volume, props: PD.Values<IsosurfaceMeshParams>, webgl?: WebGLContext): VolumeVisual<{
|
|
44
|
+
export declare function IsosurfaceVisual(materialId: number, volume: Volume, key: number, props: PD.Values<IsosurfaceMeshParams>, webgl?: WebGLContext): VolumeVisual<{
|
|
45
45
|
quality: {
|
|
46
46
|
isEssential: boolean;
|
|
47
47
|
type: "select";
|
|
@@ -114,8 +114,8 @@ export declare function IsosurfaceVisual(materialId: number, volume: Volume, pro
|
|
|
114
114
|
}>>;
|
|
115
115
|
instanceGranularity: PD.BooleanParam;
|
|
116
116
|
}>;
|
|
117
|
-
export declare function eachIsosurface(loci: Loci, volume: Volume, props: VolumeIsosurfaceProps, apply: (interval: Interval) => boolean): boolean;
|
|
118
|
-
export declare function createVolumeIsosurfaceMesh(ctx: VisualContext, volume: Volume, theme: Theme, props: VolumeIsosurfaceProps, mesh?: Mesh): Promise<Mesh>;
|
|
117
|
+
export declare function eachIsosurface(loci: Loci, volume: Volume, key: number, props: VolumeIsosurfaceProps, apply: (interval: Interval) => boolean): boolean;
|
|
118
|
+
export declare function createVolumeIsosurfaceMesh(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: VolumeIsosurfaceProps, mesh?: Mesh): Promise<Mesh>;
|
|
119
119
|
export declare const IsosurfaceMeshParams: {
|
|
120
120
|
quality: {
|
|
121
121
|
isEssential: boolean;
|
|
@@ -192,7 +192,7 @@ export declare const IsosurfaceMeshParams: {
|
|
|
192
192
|
export type IsosurfaceMeshParams = typeof IsosurfaceMeshParams;
|
|
193
193
|
export declare function IsosurfaceMeshVisual(materialId: number): VolumeVisual<IsosurfaceMeshParams>;
|
|
194
194
|
export declare function IsosurfaceTextureMeshVisual(materialId: number): VolumeVisual<IsosurfaceMeshParams>;
|
|
195
|
-
export declare function createVolumeIsosurfaceWireframe(ctx: VisualContext, volume: Volume, theme: Theme, props: VolumeIsosurfaceProps, lines?: Lines): Promise<Lines>;
|
|
195
|
+
export declare function createVolumeIsosurfaceWireframe(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: VolumeIsosurfaceProps, lines?: Lines): Promise<Lines>;
|
|
196
196
|
export declare const IsosurfaceWireframeParams: {
|
|
197
197
|
quality: {
|
|
198
198
|
isEssential: boolean;
|
|
@@ -41,7 +41,7 @@ function suitableForGpu(volume, webgl) {
|
|
|
41
41
|
var powerOfTwoSize = getVolumeTexture2dLayout(gridDim, Padding).powerOfTwoSize;
|
|
42
42
|
return powerOfTwoSize <= webgl.maxTextureSize / 2;
|
|
43
43
|
}
|
|
44
|
-
export function IsosurfaceVisual(materialId, volume, props, webgl) {
|
|
44
|
+
export function IsosurfaceVisual(materialId, volume, key, props, webgl) {
|
|
45
45
|
if (props.tryUseGpu && webgl && gpuSupport(webgl) && suitableForGpu(volume, webgl)) {
|
|
46
46
|
return IsosurfaceTextureMeshVisual(materialId);
|
|
47
47
|
}
|
|
@@ -50,7 +50,7 @@ export function IsosurfaceVisual(materialId, volume, props, webgl) {
|
|
|
50
50
|
function getLoci(volume, props) {
|
|
51
51
|
return Volume.Isosurface.Loci(volume, props.isoValue);
|
|
52
52
|
}
|
|
53
|
-
function getIsosurfaceLoci(pickingId, volume, props, id) {
|
|
53
|
+
function getIsosurfaceLoci(pickingId, volume, key, props, id) {
|
|
54
54
|
var objectId = pickingId.objectId, groupId = pickingId.groupId;
|
|
55
55
|
if (id === objectId) {
|
|
56
56
|
var granularity = Volume.PickingGranularity.get(volume);
|
|
@@ -66,11 +66,11 @@ function getIsosurfaceLoci(pickingId, volume, props, id) {
|
|
|
66
66
|
}
|
|
67
67
|
return EmptyLoci;
|
|
68
68
|
}
|
|
69
|
-
export function eachIsosurface(loci, volume, props, apply) {
|
|
70
|
-
return eachVolumeLoci(loci, volume, props.isoValue, apply);
|
|
69
|
+
export function eachIsosurface(loci, volume, key, props, apply) {
|
|
70
|
+
return eachVolumeLoci(loci, volume, { isoValue: props.isoValue }, apply);
|
|
71
71
|
}
|
|
72
72
|
//
|
|
73
|
-
export function createVolumeIsosurfaceMesh(ctx, volume, theme, props, mesh) {
|
|
73
|
+
export function createVolumeIsosurfaceMesh(ctx, volume, key, theme, props, mesh) {
|
|
74
74
|
return __awaiter(this, void 0, void 0, function () {
|
|
75
75
|
var ids, surface, transform;
|
|
76
76
|
return __generator(this, function (_a) {
|
|
@@ -96,7 +96,7 @@ export function createVolumeIsosurfaceMesh(ctx, volume, theme, props, mesh) {
|
|
|
96
96
|
else {
|
|
97
97
|
ValueCell.updateIfChanged(surface.varyingGroup, true);
|
|
98
98
|
}
|
|
99
|
-
surface.setBoundingSphere(Volume.getBoundingSphere(volume));
|
|
99
|
+
surface.setBoundingSphere(Volume.Isosurface.getBoundingSphere(volume, props.isoValue));
|
|
100
100
|
return [2 /*return*/, surface];
|
|
101
101
|
}
|
|
102
102
|
});
|
|
@@ -115,8 +115,8 @@ export function IsosurfaceMeshVisual(materialId) {
|
|
|
115
115
|
state.createGeometry = true;
|
|
116
116
|
},
|
|
117
117
|
geometryUtils: Mesh.Utils,
|
|
118
|
-
mustRecreate: function (
|
|
119
|
-
return props.tryUseGpu && !!webgl && suitableForGpu(volume, webgl);
|
|
118
|
+
mustRecreate: function (volumekey, props, webgl) {
|
|
119
|
+
return props.tryUseGpu && !!webgl && suitableForGpu(volumekey.volume, webgl);
|
|
120
120
|
}
|
|
121
121
|
}, materialId);
|
|
122
122
|
}
|
|
@@ -157,9 +157,9 @@ var VolumeIsosurfaceTexture;
|
|
|
157
157
|
}
|
|
158
158
|
VolumeIsosurfaceTexture.get = get;
|
|
159
159
|
})(VolumeIsosurfaceTexture || (VolumeIsosurfaceTexture = {}));
|
|
160
|
-
function createVolumeIsosurfaceTextureMesh(ctx, volume, theme, props, textureMesh) {
|
|
160
|
+
function createVolumeIsosurfaceTextureMesh(ctx, volume, key, theme, props, textureMesh) {
|
|
161
161
|
return __awaiter(this, void 0, void 0, function () {
|
|
162
|
-
var _a, max, min, diff, value, isoLevel, _b, texture, gridDimension, gridTexDim, gridTexScale, transform, axisOrder, buffer, gv, groupCount, surface;
|
|
162
|
+
var _a, max, min, diff, value, isoLevel, _b, texture, gridDimension, gridTexDim, gridTexScale, transform, axisOrder, buffer, gv, groupCount, boundingSphere, surface;
|
|
163
163
|
return __generator(this, function (_c) {
|
|
164
164
|
if (!ctx.webgl)
|
|
165
165
|
throw new Error('webgl context required to create volume isosurface texture-mesh');
|
|
@@ -175,7 +175,8 @@ function createVolumeIsosurfaceTextureMesh(ctx, volume, theme, props, textureMes
|
|
|
175
175
|
buffer = textureMesh === null || textureMesh === void 0 ? void 0 : textureMesh.doubleBuffer.get();
|
|
176
176
|
gv = extractIsosurface(ctx.webgl, texture, gridDimension, gridTexDim, gridTexScale, transform, isoLevel, value < 0, false, axisOrder, true, buffer === null || buffer === void 0 ? void 0 : buffer.vertex, buffer === null || buffer === void 0 ? void 0 : buffer.group, buffer === null || buffer === void 0 ? void 0 : buffer.normal);
|
|
177
177
|
groupCount = volume.grid.cells.data.length;
|
|
178
|
-
|
|
178
|
+
boundingSphere = Volume.getBoundingSphere(volume);
|
|
179
|
+
surface = TextureMesh.create(gv.vertexCount, groupCount, gv.vertexTexture, gv.groupTexture, gv.normalTexture, boundingSphere, textureMesh);
|
|
179
180
|
surface.meta.webgl = ctx.webgl;
|
|
180
181
|
return [2 /*return*/, surface];
|
|
181
182
|
});
|
|
@@ -193,8 +194,8 @@ export function IsosurfaceTextureMeshVisual(materialId) {
|
|
|
193
194
|
state.createGeometry = true;
|
|
194
195
|
},
|
|
195
196
|
geometryUtils: TextureMesh.Utils,
|
|
196
|
-
mustRecreate: function (
|
|
197
|
-
return !props.tryUseGpu || !webgl || !suitableForGpu(volume, webgl);
|
|
197
|
+
mustRecreate: function (volumeKey, props, webgl) {
|
|
198
|
+
return !props.tryUseGpu || !webgl || !suitableForGpu(volumeKey.volume, webgl);
|
|
198
199
|
},
|
|
199
200
|
dispose: function (geometry) {
|
|
200
201
|
geometry.vertexTexture.ref.value.destroy();
|
|
@@ -205,7 +206,7 @@ export function IsosurfaceTextureMeshVisual(materialId) {
|
|
|
205
206
|
}, materialId);
|
|
206
207
|
}
|
|
207
208
|
//
|
|
208
|
-
export function createVolumeIsosurfaceWireframe(ctx, volume, theme, props, lines) {
|
|
209
|
+
export function createVolumeIsosurfaceWireframe(ctx, volume, key, theme, props, lines) {
|
|
209
210
|
return __awaiter(this, void 0, void 0, function () {
|
|
210
211
|
var ids, wireframe, transform;
|
|
211
212
|
return __generator(this, function (_a) {
|
|
@@ -222,7 +223,7 @@ export function createVolumeIsosurfaceWireframe(ctx, volume, theme, props, lines
|
|
|
222
223
|
wireframe = _a.sent();
|
|
223
224
|
transform = Grid.getGridToCartesianTransform(volume.grid);
|
|
224
225
|
Lines.transform(wireframe, transform);
|
|
225
|
-
wireframe.setBoundingSphere(Volume.getBoundingSphere(volume));
|
|
226
|
+
wireframe.setBoundingSphere(Volume.Isosurface.getBoundingSphere(volume, props.isoValue));
|
|
226
227
|
return [2 /*return*/, wireframe];
|
|
227
228
|
}
|
|
228
229
|
});
|
|
@@ -266,5 +267,5 @@ export var IsosurfaceRepresentationProvider = VolumeRepresentationProvider({
|
|
|
266
267
|
defaultValues: PD.getDefaultValues(IsosurfaceParams),
|
|
267
268
|
defaultColorTheme: { name: 'uniform' },
|
|
268
269
|
defaultSizeTheme: { name: 'uniform' },
|
|
269
|
-
isApplicable: function (volume) { return !Volume.isEmpty(volume); }
|
|
270
|
+
isApplicable: function (volume) { return !Volume.isEmpty(volume) && !Volume.Segmentation.get(volume); }
|
|
270
271
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
@@ -199,6 +199,59 @@ export declare namespace VolumeRepresentationRegistry {
|
|
|
199
199
|
}>>;
|
|
200
200
|
instanceGranularity: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
201
201
|
}, "direct-volume">;
|
|
202
|
+
segment: import("./representation").VolumeRepresentationProvider<{
|
|
203
|
+
visuals: import("../../mol-util/param-definition").ParamDefinition.MultiSelect<"segment">;
|
|
204
|
+
bumpFrequency: import("../../mol-util/param-definition").ParamDefinition.Numeric;
|
|
205
|
+
quality: {
|
|
206
|
+
isEssential: boolean;
|
|
207
|
+
type: "select";
|
|
208
|
+
options: readonly (readonly ["auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest", string] | readonly ["auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest", string, string | undefined])[];
|
|
209
|
+
cycle?: boolean | undefined;
|
|
210
|
+
isOptional?: boolean | undefined;
|
|
211
|
+
defaultValue: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
|
|
212
|
+
label?: string | undefined;
|
|
213
|
+
description?: string | undefined;
|
|
214
|
+
legend?: import("../../mol-util/legend").Legend | undefined;
|
|
215
|
+
fieldLabels?: {
|
|
216
|
+
[name: string]: string;
|
|
217
|
+
} | undefined;
|
|
218
|
+
isHidden?: boolean | undefined;
|
|
219
|
+
shortLabel?: boolean | undefined;
|
|
220
|
+
twoColumns?: boolean | undefined;
|
|
221
|
+
category?: string | undefined;
|
|
222
|
+
hideIf?: ((currentGroup: any) => boolean) | undefined;
|
|
223
|
+
help?: ((value: any) => {
|
|
224
|
+
description?: string | undefined;
|
|
225
|
+
legend?: import("../../mol-util/legend").Legend | undefined;
|
|
226
|
+
}) | undefined;
|
|
227
|
+
};
|
|
228
|
+
tryUseGpu: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
229
|
+
segments: import("../../mol-util/param-definition").ParamDefinition.Converted<number[], string[]>;
|
|
230
|
+
doubleSided: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
231
|
+
flipSided: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
232
|
+
flatShaded: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
233
|
+
ignoreLight: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
234
|
+
xrayShaded: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
235
|
+
transparentBackfaces: import("../../mol-util/param-definition").ParamDefinition.Select<string>;
|
|
236
|
+
bumpAmplitude: import("../../mol-util/param-definition").ParamDefinition.Numeric;
|
|
237
|
+
alpha: import("../../mol-util/param-definition").ParamDefinition.Numeric;
|
|
238
|
+
material: import("../../mol-util/param-definition").ParamDefinition.Group<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
|
|
239
|
+
metalness: number;
|
|
240
|
+
roughness: number;
|
|
241
|
+
bumpiness: number;
|
|
242
|
+
}>>;
|
|
243
|
+
clip: import("../../mol-util/param-definition").ParamDefinition.Group<import("../../mol-util/param-definition").ParamDefinition.Normalize<{
|
|
244
|
+
variant: import("../../mol-util/clip").Clip.Variant;
|
|
245
|
+
objects: import("../../mol-util/param-definition").ParamDefinition.Normalize<{
|
|
246
|
+
type: any;
|
|
247
|
+
invert: any;
|
|
248
|
+
position: any;
|
|
249
|
+
rotation: any;
|
|
250
|
+
scale: any;
|
|
251
|
+
}>[];
|
|
252
|
+
}>>;
|
|
253
|
+
instanceGranularity: import("../../mol-util/param-definition").ParamDefinition.BooleanParam;
|
|
254
|
+
}, "segment">;
|
|
202
255
|
};
|
|
203
256
|
type _BuiltIn = typeof BuiltIn;
|
|
204
257
|
export type BuiltIn = keyof _BuiltIn;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
@@ -9,6 +9,7 @@ import { IsosurfaceRepresentationProvider } from './isosurface';
|
|
|
9
9
|
import { objectForEach } from '../../mol-util/object';
|
|
10
10
|
import { SliceRepresentationProvider } from './slice';
|
|
11
11
|
import { DirectVolumeRepresentationProvider } from './direct-volume';
|
|
12
|
+
import { SegmentRepresentationProvider } from './segment';
|
|
12
13
|
var VolumeRepresentationRegistry = /** @class */ (function (_super) {
|
|
13
14
|
__extends(VolumeRepresentationRegistry, _super);
|
|
14
15
|
function VolumeRepresentationRegistry() {
|
|
@@ -28,5 +29,6 @@ export { VolumeRepresentationRegistry };
|
|
|
28
29
|
'isosurface': IsosurfaceRepresentationProvider,
|
|
29
30
|
'slice': SliceRepresentationProvider,
|
|
30
31
|
'direct-volume': DirectVolumeRepresentationProvider,
|
|
32
|
+
'segment': SegmentRepresentationProvider,
|
|
31
33
|
};
|
|
32
34
|
})(VolumeRepresentationRegistry || (VolumeRepresentationRegistry = {}));
|
|
@@ -15,16 +15,20 @@ import { Interval } from '../../mol-data/int';
|
|
|
15
15
|
import { VisualUpdateState } from '../util';
|
|
16
16
|
import { Representation, RepresentationProvider, RepresentationContext, RepresentationParamsGetter } from '../representation';
|
|
17
17
|
import { WebGLContext } from '../../mol-gl/webgl/context';
|
|
18
|
-
export
|
|
18
|
+
export type VolumeKey = {
|
|
19
|
+
volume: Volume;
|
|
20
|
+
key: number;
|
|
21
|
+
};
|
|
22
|
+
export interface VolumeVisual<P extends VolumeParams> extends Visual<VolumeKey, P> {
|
|
19
23
|
}
|
|
20
24
|
interface VolumeVisualBuilder<P extends VolumeParams, G extends Geometry> {
|
|
21
25
|
defaultProps: PD.Values<P>;
|
|
22
|
-
createGeometry(ctx: VisualContext, volume: Volume, theme: Theme, props: PD.Values<P>, geometry?: G): Promise<G> | G;
|
|
23
|
-
createLocationIterator(volume: Volume): LocationIterator;
|
|
24
|
-
getLoci(pickingId: PickingId, volume: Volume, props: PD.Values<P>, id: number): Loci;
|
|
25
|
-
eachLocation(loci: Loci, volume: Volume, props: PD.Values<P>, apply: (interval: Interval) => boolean): boolean;
|
|
26
|
+
createGeometry(ctx: VisualContext, volume: Volume, key: number, theme: Theme, props: PD.Values<P>, geometry?: G): Promise<G> | G;
|
|
27
|
+
createLocationIterator(volume: Volume, key: number): LocationIterator;
|
|
28
|
+
getLoci(pickingId: PickingId, volume: Volume, key: number, props: PD.Values<P>, id: number): Loci;
|
|
29
|
+
eachLocation(loci: Loci, volume: Volume, key: number, props: PD.Values<P>, apply: (interval: Interval) => boolean): boolean;
|
|
26
30
|
setUpdateState(state: VisualUpdateState, volume: Volume, newProps: PD.Values<P>, currentProps: PD.Values<P>, newTheme: Theme, currentTheme: Theme): void;
|
|
27
|
-
mustRecreate?: (
|
|
31
|
+
mustRecreate?: (volumeKey: VolumeKey, props: PD.Values<P>) => boolean;
|
|
28
32
|
dispose?: (geometry: G) => void;
|
|
29
33
|
}
|
|
30
34
|
interface VolumeVisualGeometryBuilder<P extends VolumeParams, G extends Geometry> extends VolumeVisualBuilder<P, G> {
|
|
@@ -56,5 +60,5 @@ export declare const VolumeParams: {
|
|
|
56
60
|
instanceGranularity: PD.BooleanParam;
|
|
57
61
|
};
|
|
58
62
|
export type VolumeParams = typeof VolumeParams;
|
|
59
|
-
export declare function VolumeRepresentation<P extends VolumeParams>(label: string, ctx: RepresentationContext, getParams: RepresentationParamsGetter<Volume, P>, visualCtor: (materialId: number, volume: Volume, props: PD.Values<P>, webgl?: WebGLContext) => VolumeVisual<P>, getLoci: (volume: Volume, props: PD.Values<P>) => Loci): VolumeRepresentation<P>;
|
|
63
|
+
export declare function VolumeRepresentation<P extends VolumeParams>(label: string, ctx: RepresentationContext, getParams: RepresentationParamsGetter<Volume, P>, visualCtor: (materialId: number, volume: Volume, key: number, props: PD.Values<P>, webgl?: WebGLContext) => VolumeVisual<P>, getLoci: (volume: Volume, props: PD.Values<P>) => Loci, getKeys?: (props: PD.Values<P>) => ArrayLike<number>): VolumeRepresentation<P>;
|
|
60
64
|
export {};
|