molstar 3.8.2 → 3.9.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/build/viewer/index.html +4 -1
- package/build/viewer/molstar.js +1 -1
- package/lib/apps/viewer/app.d.ts +1 -1
- package/lib/apps/viewer/app.js +1 -1
- package/lib/apps/viewer/index.html +4 -1
- package/lib/cli/cif2bcif/converter.js +1 -1
- package/lib/commonjs/apps/viewer/app.d.ts +1 -1
- package/lib/commonjs/apps/viewer/app.js +2 -1
- package/lib/commonjs/cli/cif2bcif/converter.js +1 -1
- package/lib/commonjs/examples/alpha-orbitals/index.d.ts +1 -1
- package/lib/commonjs/examples/alpha-orbitals/index.js +4 -1
- package/lib/commonjs/examples/basic-wrapper/custom-theme.js +1 -1
- package/lib/commonjs/examples/proteopedia-wrapper/coloring.js +3 -3
- package/lib/commonjs/extensions/alpha-orbitals/density.d.ts +1 -1
- package/lib/commonjs/extensions/alpha-orbitals/density.js +6 -2
- package/lib/commonjs/extensions/alpha-orbitals/orbitals.d.ts +1 -1
- package/lib/commonjs/extensions/alpha-orbitals/orbitals.js +6 -3
- package/lib/commonjs/extensions/anvil/algorithm.js +1 -1
- package/lib/commonjs/extensions/cellpack/color/generate.js +1 -1
- package/lib/commonjs/extensions/cellpack/color/provided.js +1 -1
- package/lib/commonjs/extensions/cellpack/state.js +1 -1
- package/lib/commonjs/extensions/dnatco/confal-pyramids/color.js +1 -1
- package/lib/commonjs/extensions/g3d/model.js +1 -1
- package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
- package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
- package/lib/commonjs/extensions/pdbe/structure-quality-report/color.js +1 -1
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.js +4 -4
- package/lib/commonjs/extensions/rcsb/validation-report/color/density-fit.js +1 -1
- package/lib/commonjs/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
- package/lib/commonjs/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
- package/lib/commonjs/extensions/rcsb/validation-report/representation.js +2 -2
- package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
- package/lib/commonjs/mol-canvas3d/controls/trackball.js +7 -7
- package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +14 -14
- package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +5 -5
- package/lib/commonjs/mol-canvas3d/passes/draw.js +34 -5
- package/lib/commonjs/mol-canvas3d/passes/fxaa.js +5 -0
- package/lib/commonjs/mol-canvas3d/passes/marking.js +5 -0
- package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +9 -0
- package/lib/commonjs/mol-canvas3d/passes/pick.d.ts +18 -5
- package/lib/commonjs/mol-canvas3d/passes/pick.js +125 -24
- package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
- package/lib/commonjs/mol-canvas3d/passes/smaa.js +4 -0
- package/lib/commonjs/mol-canvas3d/passes/wboit.js +4 -0
- package/lib/commonjs/mol-data/db/column.js +5 -5
- package/lib/commonjs/mol-data/db/table.js +2 -2
- package/lib/commonjs/mol-data/util/array.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
- package/lib/commonjs/mol-gl/compute/grid3d.d.ts +2 -2
- package/lib/commonjs/mol-gl/compute/grid3d.js +30 -8
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +6 -1
- package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
- package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
- package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
- package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +10 -10
- package/lib/commonjs/mol-gl/renderer.js +77 -32
- package/lib/commonjs/mol-gl/scene.js +2 -0
- package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
- 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/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/image.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/lines.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/points.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/points.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/text.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/text.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader-code.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader-code.js +41 -9
- package/lib/commonjs/mol-gl/webgl/compat.d.ts +34 -1
- package/lib/commonjs/mol-gl/webgl/compat.js +50 -2
- package/lib/commonjs/mol-gl/webgl/context.d.ts +2 -0
- package/lib/commonjs/mol-gl/webgl/context.js +3 -0
- package/lib/commonjs/mol-gl/webgl/extensions.d.ts +3 -2
- package/lib/commonjs/mol-gl/webgl/extensions.js +6 -1
- package/lib/commonjs/mol-gl/webgl/timer.d.ts +22 -0
- package/lib/commonjs/mol-gl/webgl/timer.js +169 -0
- package/lib/commonjs/mol-io/common/binary-cif/array-encoder.js +18 -18
- package/lib/commonjs/mol-io/common/binary-cif/decoder.js +16 -16
- package/lib/commonjs/mol-io/common/binary-cif/encoding.js +9 -9
- package/lib/commonjs/mol-io/reader/cif/binary/field.js +3 -3
- package/lib/commonjs/mol-io/reader/cif/data-model.js +14 -14
- package/lib/commonjs/mol-io/reader/cif/schema.js +1 -1
- package/lib/commonjs/mol-io/reader/cif/text/parser.js +23 -23
- package/lib/commonjs/mol-io/reader/common/text/column/fixed.js +1 -1
- package/lib/commonjs/mol-io/reader/common/text/column/token.js +1 -1
- package/lib/commonjs/mol-io/reader/common/text/number-parser.js +6 -6
- package/lib/commonjs/mol-io/reader/csv/parser.js +8 -8
- package/lib/commonjs/mol-io/writer/cif/encoder/binary.js +10 -10
- package/lib/commonjs/mol-io/writer/cif/encoder/text.js +7 -7
- package/lib/commonjs/mol-io/writer/cif/encoder.js +8 -8
- package/lib/commonjs/mol-io/writer/mol2/encoder.js +4 -4
- package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +13 -2
- package/lib/commonjs/mol-model/sequence/alignment/sequence.js +3 -3
- package/lib/commonjs/mol-model/sequence/sequence.js +9 -9
- package/lib/commonjs/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
- package/lib/commonjs/mol-model/structure/export/categories/secondary-structure.js +2 -2
- package/lib/commonjs/mol-model/structure/export/categories/utils.js +1 -1
- package/lib/commonjs/mol-model/structure/model/model.js +2 -2
- package/lib/commonjs/mol-model/structure/model/properties/custom/indexed.js +6 -6
- package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
- package/lib/commonjs/mol-model/structure/model/types.js +116 -116
- package/lib/commonjs/mol-model/structure/query/context.js +1 -1
- package/lib/commonjs/mol-model/structure/query/queries/generators.js +5 -5
- package/lib/commonjs/mol-model/structure/query/queries/internal.js +4 -4
- package/lib/commonjs/mol-model/structure/query/queries/modifiers.js +4 -4
- package/lib/commonjs/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
- package/lib/commonjs/mol-model/structure/query/utils/structure-distance.js +9 -9
- package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.js +106 -106
- package/lib/commonjs/mol-model/structure/structure/element/loci.js +5 -5
- package/lib/commonjs/mol-model/structure/structure/element/stats.js +5 -5
- package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
- package/lib/commonjs/mol-model/structure/structure/structure.js +11 -11
- package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
- package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
- package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +2 -2
- package/lib/commonjs/mol-model/structure/structure/unit/resonance.js +1 -1
- package/lib/commonjs/mol-model/structure/structure/unit/rings/compute.js +6 -6
- package/lib/commonjs/mol-model/structure/structure/unit/rings.js +6 -6
- package/lib/commonjs/mol-model/structure/structure/unit.js +16 -16
- package/lib/commonjs/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
- package/lib/commonjs/mol-model/structure/util.js +4 -4
- package/lib/commonjs/mol-model-formats/structure/basic/atomic.js +2 -2
- package/lib/commonjs/mol-model-formats/structure/basic/parser.js +4 -4
- package/lib/commonjs/mol-model-formats/structure/basic/properties.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/basic/sort.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/basic/util.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/cif-core.js +6 -6
- package/lib/commonjs/mol-model-formats/structure/common/entity.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/cube.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/gro.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/mol.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/mol2.js +4 -4
- package/lib/commonjs/mol-model-formats/structure/prmtop.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
- package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
- package/lib/commonjs/mol-model-formats/structure/property/secondary-structure.js +8 -8
- package/lib/commonjs/mol-model-formats/structure/psf.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/top.js +1 -1
- package/lib/commonjs/mol-model-formats/structure/xyz.js +1 -1
- package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
- package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
- package/lib/commonjs/mol-model-props/computed/accessible-surface-area.js +2 -2
- package/lib/commonjs/mol-model-props/computed/chemistry/functional-group.js +31 -31
- package/lib/commonjs/mol-model-props/computed/chemistry/geometry.js +22 -22
- package/lib/commonjs/mol-model-props/computed/chemistry/valence-model.js +32 -32
- package/lib/commonjs/mol-model-props/computed/interactions/charged.js +39 -39
- package/lib/commonjs/mol-model-props/computed/interactions/common.js +34 -34
- package/lib/commonjs/mol-model-props/computed/interactions/contacts-builder.js +1 -1
- package/lib/commonjs/mol-model-props/computed/interactions/contacts.js +1 -1
- package/lib/commonjs/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
- package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
- package/lib/commonjs/mol-model-props/computed/interactions/hydrophobic.js +9 -9
- package/lib/commonjs/mol-model-props/computed/interactions/metal.js +26 -26
- package/lib/commonjs/mol-model-props/computed/interactions/refine.js +20 -20
- package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
- package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
- package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp.js +30 -30
- package/lib/commonjs/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
- package/lib/commonjs/mol-model-props/computed/themes/interaction-type.js +10 -10
- package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
- package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
- package/lib/commonjs/mol-model-props/sequence/sifts-mapping.js +1 -1
- package/lib/commonjs/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
- package/lib/commonjs/mol-plugin/animation-loop.d.ts +2 -1
- package/lib/commonjs/mol-plugin/animation-loop.js +18 -5
- package/lib/commonjs/mol-plugin/behavior/dynamic/camera.js +12 -12
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +7 -7
- package/lib/commonjs/mol-plugin/context.d.ts +2 -2
- package/lib/commonjs/mol-plugin/state.d.ts +1 -14
- package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +12 -11
- package/lib/commonjs/mol-plugin-state/formats/volume.js +20 -13
- package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +5 -5
- package/lib/commonjs/mol-plugin-state/transforms/representation.js +2 -2
- package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/sequence/polymer.js +1 -1
- package/lib/commonjs/mol-plugin-ui/sequence/sequence.js +1 -1
- package/lib/commonjs/mol-plugin-ui/structure/focus.js +1 -1
- package/lib/commonjs/mol-plugin-ui/viewport.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
- package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
- package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
- package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -2
- package/lib/commonjs/mol-repr/structure/visual/util/common.js +3 -3
- package/lib/commonjs/mol-repr/structure/visual/util/link.js +30 -30
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
- package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +6 -6
- package/lib/commonjs/mol-script/language/symbol-table/core.d.ts +2 -2
- package/lib/commonjs/mol-script/runtime/query/table.js +13 -13
- package/lib/commonjs/mol-state/object.d.ts +3 -3
- package/lib/commonjs/mol-task/util/user-timing.js +1 -1
- package/lib/commonjs/mol-theme/clipping.js +19 -19
- package/lib/commonjs/mol-theme/color/atom-id.js +1 -1
- package/lib/commonjs/mol-theme/color/carbohydrate-symbol.js +1 -1
- package/lib/commonjs/mol-theme/color/chain-id.js +4 -4
- package/lib/commonjs/mol-theme/color/element-index.js +1 -1
- package/lib/commonjs/mol-theme/color/element-symbol.js +1 -1
- package/lib/commonjs/mol-theme/color/entity-id.js +4 -4
- package/lib/commonjs/mol-theme/color/entity-source.js +5 -4
- package/lib/commonjs/mol-theme/color/hydrophobicity.js +1 -1
- package/lib/commonjs/mol-theme/color/illustrative.js +1 -1
- package/lib/commonjs/mol-theme/color/model-index.js +1 -1
- package/lib/commonjs/mol-theme/color/molecule-type.js +8 -8
- package/lib/commonjs/mol-theme/color/occupancy.js +1 -1
- package/lib/commonjs/mol-theme/color/operator-hkl.js +1 -1
- package/lib/commonjs/mol-theme/color/operator-name.js +1 -1
- package/lib/commonjs/mol-theme/color/partial-charge.js +1 -1
- package/lib/commonjs/mol-theme/color/polymer-id.js +4 -4
- package/lib/commonjs/mol-theme/color/polymer-index.js +1 -1
- package/lib/commonjs/mol-theme/color/residue-name.js +1 -1
- package/lib/commonjs/mol-theme/color/secondary-structure.js +12 -12
- package/lib/commonjs/mol-theme/color/sequence-id.js +7 -7
- package/lib/commonjs/mol-theme/color/shape-group.js +1 -1
- package/lib/commonjs/mol-theme/color/uncertainty.js +1 -1
- package/lib/commonjs/mol-theme/color/uniform.js +1 -1
- package/lib/commonjs/mol-theme/color/unit-index.js +1 -1
- package/lib/commonjs/mol-theme/color/volume-value.js +1 -1
- package/lib/commonjs/mol-theme/label.js +3 -3
- package/lib/commonjs/mol-util/binding.js +4 -4
- package/lib/commonjs/mol-util/debug.d.ts +6 -1
- package/lib/commonjs/mol-util/debug.js +11 -1
- package/lib/commonjs/mol-util/input/input-observer.js +20 -20
- package/lib/commonjs/mol-util/string-builder.js +1 -1
- package/lib/commonjs/servers/model/preprocess/converter.js +1 -1
- package/lib/commonjs/servers/model/server/query.js +1 -1
- package/lib/commonjs/servers/model/utils/fetch-retry.js +3 -2
- package/lib/commonjs/servers/volume/server/algebra/coordinate.js +6 -6
- package/lib/commonjs/servers/volume/server/query/encode.js +1 -1
- package/lib/examples/alpha-orbitals/index.d.ts +1 -1
- package/lib/examples/alpha-orbitals/index.html +11 -0
- package/lib/examples/alpha-orbitals/index.js +4 -1
- package/lib/examples/basic-wrapper/custom-theme.js +1 -1
- package/lib/examples/proteopedia-wrapper/coloring.js +3 -3
- package/lib/extensions/alpha-orbitals/density.d.ts +1 -1
- package/lib/extensions/alpha-orbitals/density.js +6 -2
- package/lib/extensions/alpha-orbitals/orbitals.d.ts +1 -1
- package/lib/extensions/alpha-orbitals/orbitals.js +6 -3
- package/lib/extensions/anvil/algorithm.js +1 -1
- package/lib/extensions/cellpack/color/generate.js +1 -1
- package/lib/extensions/cellpack/color/provided.js +1 -1
- package/lib/extensions/cellpack/state.js +1 -1
- package/lib/extensions/dnatco/confal-pyramids/color.js +1 -1
- package/lib/extensions/g3d/model.js +1 -1
- package/lib/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
- package/lib/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
- package/lib/extensions/pdbe/structure-quality-report/color.js +1 -1
- package/lib/extensions/rcsb/assembly-symmetry/color.js +4 -4
- package/lib/extensions/rcsb/validation-report/color/density-fit.js +1 -1
- package/lib/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
- package/lib/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
- package/lib/extensions/rcsb/validation-report/representation.js +2 -2
- package/lib/mol-canvas3d/canvas3d.js +5 -1
- package/lib/mol-canvas3d/controls/trackball.js +7 -7
- package/lib/mol-canvas3d/helper/camera-helper.js +14 -14
- package/lib/mol-canvas3d/helper/interaction-events.js +5 -5
- package/lib/mol-canvas3d/passes/draw.js +34 -5
- package/lib/mol-canvas3d/passes/fxaa.js +5 -0
- package/lib/mol-canvas3d/passes/marking.js +5 -0
- package/lib/mol-canvas3d/passes/multi-sample.js +9 -0
- package/lib/mol-canvas3d/passes/pick.d.ts +18 -5
- package/lib/mol-canvas3d/passes/pick.js +125 -24
- package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
- package/lib/mol-canvas3d/passes/smaa.js +5 -1
- package/lib/mol-canvas3d/passes/wboit.js +5 -1
- package/lib/mol-data/db/column.js +5 -5
- package/lib/mol-data/db/table.js +2 -2
- package/lib/mol-data/util/array.d.ts +1 -1
- package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
- package/lib/mol-gl/compute/grid3d.d.ts +2 -2
- package/lib/mol-gl/compute/grid3d.js +30 -8
- package/lib/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
- package/lib/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
- package/lib/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
- package/lib/mol-gl/compute/histogram-pyramid/sum.js +6 -1
- package/lib/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
- package/lib/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
- package/lib/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
- package/lib/mol-gl/compute/marching-cubes/isosurface.js +10 -10
- package/lib/mol-gl/renderer.js +77 -32
- package/lib/mol-gl/scene.js +2 -0
- package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
- 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/direct-volume.frag.d.ts +1 -1
- package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
- package/lib/mol-gl/shader/image.frag.d.ts +1 -1
- package/lib/mol-gl/shader/image.frag.js +1 -1
- package/lib/mol-gl/shader/lines.frag.d.ts +1 -1
- package/lib/mol-gl/shader/lines.frag.js +1 -1
- package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
- package/lib/mol-gl/shader/mesh.frag.js +1 -1
- package/lib/mol-gl/shader/points.frag.d.ts +1 -1
- package/lib/mol-gl/shader/points.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/text.frag.d.ts +1 -1
- package/lib/mol-gl/shader/text.frag.js +1 -1
- package/lib/mol-gl/shader-code.d.ts +1 -1
- package/lib/mol-gl/shader-code.js +41 -9
- package/lib/mol-gl/webgl/compat.d.ts +34 -1
- package/lib/mol-gl/webgl/compat.js +48 -1
- package/lib/mol-gl/webgl/context.d.ts +2 -0
- package/lib/mol-gl/webgl/context.js +3 -0
- package/lib/mol-gl/webgl/extensions.d.ts +3 -2
- package/lib/mol-gl/webgl/extensions.js +7 -2
- package/lib/mol-gl/webgl/timer.d.ts +22 -0
- package/lib/mol-gl/webgl/timer.js +164 -0
- package/lib/mol-io/common/binary-cif/array-encoder.js +18 -18
- package/lib/mol-io/common/binary-cif/decoder.js +16 -16
- package/lib/mol-io/common/binary-cif/encoding.js +9 -9
- package/lib/mol-io/reader/cif/binary/field.js +3 -3
- package/lib/mol-io/reader/cif/data-model.js +14 -14
- package/lib/mol-io/reader/cif/schema.js +1 -1
- package/lib/mol-io/reader/cif/text/parser.js +23 -23
- package/lib/mol-io/reader/common/text/column/fixed.js +1 -1
- package/lib/mol-io/reader/common/text/column/token.js +1 -1
- package/lib/mol-io/reader/common/text/number-parser.js +6 -6
- package/lib/mol-io/reader/csv/parser.js +8 -8
- package/lib/mol-io/writer/cif/encoder/binary.js +10 -10
- package/lib/mol-io/writer/cif/encoder/text.js +7 -7
- package/lib/mol-io/writer/cif/encoder.js +8 -8
- package/lib/mol-io/writer/mol2/encoder.js +4 -4
- package/lib/mol-math/geometry/gaussian-density/gpu.js +13 -2
- package/lib/mol-model/sequence/alignment/sequence.js +3 -3
- package/lib/mol-model/sequence/sequence.js +9 -9
- package/lib/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
- package/lib/mol-model/structure/export/categories/secondary-structure.js +2 -2
- package/lib/mol-model/structure/export/categories/utils.js +1 -1
- package/lib/mol-model/structure/model/model.js +2 -2
- package/lib/mol-model/structure/model/properties/custom/indexed.js +6 -6
- package/lib/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
- package/lib/mol-model/structure/model/types.js +116 -116
- package/lib/mol-model/structure/query/context.js +1 -1
- package/lib/mol-model/structure/query/queries/generators.js +5 -5
- package/lib/mol-model/structure/query/queries/internal.js +4 -4
- package/lib/mol-model/structure/query/queries/modifiers.js +4 -4
- package/lib/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
- package/lib/mol-model/structure/query/utils/structure-distance.js +9 -9
- package/lib/mol-model/structure/structure/carbohydrates/constants.js +106 -106
- package/lib/mol-model/structure/structure/element/loci.js +5 -5
- package/lib/mol-model/structure/structure/element/stats.js +5 -5
- package/lib/mol-model/structure/structure/properties.js +5 -5
- package/lib/mol-model/structure/structure/structure.js +11 -11
- package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
- package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
- package/lib/mol-model/structure/structure/unit/bonds.js +2 -2
- package/lib/mol-model/structure/structure/unit/resonance.js +1 -1
- package/lib/mol-model/structure/structure/unit/rings/compute.js +6 -6
- package/lib/mol-model/structure/structure/unit/rings.js +6 -6
- package/lib/mol-model/structure/structure/unit.js +16 -16
- package/lib/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
- package/lib/mol-model/structure/util.js +4 -4
- package/lib/mol-model-formats/structure/basic/atomic.js +2 -2
- package/lib/mol-model-formats/structure/basic/parser.js +4 -4
- package/lib/mol-model-formats/structure/basic/properties.js +1 -1
- package/lib/mol-model-formats/structure/basic/sort.js +1 -1
- package/lib/mol-model-formats/structure/basic/util.js +1 -1
- package/lib/mol-model-formats/structure/cif-core.js +6 -6
- package/lib/mol-model-formats/structure/common/entity.js +1 -1
- package/lib/mol-model-formats/structure/cube.js +1 -1
- package/lib/mol-model-formats/structure/gro.js +1 -1
- package/lib/mol-model-formats/structure/mol.js +1 -1
- package/lib/mol-model-formats/structure/mol2.js +4 -4
- package/lib/mol-model-formats/structure/prmtop.js +1 -1
- package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
- package/lib/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
- package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
- package/lib/mol-model-formats/structure/property/secondary-structure.js +8 -8
- package/lib/mol-model-formats/structure/psf.js +1 -1
- package/lib/mol-model-formats/structure/top.js +1 -1
- package/lib/mol-model-formats/structure/xyz.js +1 -1
- package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
- package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
- package/lib/mol-model-props/computed/accessible-surface-area.js +2 -2
- package/lib/mol-model-props/computed/chemistry/functional-group.js +31 -31
- package/lib/mol-model-props/computed/chemistry/geometry.js +22 -22
- package/lib/mol-model-props/computed/chemistry/valence-model.js +32 -32
- package/lib/mol-model-props/computed/interactions/charged.js +39 -39
- package/lib/mol-model-props/computed/interactions/common.js +34 -34
- package/lib/mol-model-props/computed/interactions/contacts-builder.js +1 -1
- package/lib/mol-model-props/computed/interactions/contacts.js +1 -1
- package/lib/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
- package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
- package/lib/mol-model-props/computed/interactions/hydrophobic.js +9 -9
- package/lib/mol-model-props/computed/interactions/metal.js +26 -26
- package/lib/mol-model-props/computed/interactions/refine.js +20 -20
- package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
- package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
- package/lib/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
- package/lib/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
- package/lib/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
- package/lib/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
- package/lib/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
- package/lib/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
- package/lib/mol-model-props/computed/secondary-structure/dssp.js +30 -30
- package/lib/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
- package/lib/mol-model-props/computed/themes/interaction-type.js +10 -10
- package/lib/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
- package/lib/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
- package/lib/mol-model-props/sequence/sifts-mapping.js +1 -1
- package/lib/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
- package/lib/mol-plugin/animation-loop.d.ts +2 -1
- package/lib/mol-plugin/animation-loop.js +18 -5
- package/lib/mol-plugin/behavior/dynamic/camera.js +12 -12
- package/lib/mol-plugin/behavior/dynamic/representation.js +7 -7
- package/lib/mol-plugin/context.d.ts +2 -2
- package/lib/mol-plugin/state.d.ts +1 -14
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/formats/volume.d.ts +12 -11
- package/lib/mol-plugin-state/formats/volume.js +20 -13
- package/lib/mol-plugin-state/helpers/structure-selection-query.js +5 -5
- package/lib/mol-plugin-state/transforms/representation.js +2 -2
- package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -1
- package/lib/mol-plugin-ui/sequence/polymer.js +1 -1
- package/lib/mol-plugin-ui/sequence/sequence.js +1 -1
- package/lib/mol-plugin-ui/structure/focus.js +1 -1
- package/lib/mol-plugin-ui/viewport.d.ts +2 -2
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
- package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
- package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
- package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
- package/lib/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
- package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
- package/lib/mol-repr/structure/visual/util/bond.js +2 -2
- package/lib/mol-repr/structure/visual/util/common.js +3 -3
- package/lib/mol-repr/structure/visual/util/link.js +30 -30
- package/lib/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
- package/lib/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
- package/lib/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
- package/lib/mol-repr/structure/visual/util/polymer.js +6 -6
- package/lib/mol-script/language/symbol-table/core.d.ts +2 -2
- package/lib/mol-script/runtime/query/table.js +13 -13
- package/lib/mol-state/object.d.ts +3 -3
- package/lib/mol-task/util/user-timing.js +1 -1
- package/lib/mol-theme/clipping.js +19 -19
- package/lib/mol-theme/color/atom-id.js +1 -1
- package/lib/mol-theme/color/carbohydrate-symbol.js +1 -1
- package/lib/mol-theme/color/chain-id.js +4 -4
- package/lib/mol-theme/color/element-index.js +1 -1
- package/lib/mol-theme/color/element-symbol.js +1 -1
- package/lib/mol-theme/color/entity-id.js +4 -4
- package/lib/mol-theme/color/entity-source.js +5 -4
- package/lib/mol-theme/color/hydrophobicity.js +1 -1
- package/lib/mol-theme/color/illustrative.js +1 -1
- package/lib/mol-theme/color/model-index.js +1 -1
- package/lib/mol-theme/color/molecule-type.js +8 -8
- package/lib/mol-theme/color/occupancy.js +1 -1
- package/lib/mol-theme/color/operator-hkl.js +1 -1
- package/lib/mol-theme/color/operator-name.js +1 -1
- package/lib/mol-theme/color/partial-charge.js +1 -1
- package/lib/mol-theme/color/polymer-id.js +4 -4
- package/lib/mol-theme/color/polymer-index.js +1 -1
- package/lib/mol-theme/color/residue-name.js +1 -1
- package/lib/mol-theme/color/secondary-structure.js +12 -12
- package/lib/mol-theme/color/sequence-id.js +7 -7
- package/lib/mol-theme/color/shape-group.js +1 -1
- package/lib/mol-theme/color/uncertainty.js +1 -1
- package/lib/mol-theme/color/uniform.js +1 -1
- package/lib/mol-theme/color/unit-index.js +1 -1
- package/lib/mol-theme/color/volume-value.js +1 -1
- package/lib/mol-theme/label.js +3 -3
- package/lib/mol-util/binding.js +4 -4
- package/lib/mol-util/debug.d.ts +6 -1
- package/lib/mol-util/debug.js +9 -1
- package/lib/mol-util/input/input-observer.js +20 -20
- package/lib/mol-util/string-builder.js +1 -1
- package/lib/servers/model/preprocess/converter.js +1 -1
- package/lib/servers/model/server/query.js +1 -1
- package/lib/servers/model/utils/fetch-retry.js +3 -2
- package/lib/servers/volume/server/algebra/coordinate.js +6 -6
- package/lib/servers/volume/server/query/encode.js +1 -1
- package/package.json +8 -8
|
@@ -15,6 +15,7 @@ var wboit_1 = require("./wboit");
|
|
|
15
15
|
var postprocessing_1 = require("./postprocessing");
|
|
16
16
|
var marking_1 = require("./marking");
|
|
17
17
|
var util_1 = require("../../mol-gl/compute/util");
|
|
18
|
+
var debug_1 = require("../../mol-util/debug");
|
|
18
19
|
var DrawPass = /** @class */ (function () {
|
|
19
20
|
function DrawPass(webgl, width, height, enableWboit) {
|
|
20
21
|
this.webgl = webgl;
|
|
@@ -95,8 +96,12 @@ var DrawPass = /** @class */ (function () {
|
|
|
95
96
|
// render transparent primitives and volumes
|
|
96
97
|
if (scene.opacityAverage < 1 || scene.volumes.renderables.length > 0) {
|
|
97
98
|
this.wboit.bind();
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
if (scene.opacityAverage < 1) {
|
|
100
|
+
renderer.renderWboitTransparent(scene.primitives, camera, this.depthTextureOpaque);
|
|
101
|
+
}
|
|
102
|
+
if (scene.volumes.renderables.length > 0) {
|
|
103
|
+
renderer.renderWboitTransparent(scene.volumes, camera, this.depthTextureOpaque);
|
|
104
|
+
}
|
|
100
105
|
// evaluate wboit
|
|
101
106
|
if (postprocessing_1.PostprocessingPass.isEnabled(postprocessingProps)) {
|
|
102
107
|
this.postprocessing.target.bind();
|
|
@@ -108,7 +113,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
108
113
|
}
|
|
109
114
|
};
|
|
110
115
|
DrawPass.prototype._renderBlended = function (renderer, camera, scene, toDrawingBuffer, transparentBackground, postprocessingProps) {
|
|
111
|
-
var _a, _b;
|
|
116
|
+
var _a, _b, _c, _d;
|
|
112
117
|
if (toDrawingBuffer) {
|
|
113
118
|
this.drawTarget.bind();
|
|
114
119
|
}
|
|
@@ -151,9 +156,29 @@ var DrawPass = /** @class */ (function () {
|
|
|
151
156
|
(_b = this.colorTarget.depthRenderbuffer) === null || _b === void 0 ? void 0 : _b.attachFramebuffer(this.postprocessing.target.framebuffer);
|
|
152
157
|
}
|
|
153
158
|
}
|
|
154
|
-
|
|
159
|
+
if (scene.volumes.renderables.length > 0) {
|
|
160
|
+
var target = postprocessing_1.PostprocessingPass.isEnabled(postprocessingProps)
|
|
161
|
+
? this.postprocessing.target : this.colorTarget;
|
|
162
|
+
if (!this.packedDepth) {
|
|
163
|
+
this.depthTextureOpaque.detachFramebuffer(target.framebuffer, 'depth');
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
(_c = this.colorTarget.depthRenderbuffer) === null || _c === void 0 ? void 0 : _c.detachFramebuffer(target.framebuffer);
|
|
167
|
+
}
|
|
168
|
+
target.bind();
|
|
169
|
+
renderer.renderBlendedVolume(scene.volumes, camera, this.depthTextureOpaque);
|
|
170
|
+
if (!this.packedDepth) {
|
|
171
|
+
this.depthTextureOpaque.attachFramebuffer(target.framebuffer, 'depth');
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
(_d = this.colorTarget.depthRenderbuffer) === null || _d === void 0 ? void 0 : _d.attachFramebuffer(target.framebuffer);
|
|
175
|
+
}
|
|
176
|
+
target.bind();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (scene.opacityAverage < 1) {
|
|
180
|
+
renderer.renderBlendedTransparent(scene.primitives, camera, null);
|
|
155
181
|
}
|
|
156
|
-
renderer.renderBlendedTransparent(scene.primitives, camera, null);
|
|
157
182
|
};
|
|
158
183
|
DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer, props) {
|
|
159
184
|
var volumeRendering = scene.volumes.renderables.length > 0;
|
|
@@ -225,6 +250,8 @@ var DrawPass = /** @class */ (function () {
|
|
|
225
250
|
this.webgl.gl.flush();
|
|
226
251
|
};
|
|
227
252
|
DrawPass.prototype.render = function (ctx, props, toDrawingBuffer) {
|
|
253
|
+
if (debug_1.isTimingMode)
|
|
254
|
+
this.webgl.timer.mark('DrawPass.render');
|
|
228
255
|
var renderer = ctx.renderer, camera = ctx.camera, scene = ctx.scene, helper = ctx.helper;
|
|
229
256
|
renderer.setTransparentBackground(props.transparentBackground);
|
|
230
257
|
renderer.setDrawingBufferSize(this.colorTarget.getWidth(), this.colorTarget.getHeight());
|
|
@@ -236,6 +263,8 @@ var DrawPass = /** @class */ (function () {
|
|
|
236
263
|
else {
|
|
237
264
|
this._render(renderer, camera, scene, helper, toDrawingBuffer, props);
|
|
238
265
|
}
|
|
266
|
+
if (debug_1.isTimingMode)
|
|
267
|
+
this.webgl.timer.markEnd('DrawPass.render');
|
|
239
268
|
};
|
|
240
269
|
DrawPass.prototype.getColorTarget = function (postprocessingProps) {
|
|
241
270
|
if (postprocessing_1.AntialiasingPass.isEnabled(postprocessingProps)) {
|
|
@@ -17,6 +17,7 @@ var mol_util_1 = require("../../mol-util");
|
|
|
17
17
|
var param_definition_1 = require("../../mol-util/param-definition");
|
|
18
18
|
var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
|
|
19
19
|
var fxaa_frag_1 = require("../../mol-gl/shader/fxaa.frag");
|
|
20
|
+
var debug_1 = require("../../mol-util/debug");
|
|
20
21
|
exports.FxaaParams = {
|
|
21
22
|
edgeThresholdMin: param_definition_1.ParamDefinition.Numeric(0.0312, { min: 0.0312, max: 0.0833, step: 0.0001 }, { description: 'Trims the algorithm from processing darks.' }),
|
|
22
23
|
edgeThresholdMax: param_definition_1.ParamDefinition.Numeric(0.063, { min: 0.063, max: 0.333, step: 0.001 }, { description: 'The minimum amount of local contrast required to apply algorithm.' }),
|
|
@@ -68,6 +69,8 @@ var FxaaPass = /** @class */ (function () {
|
|
|
68
69
|
}
|
|
69
70
|
};
|
|
70
71
|
FxaaPass.prototype.render = function (viewport, target) {
|
|
72
|
+
if (debug_1.isTimingMode)
|
|
73
|
+
this.webgl.timer.mark('FxaaPass.render');
|
|
71
74
|
if (target) {
|
|
72
75
|
target.bind();
|
|
73
76
|
}
|
|
@@ -76,6 +79,8 @@ var FxaaPass = /** @class */ (function () {
|
|
|
76
79
|
}
|
|
77
80
|
this.updateState(viewport);
|
|
78
81
|
this.renderable.render();
|
|
82
|
+
if (debug_1.isTimingMode)
|
|
83
|
+
this.webgl.timer.markEnd('FxaaPass.render');
|
|
79
84
|
};
|
|
80
85
|
return FxaaPass;
|
|
81
86
|
}());
|
|
@@ -19,6 +19,7 @@ var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
|
|
|
19
19
|
var overlay_frag_1 = require("../../mol-gl/shader/marking/overlay.frag");
|
|
20
20
|
var color_1 = require("../../mol-util/color");
|
|
21
21
|
var edge_frag_1 = require("../../mol-gl/shader/marking/edge.frag");
|
|
22
|
+
var debug_1 = require("../../mol-util/debug");
|
|
22
23
|
exports.MarkingParams = {
|
|
23
24
|
enabled: param_definition_1.ParamDefinition.Boolean(true),
|
|
24
25
|
highlightEdgeColor: param_definition_1.ParamDefinition.Color(color_1.Color.darken(color_1.Color.fromNormalizedRgb(1.0, 0.4, 0.6), 1.0)),
|
|
@@ -91,6 +92,8 @@ var MarkingPass = /** @class */ (function () {
|
|
|
91
92
|
mol_util_1.ValueCell.update(overlayValues.uGhostEdgeStrength, ghostEdgeStrength);
|
|
92
93
|
};
|
|
93
94
|
MarkingPass.prototype.render = function (viewport, target) {
|
|
95
|
+
if (debug_1.isTimingMode)
|
|
96
|
+
this.webgl.timer.mark('MarkingPass.render');
|
|
94
97
|
this.edgesTarget.bind();
|
|
95
98
|
this.setEdgeState(viewport);
|
|
96
99
|
this.edge.render();
|
|
@@ -102,6 +105,8 @@ var MarkingPass = /** @class */ (function () {
|
|
|
102
105
|
}
|
|
103
106
|
this.setOverlayState(viewport);
|
|
104
107
|
this.overlay.render();
|
|
108
|
+
if (debug_1.isTimingMode)
|
|
109
|
+
this.webgl.timer.markEnd('MarkingPass.render');
|
|
105
110
|
};
|
|
106
111
|
return MarkingPass;
|
|
107
112
|
}());
|
|
@@ -18,6 +18,7 @@ var param_definition_1 = require("../../mol-util/param-definition");
|
|
|
18
18
|
var camera_1 = require("../../mol-canvas3d/camera");
|
|
19
19
|
var quad_vert_1 = require("../../mol-gl/shader/quad.vert");
|
|
20
20
|
var compose_frag_1 = require("../../mol-gl/shader/compose.frag");
|
|
21
|
+
var debug_1 = require("../../mol-util/debug");
|
|
21
22
|
var ComposeSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tColor: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2'), uWeight: (0, schema_1.UniformSpec)('f') });
|
|
22
23
|
var ComposeShaderCode = (0, shader_code_1.ShaderCode)('compose', quad_vert_1.quad_vert, compose_frag_1.compose_frag);
|
|
23
24
|
function getComposeRenderable(ctx, colorTexture) {
|
|
@@ -79,6 +80,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
79
80
|
var camera = ctx.camera;
|
|
80
81
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
81
82
|
var gl = webgl.gl, state = webgl.state;
|
|
83
|
+
if (debug_1.isTimingMode)
|
|
84
|
+
webgl.timer.mark('MultiSamplePass.renderMultiSample');
|
|
82
85
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
83
86
|
// contributed to three.js by bhouston / http://clara.io/
|
|
84
87
|
//
|
|
@@ -137,11 +140,15 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
137
140
|
compose.render();
|
|
138
141
|
camera.viewOffset.enabled = false;
|
|
139
142
|
camera.update();
|
|
143
|
+
if (debug_1.isTimingMode)
|
|
144
|
+
webgl.timer.markEnd('MultiSamplePass.renderMultiSample');
|
|
140
145
|
};
|
|
141
146
|
MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex, ctx, props, toDrawingBuffer) {
|
|
142
147
|
var camera = ctx.camera;
|
|
143
148
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, holdTarget = _a.holdTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
144
149
|
var gl = webgl.gl, state = webgl.state;
|
|
150
|
+
if (debug_1.isTimingMode)
|
|
151
|
+
webgl.timer.mark('MultiSamplePass.renderTemporalMultiSample');
|
|
145
152
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
146
153
|
// contributed to three.js by bhouston / http://clara.io/
|
|
147
154
|
//
|
|
@@ -229,6 +236,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
229
236
|
}
|
|
230
237
|
camera.viewOffset.enabled = false;
|
|
231
238
|
camera.update();
|
|
239
|
+
if (debug_1.isTimingMode)
|
|
240
|
+
webgl.timer.markEnd('MultiSamplePass.renderTemporalMultiSample');
|
|
232
241
|
return sampleIndex >= offsetList.length ? -2 : sampleIndex;
|
|
233
242
|
};
|
|
234
243
|
return MultiSamplePass;
|
|
@@ -7,7 +7,6 @@ import { PickingId } from '../../mol-geo/geometry/picking';
|
|
|
7
7
|
import { Renderer } from '../../mol-gl/renderer';
|
|
8
8
|
import { Scene } from '../../mol-gl/scene';
|
|
9
9
|
import { WebGLContext } from '../../mol-gl/webgl/context';
|
|
10
|
-
import { RenderTarget } from '../../mol-gl/webgl/render-target';
|
|
11
10
|
import { Vec3 } from '../../mol-math/linear-algebra';
|
|
12
11
|
import { Camera, ICamera } from '../camera';
|
|
13
12
|
import { StereoCamera } from '../camera/stereo';
|
|
@@ -22,13 +21,27 @@ export declare class PickPass {
|
|
|
22
21
|
private webgl;
|
|
23
22
|
private drawPass;
|
|
24
23
|
readonly pickBaseScale: number;
|
|
25
|
-
readonly objectPickTarget
|
|
26
|
-
readonly instancePickTarget
|
|
27
|
-
readonly groupPickTarget
|
|
28
|
-
readonly depthPickTarget
|
|
24
|
+
private readonly objectPickTarget;
|
|
25
|
+
private readonly instancePickTarget;
|
|
26
|
+
private readonly groupPickTarget;
|
|
27
|
+
private readonly depthPickTarget;
|
|
28
|
+
private readonly framebuffer;
|
|
29
|
+
private readonly objectPickTexture;
|
|
30
|
+
private readonly instancePickTexture;
|
|
31
|
+
private readonly groupPickTexture;
|
|
32
|
+
private readonly depthPickTexture;
|
|
33
|
+
private readonly objectPickFramebuffer;
|
|
34
|
+
private readonly instancePickFramebuffer;
|
|
35
|
+
private readonly groupPickFramebuffer;
|
|
36
|
+
private readonly depthPickFramebuffer;
|
|
37
|
+
private readonly depthRenderbuffer;
|
|
29
38
|
private pickWidth;
|
|
30
39
|
private pickHeight;
|
|
31
40
|
constructor(webgl: WebGLContext, drawPass: DrawPass, pickBaseScale: number);
|
|
41
|
+
bindObject(): void;
|
|
42
|
+
bindInstance(): void;
|
|
43
|
+
bindGroup(): void;
|
|
44
|
+
bindDepth(): void;
|
|
32
45
|
get drawingBufferHeight(): number;
|
|
33
46
|
syncSize(): void;
|
|
34
47
|
private renderVariant;
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.PickHelper = exports.PickPass = void 0;
|
|
9
|
+
var compat_1 = require("../../mol-gl/webgl/compat");
|
|
9
10
|
var linear_algebra_1 = require("../../mol-math/linear-algebra");
|
|
10
11
|
var misc_1 = require("../../mol-math/misc");
|
|
12
|
+
var debug_1 = require("../../mol-util/debug");
|
|
11
13
|
var number_packing_1 = require("../../mol-util/number-packing");
|
|
12
14
|
var stereo_1 = require("../camera/stereo");
|
|
13
15
|
var util_1 = require("../camera/util");
|
|
@@ -21,11 +23,80 @@ var PickPass = /** @class */ (function () {
|
|
|
21
23
|
var pickScale = pickBaseScale / webgl.pixelRatio;
|
|
22
24
|
this.pickWidth = Math.ceil(drawPass.colorTarget.getWidth() * pickScale);
|
|
23
25
|
this.pickHeight = Math.ceil(drawPass.colorTarget.getHeight() * pickScale);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
var resources = webgl.resources, drawBuffers = webgl.extensions.drawBuffers, gl = webgl.gl;
|
|
27
|
+
if (drawBuffers) {
|
|
28
|
+
this.objectPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
|
|
29
|
+
this.objectPickTexture.define(this.pickWidth, this.pickHeight);
|
|
30
|
+
this.instancePickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
|
|
31
|
+
this.instancePickTexture.define(this.pickWidth, this.pickHeight);
|
|
32
|
+
this.groupPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
|
|
33
|
+
this.groupPickTexture.define(this.pickWidth, this.pickHeight);
|
|
34
|
+
this.depthPickTexture = resources.texture('image-uint8', 'rgba', 'ubyte', 'nearest');
|
|
35
|
+
this.depthPickTexture.define(this.pickWidth, this.pickHeight);
|
|
36
|
+
this.framebuffer = resources.framebuffer();
|
|
37
|
+
this.objectPickFramebuffer = resources.framebuffer();
|
|
38
|
+
this.instancePickFramebuffer = resources.framebuffer();
|
|
39
|
+
this.groupPickFramebuffer = resources.framebuffer();
|
|
40
|
+
this.depthPickFramebuffer = resources.framebuffer();
|
|
41
|
+
this.framebuffer.bind();
|
|
42
|
+
drawBuffers.drawBuffers([
|
|
43
|
+
drawBuffers.COLOR_ATTACHMENT0,
|
|
44
|
+
drawBuffers.COLOR_ATTACHMENT1,
|
|
45
|
+
drawBuffers.COLOR_ATTACHMENT2,
|
|
46
|
+
drawBuffers.COLOR_ATTACHMENT3,
|
|
47
|
+
]);
|
|
48
|
+
this.objectPickTexture.attachFramebuffer(this.framebuffer, 'color0');
|
|
49
|
+
this.instancePickTexture.attachFramebuffer(this.framebuffer, 'color1');
|
|
50
|
+
this.groupPickTexture.attachFramebuffer(this.framebuffer, 'color2');
|
|
51
|
+
this.depthPickTexture.attachFramebuffer(this.framebuffer, 'color3');
|
|
52
|
+
this.depthRenderbuffer = (0, compat_1.isWebGL2)(gl)
|
|
53
|
+
? resources.renderbuffer('depth32f', 'depth', this.pickWidth, this.pickHeight)
|
|
54
|
+
: resources.renderbuffer('depth16', 'depth', this.pickWidth, this.pickHeight);
|
|
55
|
+
this.depthRenderbuffer.attachFramebuffer(this.framebuffer);
|
|
56
|
+
this.objectPickTexture.attachFramebuffer(this.objectPickFramebuffer, 'color0');
|
|
57
|
+
this.instancePickTexture.attachFramebuffer(this.instancePickFramebuffer, 'color0');
|
|
58
|
+
this.groupPickTexture.attachFramebuffer(this.groupPickFramebuffer, 'color0');
|
|
59
|
+
this.depthPickTexture.attachFramebuffer(this.depthPickFramebuffer, 'color0');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.objectPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
|
|
63
|
+
this.instancePickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
|
|
64
|
+
this.groupPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
|
|
65
|
+
this.depthPickTarget = webgl.createRenderTarget(this.pickWidth, this.pickHeight);
|
|
66
|
+
}
|
|
28
67
|
}
|
|
68
|
+
PickPass.prototype.bindObject = function () {
|
|
69
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
70
|
+
this.objectPickFramebuffer.bind();
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.objectPickTarget.bind();
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
PickPass.prototype.bindInstance = function () {
|
|
77
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
78
|
+
this.instancePickFramebuffer.bind();
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.instancePickTarget.bind();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
PickPass.prototype.bindGroup = function () {
|
|
85
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
86
|
+
this.groupPickFramebuffer.bind();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.groupPickTarget.bind();
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
PickPass.prototype.bindDepth = function () {
|
|
93
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
94
|
+
this.depthPickFramebuffer.bind();
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.depthPickTarget.bind();
|
|
98
|
+
}
|
|
99
|
+
};
|
|
29
100
|
Object.defineProperty(PickPass.prototype, "drawingBufferHeight", {
|
|
30
101
|
get: function () {
|
|
31
102
|
return this.drawPass.colorTarget.getHeight();
|
|
@@ -40,17 +111,28 @@ var PickPass = /** @class */ (function () {
|
|
|
40
111
|
if (pickWidth !== this.pickWidth || pickHeight !== this.pickHeight) {
|
|
41
112
|
this.pickWidth = pickWidth;
|
|
42
113
|
this.pickHeight = pickHeight;
|
|
43
|
-
this.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
114
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
115
|
+
this.objectPickTexture.define(this.pickWidth, this.pickHeight);
|
|
116
|
+
this.instancePickTexture.define(this.pickWidth, this.pickHeight);
|
|
117
|
+
this.groupPickTexture.define(this.pickWidth, this.pickHeight);
|
|
118
|
+
this.depthPickTexture.define(this.pickWidth, this.pickHeight);
|
|
119
|
+
this.depthRenderbuffer.setSize(this.pickWidth, this.pickHeight);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
this.objectPickTarget.setSize(this.pickWidth, this.pickHeight);
|
|
123
|
+
this.instancePickTarget.setSize(this.pickWidth, this.pickHeight);
|
|
124
|
+
this.groupPickTarget.setSize(this.pickWidth, this.pickHeight);
|
|
125
|
+
this.depthPickTarget.setSize(this.pickWidth, this.pickHeight);
|
|
126
|
+
}
|
|
47
127
|
}
|
|
48
128
|
};
|
|
49
129
|
PickPass.prototype.renderVariant = function (renderer, camera, scene, helper, variant, pickType) {
|
|
50
130
|
renderer.clear(false);
|
|
51
131
|
renderer.update(camera);
|
|
52
132
|
renderer.renderPick(scene.primitives, camera, variant, null, pickType);
|
|
53
|
-
|
|
133
|
+
if (helper.handle.isEnabled) {
|
|
134
|
+
renderer.renderPick(helper.handle.scene, camera, variant, null, pickType);
|
|
135
|
+
}
|
|
54
136
|
if (helper.camera.isEnabled) {
|
|
55
137
|
helper.camera.update(camera);
|
|
56
138
|
renderer.update(helper.camera.camera);
|
|
@@ -58,15 +140,21 @@ var PickPass = /** @class */ (function () {
|
|
|
58
140
|
}
|
|
59
141
|
};
|
|
60
142
|
PickPass.prototype.render = function (renderer, camera, scene, helper) {
|
|
61
|
-
this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
143
|
+
if (this.webgl.extensions.drawBuffers) {
|
|
144
|
+
this.framebuffer.bind();
|
|
145
|
+
this.renderVariant(renderer, camera, scene, helper, 'pick', 0 /* PickType.None */);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
this.objectPickTarget.bind();
|
|
149
|
+
this.renderVariant(renderer, camera, scene, helper, 'pick', 1 /* PickType.Object */);
|
|
150
|
+
this.instancePickTarget.bind();
|
|
151
|
+
this.renderVariant(renderer, camera, scene, helper, 'pick', 2 /* PickType.Instance */);
|
|
152
|
+
this.groupPickTarget.bind();
|
|
153
|
+
this.renderVariant(renderer, camera, scene, helper, 'pick', 3 /* PickType.Group */);
|
|
154
|
+
// printTexture(this.webgl, this.groupPickTarget.texture, { id: 'group' })
|
|
155
|
+
this.depthPickTarget.bind();
|
|
156
|
+
this.renderVariant(renderer, camera, scene, helper, 'depth', 0 /* PickType.None */);
|
|
157
|
+
}
|
|
70
158
|
};
|
|
71
159
|
return PickPass;
|
|
72
160
|
}());
|
|
@@ -109,15 +197,19 @@ var PickHelper = /** @class */ (function () {
|
|
|
109
197
|
this.spiral = (0, misc_1.spiral2d)(Math.round(this.pickScale * this.pickPadding));
|
|
110
198
|
};
|
|
111
199
|
PickHelper.prototype.syncBuffers = function () {
|
|
200
|
+
if (debug_1.isTimingMode)
|
|
201
|
+
this.webgl.timer.mark('PickHelper.syncBuffers');
|
|
112
202
|
var _a = this, pickX = _a.pickX, pickY = _a.pickY, pickWidth = _a.pickWidth, pickHeight = _a.pickHeight;
|
|
113
|
-
this.pickPass.
|
|
203
|
+
this.pickPass.bindObject();
|
|
114
204
|
this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.objectBuffer);
|
|
115
|
-
this.pickPass.
|
|
205
|
+
this.pickPass.bindInstance();
|
|
116
206
|
this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.instanceBuffer);
|
|
117
|
-
this.pickPass.
|
|
207
|
+
this.pickPass.bindGroup();
|
|
118
208
|
this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.groupBuffer);
|
|
119
|
-
this.pickPass.
|
|
209
|
+
this.pickPass.bindDepth();
|
|
120
210
|
this.webgl.readPixels(pickX, pickY, pickWidth, pickHeight, this.depthBuffer);
|
|
211
|
+
if (debug_1.isTimingMode)
|
|
212
|
+
this.webgl.timer.markEnd('PickHelper.syncBuffers');
|
|
121
213
|
};
|
|
122
214
|
PickHelper.prototype.getBufferIdx = function (x, y) {
|
|
123
215
|
return (y * this.pickWidth + x) * 4;
|
|
@@ -132,10 +224,12 @@ var PickHelper = /** @class */ (function () {
|
|
|
132
224
|
return (0, number_packing_1.unpackRGBToInt)(buffer[idx], buffer[idx + 1], buffer[idx + 2]);
|
|
133
225
|
};
|
|
134
226
|
PickHelper.prototype.render = function (camera) {
|
|
227
|
+
if (debug_1.isTimingMode)
|
|
228
|
+
this.webgl.timer.mark('PickHelper.render');
|
|
135
229
|
var _a = this, pickX = _a.pickX, pickY = _a.pickY, pickWidth = _a.pickWidth, pickHeight = _a.pickHeight, halfPickWidth = _a.halfPickWidth;
|
|
136
230
|
var _b = this, renderer = _b.renderer, scene = _b.scene, helper = _b.helper;
|
|
137
231
|
renderer.setTransparentBackground(false);
|
|
138
|
-
renderer.setDrawingBufferSize(
|
|
232
|
+
renderer.setDrawingBufferSize(pickWidth, pickHeight);
|
|
139
233
|
renderer.setPixelRatio(this.pickScale);
|
|
140
234
|
if (stereo_1.StereoCamera.is(camera)) {
|
|
141
235
|
renderer.setViewport(pickX, pickY, halfPickWidth, pickHeight);
|
|
@@ -148,6 +242,8 @@ var PickHelper = /** @class */ (function () {
|
|
|
148
242
|
this.pickPass.render(renderer, camera, scene, helper);
|
|
149
243
|
}
|
|
150
244
|
this.dirty = false;
|
|
245
|
+
if (debug_1.isTimingMode)
|
|
246
|
+
this.webgl.timer.markEnd('PickHelper.render');
|
|
151
247
|
};
|
|
152
248
|
PickHelper.prototype.identifyInternal = function (x, y, camera) {
|
|
153
249
|
var _a = this, webgl = _a.webgl, pickScale = _a.pickScale;
|
|
@@ -164,8 +260,12 @@ var PickHelper = /** @class */ (function () {
|
|
|
164
260
|
y > viewport.y + viewport.height)
|
|
165
261
|
return;
|
|
166
262
|
if (this.dirty) {
|
|
263
|
+
if (debug_1.isTimingMode)
|
|
264
|
+
this.webgl.timer.mark('PickHelper.identify');
|
|
167
265
|
this.render(camera);
|
|
168
266
|
this.syncBuffers();
|
|
267
|
+
if (debug_1.isTimingMode)
|
|
268
|
+
this.webgl.timer.markEnd('PickHelper.identify');
|
|
169
269
|
}
|
|
170
270
|
var xv = x - viewport.x;
|
|
171
271
|
var yv = y - viewport.y;
|
|
@@ -184,6 +284,7 @@ var PickHelper = /** @class */ (function () {
|
|
|
184
284
|
if (groupId === -1 || groupId === NullId)
|
|
185
285
|
return;
|
|
186
286
|
var z = this.getDepth(xp, yp);
|
|
287
|
+
// console.log('z', z);
|
|
187
288
|
var position = linear_algebra_1.Vec3.create(x, viewport.height - y, z);
|
|
188
289
|
if (stereo_1.StereoCamera.is(camera)) {
|
|
189
290
|
var halfWidth = Math.floor(viewport.width / 2);
|
|
@@ -199,7 +300,7 @@ var PickHelper = /** @class */ (function () {
|
|
|
199
300
|
else {
|
|
200
301
|
(0, util_1.cameraUnproject)(position, position, viewport, camera.inverseProjectionView);
|
|
201
302
|
}
|
|
202
|
-
// console.log({ { objectId, instanceId, groupId }, position}
|
|
303
|
+
// console.log({ id: { objectId, instanceId, groupId }, position });
|
|
203
304
|
return { id: { objectId: objectId, instanceId: instanceId, groupId: groupId }, position: position };
|
|
204
305
|
};
|
|
205
306
|
PickHelper.prototype.identify = function (x, y, camera) {
|
|
@@ -24,6 +24,7 @@ var postprocessing_frag_1 = require("../../mol-gl/shader/postprocessing.frag");
|
|
|
24
24
|
var color_1 = require("../../mol-util/color");
|
|
25
25
|
var fxaa_1 = require("./fxaa");
|
|
26
26
|
var smaa_1 = require("./smaa");
|
|
27
|
+
var debug_1 = require("../../mol-util/debug");
|
|
27
28
|
var OutlinesSchema = tslib_1.__assign(tslib_1.__assign({}, util_1.QuadSchema), { tDepthOpaque: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), tDepthTransparent: (0, schema_1.TextureSpec)('texture', 'rgba', 'ubyte', 'nearest'), uTexSize: (0, schema_1.UniformSpec)('v2'), dOrthographic: (0, schema_1.DefineSpec)('number'), uNear: (0, schema_1.UniformSpec)('f'), uFar: (0, schema_1.UniformSpec)('f'), uMaxPossibleViewZDiff: (0, schema_1.UniformSpec)('f') });
|
|
28
29
|
function getOutlinesRenderable(ctx, depthTextureOpaque, depthTextureTransparent) {
|
|
29
30
|
var width = depthTextureOpaque.getWidth();
|
|
@@ -307,6 +308,8 @@ var PostprocessingPass = /** @class */ (function () {
|
|
|
307
308
|
mol_util_1.ValueCell.update(this.renderable.values.uOcclusionOffset, linear_algebra_1.Vec2.set(this.renderable.values.uOcclusionOffset.ref.value, x, y));
|
|
308
309
|
};
|
|
309
310
|
PostprocessingPass.prototype.render = function (camera, toDrawingBuffer, transparentBackground, backgroundColor, props) {
|
|
311
|
+
if (debug_1.isTimingMode)
|
|
312
|
+
this.webgl.timer.mark('PostprocessingPass.render');
|
|
310
313
|
this.updateState(camera, transparentBackground, backgroundColor, props);
|
|
311
314
|
if (props.outline.name === 'on') {
|
|
312
315
|
this.outlinesTarget.bind();
|
|
@@ -336,6 +339,8 @@ var PostprocessingPass = /** @class */ (function () {
|
|
|
336
339
|
state.clearColor(0, 0, 0, 1);
|
|
337
340
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
338
341
|
this.renderable.render();
|
|
342
|
+
if (debug_1.isTimingMode)
|
|
343
|
+
this.webgl.timer.markEnd('PostprocessingPass.render');
|
|
339
344
|
};
|
|
340
345
|
return PostprocessingPass;
|
|
341
346
|
}());
|
|
@@ -101,6 +101,8 @@ var SmaaPass = /** @class */ (function () {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
SmaaPass.prototype.render = function (viewport, target) {
|
|
104
|
+
if (debug_1.isTimingMode)
|
|
105
|
+
this.webgl.timer.mark('SmaaPass.render');
|
|
104
106
|
this.edgesTarget.bind();
|
|
105
107
|
this.updateState(viewport);
|
|
106
108
|
this.edgesRenderable.render();
|
|
@@ -115,6 +117,8 @@ var SmaaPass = /** @class */ (function () {
|
|
|
115
117
|
}
|
|
116
118
|
this.updateState(viewport);
|
|
117
119
|
this.blendRenderable.render();
|
|
120
|
+
if (debug_1.isTimingMode)
|
|
121
|
+
this.webgl.timer.markEnd('SmaaPass.render');
|
|
118
122
|
};
|
|
119
123
|
return SmaaPass;
|
|
120
124
|
}());
|
|
@@ -60,11 +60,15 @@ var WboitPass = /** @class */ (function () {
|
|
|
60
60
|
state.enable(gl.BLEND);
|
|
61
61
|
};
|
|
62
62
|
WboitPass.prototype.render = function () {
|
|
63
|
+
if (debug_1.isTimingMode)
|
|
64
|
+
this.webgl.timer.mark('WboitPass.render');
|
|
63
65
|
var _a = this.webgl, state = _a.state, gl = _a.gl;
|
|
64
66
|
state.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
|
|
65
67
|
state.enable(gl.BLEND);
|
|
66
68
|
this.renderable.update();
|
|
67
69
|
this.renderable.render();
|
|
70
|
+
if (debug_1.isTimingMode)
|
|
71
|
+
this.webgl.timer.markEnd('WboitPass.render');
|
|
68
72
|
};
|
|
69
73
|
WboitPass.prototype.setSize = function (width, height) {
|
|
70
74
|
var _a = this.renderable.values.uTexSize.ref.value, w = _a[0], h = _a[1];
|
|
@@ -67,11 +67,11 @@ var Column;
|
|
|
67
67
|
}
|
|
68
68
|
Column.is = is;
|
|
69
69
|
function Undefined(rowCount, schema) {
|
|
70
|
-
return constColumn(schema['T'], rowCount, schema, 1 /* NotPresent */);
|
|
70
|
+
return constColumn(schema['T'], rowCount, schema, 1 /* ValueKind.NotPresent */);
|
|
71
71
|
}
|
|
72
72
|
Column.Undefined = Undefined;
|
|
73
73
|
function ofConst(v, rowCount, type) {
|
|
74
|
-
return constColumn(v, rowCount, type, 0 /* Present */);
|
|
74
|
+
return constColumn(v, rowCount, type, 0 /* ValueKind.Present */);
|
|
75
75
|
}
|
|
76
76
|
Column.ofConst = ofConst;
|
|
77
77
|
function ofLambda(spec) {
|
|
@@ -231,7 +231,7 @@ function constColumn(v, rowCount, schema, valueKind) {
|
|
|
231
231
|
return {
|
|
232
232
|
schema: schema,
|
|
233
233
|
__array: void 0,
|
|
234
|
-
isDefined: valueKind === 0 /* Present */,
|
|
234
|
+
isDefined: valueKind === 0 /* Column.ValueKind.Present */,
|
|
235
235
|
rowCount: rowCount,
|
|
236
236
|
value: value,
|
|
237
237
|
valueKind: function (row) { return valueKind; },
|
|
@@ -252,7 +252,7 @@ function lambdaColumn(_a) {
|
|
|
252
252
|
isDefined: true,
|
|
253
253
|
rowCount: rowCount,
|
|
254
254
|
value: value,
|
|
255
|
-
valueKind: valueKind ? valueKind : function (row) { return 0 /* Present */; },
|
|
255
|
+
valueKind: valueKind ? valueKind : function (row) { return 0 /* Column.ValueKind.Present */; },
|
|
256
256
|
toArray: function (params) {
|
|
257
257
|
var _a = ColumnHelpers.createArray(rowCount, params), array = _a.array, start = _a.start;
|
|
258
258
|
for (var i = 0, _i = array.length; i < _i; i++)
|
|
@@ -280,7 +280,7 @@ function arrayColumn(_a) {
|
|
|
280
280
|
isDefined: true,
|
|
281
281
|
rowCount: rowCount,
|
|
282
282
|
value: value,
|
|
283
|
-
valueKind: valueKind ? valueKind : function (row) { return 0 /* Present */; },
|
|
283
|
+
valueKind: valueKind ? valueKind : function (row) { return 0 /* Column.ValueKind.Present */; },
|
|
284
284
|
toArray: schema.valueType === 'str'
|
|
285
285
|
? schema.transform === 'lowercase'
|
|
286
286
|
? function (params) {
|
|
@@ -83,7 +83,7 @@ var Table;
|
|
|
83
83
|
rowCount: rowCount,
|
|
84
84
|
schema: schema[k],
|
|
85
85
|
value: function (r) { return rows[r][k]; },
|
|
86
|
-
valueKind: function (r) { return typeof rows[r][k] === 'undefined' ? 1 /* NotPresent */ : 0 /* Present */; }
|
|
86
|
+
valueKind: function (r) { return typeof rows[r][k] === 'undefined' ? 1 /* Column.ValueKind.NotPresent */ : 0 /* Column.ValueKind.Present */; }
|
|
87
87
|
});
|
|
88
88
|
};
|
|
89
89
|
for (var _a = 0, columns_3 = columns; _a < columns_3.length; _a++) {
|
|
@@ -284,7 +284,7 @@ var Table;
|
|
|
284
284
|
mol_util_1.StringBuilder.write(sb, '|');
|
|
285
285
|
for (var i = 0; i < cols.length; i++) {
|
|
286
286
|
var c = table[cols[i]];
|
|
287
|
-
if (c.valueKind(r) === 0 /* Present */) {
|
|
287
|
+
if (c.valueKind(r) === 0 /* Column.ValueKind.Present */) {
|
|
288
288
|
mol_util_1.StringBuilder.write(sb, c.value(r));
|
|
289
289
|
mol_util_1.StringBuilder.write(sb, '|');
|
|
290
290
|
}
|
|
@@ -8,7 +8,7 @@ import { ArrayCtor } from '../../mol-util/type-helpers';
|
|
|
8
8
|
export declare function arrayFind<T>(array: ArrayLike<T>, f: (v: T) => boolean): T | undefined;
|
|
9
9
|
export declare function iterableToArray<T>(it: IterableIterator<T>): T[];
|
|
10
10
|
/** Fills the array so that array[0] = start and array[array.length - 1] = end */
|
|
11
|
-
export declare function createRangeArray(start: number, end: number, ctor?: ArrayCtor<number>): {
|
|
11
|
+
export declare function createRangeArray(start: number, end: number, ctor?: ArrayCtor<number>): Int32Array | {
|
|
12
12
|
[i: number]: number;
|
|
13
13
|
length: number;
|
|
14
14
|
};
|
|
@@ -20,6 +20,7 @@ var geometry_1 = require("../../../mol-math/geometry");
|
|
|
20
20
|
var accumulate_frag_1 = require("../../../mol-gl/shader/compute/color-smoothing/accumulate.frag");
|
|
21
21
|
var accumulate_vert_1 = require("../../../mol-gl/shader/compute/color-smoothing/accumulate.vert");
|
|
22
22
|
var compat_1 = require("../../../mol-gl/webgl/compat");
|
|
23
|
+
var debug_1 = require("../../../mol-util/debug");
|
|
23
24
|
exports.ColorAccumulateSchema = {
|
|
24
25
|
drawCount: (0, schema_1.ValueSpec)('number'),
|
|
25
26
|
instanceCount: (0, schema_1.ValueSpec)('number'),
|
|
@@ -188,6 +189,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
188
189
|
var drawBuffers = webgl.extensions.drawBuffers;
|
|
189
190
|
if (!drawBuffers)
|
|
190
191
|
throw new Error('need WebGL draw buffers');
|
|
192
|
+
if (debug_1.isTimingMode)
|
|
193
|
+
webgl.timer.mark('calcTextureMeshColorSmoothing');
|
|
191
194
|
var gl = webgl.gl, resources = webgl.resources, state = webgl.state, _a = webgl.extensions, colorBufferHalfFloat = _a.colorBufferHalfFloat, textureHalfFloat = _a.textureHalfFloat;
|
|
192
195
|
var isInstanceType = input.colorType.endsWith('Instance');
|
|
193
196
|
var box = geometry_1.Box3D.fromSphere3D((0, geometry_1.Box3D)(), isInstanceType ? input.boundingSphere : input.invariantBoundingSphere);
|
|
@@ -240,6 +243,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
240
243
|
drawBuffers.COLOR_ATTACHMENT1,
|
|
241
244
|
]);
|
|
242
245
|
var _c = accumulateRenderable.values, uCurrentSlice = _c.uCurrentSlice, uCurrentX = _c.uCurrentX, uCurrentY = _c.uCurrentY;
|
|
246
|
+
if (debug_1.isTimingMode)
|
|
247
|
+
webgl.timer.mark('ColorAccumulate.render');
|
|
243
248
|
setAccumulateDefaults(webgl);
|
|
244
249
|
gl.viewport(0, 0, width, height);
|
|
245
250
|
gl.scissor(0, 0, width, height);
|
|
@@ -267,6 +272,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
267
272
|
accumulateTexture.detachFramebuffer(framebuffer, 0);
|
|
268
273
|
countTexture.detachFramebuffer(framebuffer, 1);
|
|
269
274
|
drawBuffers.drawBuffers([gl.COLOR_ATTACHMENT0, gl.NONE]);
|
|
275
|
+
if (debug_1.isTimingMode)
|
|
276
|
+
webgl.timer.markEnd('ColorAccumulate.render');
|
|
270
277
|
// const accImage = new Float32Array(width * height * 4);
|
|
271
278
|
// accumulateTexture.attachFramebuffer(framebuffer, 0);
|
|
272
279
|
// webgl.readPixels(0, 0, width, height, accImage);
|
|
@@ -278,6 +285,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
278
285
|
// console.log(cntImage);
|
|
279
286
|
// printTextureImage({ array: cntImage, width, height }, { scale: 1 });
|
|
280
287
|
// normalize
|
|
288
|
+
if (debug_1.isTimingMode)
|
|
289
|
+
webgl.timer.mark('ColorNormalize.render');
|
|
281
290
|
if (!texture)
|
|
282
291
|
texture = resources.texture('image-uint8', 'rgba', 'ubyte', 'linear');
|
|
283
292
|
texture.define(width, height);
|
|
@@ -289,6 +298,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
289
298
|
gl.scissor(0, 0, width, height);
|
|
290
299
|
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
291
300
|
normalizeRenderable.render();
|
|
301
|
+
if (debug_1.isTimingMode)
|
|
302
|
+
webgl.timer.markEnd('ColorNormalize.render');
|
|
292
303
|
// const normImage = new Uint8Array(width * height * 4);
|
|
293
304
|
// texture.attachFramebuffer(framebuffer, 0);
|
|
294
305
|
// webgl.readPixels(0, 0, width, height, normImage);
|
|
@@ -296,6 +307,8 @@ function calcTextureMeshColorSmoothing(input, resolution, stride, webgl, texture
|
|
|
296
307
|
// printTextureImage({ array: normImage, width, height }, { scale: 1 });
|
|
297
308
|
var gridTransform = linear_algebra_1.Vec4.create(min[0], min[1], min[2], scaleFactor);
|
|
298
309
|
var type = isInstanceType ? 'volumeInstance' : 'volume';
|
|
310
|
+
if (debug_1.isTimingMode)
|
|
311
|
+
webgl.timer.markEnd('calcTextureMeshColorSmoothing');
|
|
299
312
|
return { texture: texture, gridDim: gridDim, gridTexDim: linear_algebra_1.Vec2.create(width, height), gridTransform: gridTransform, type: type };
|
|
300
313
|
}
|
|
301
314
|
exports.calcTextureMeshColorSmoothing = calcTextureMeshColorSmoothing;
|