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
|
@@ -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
|
*/
|
|
@@ -93,4 +93,37 @@ export interface COMPAT_sRGB {
|
|
|
93
93
|
readonly SRGB: number;
|
|
94
94
|
}
|
|
95
95
|
export declare function getSRGB(gl: GLRenderingContext): COMPAT_sRGB | null;
|
|
96
|
+
export interface COMPAT_disjoint_timer_query {
|
|
97
|
+
/** A GLint indicating the number of bits used to hold the query result for the given target. */
|
|
98
|
+
QUERY_COUNTER_BITS: number;
|
|
99
|
+
/** A WebGLQuery object, which is the currently active query for the given target. */
|
|
100
|
+
CURRENT_QUERY: number;
|
|
101
|
+
/** A GLuint64EXT containing the query result. */
|
|
102
|
+
QUERY_RESULT: number;
|
|
103
|
+
/** A GLboolean indicating whether or not a query result is available. */
|
|
104
|
+
QUERY_RESULT_AVAILABLE: number;
|
|
105
|
+
/** Elapsed time (in nanoseconds). */
|
|
106
|
+
TIME_ELAPSED: number;
|
|
107
|
+
/** The current time. */
|
|
108
|
+
TIMESTAMP: number;
|
|
109
|
+
/** A GLboolean indicating whether or not the GPU performed any disjoint operation. */
|
|
110
|
+
GPU_DISJOINT: number;
|
|
111
|
+
/** Creates a new WebGLTimerQueryEXT. */
|
|
112
|
+
createQuery: () => WebGLQuery;
|
|
113
|
+
/** Deletes a given WebGLTimerQueryEXT. */
|
|
114
|
+
deleteQuery: (query: WebGLQuery) => void;
|
|
115
|
+
/** Returns true if a given object is a valid WebGLTimerQueryEXT. */
|
|
116
|
+
isQuery: (query: WebGLQuery) => boolean;
|
|
117
|
+
/** The timer starts when all commands prior to beginQueryEXT have been fully executed. */
|
|
118
|
+
beginQuery: (target: number, query: WebGLQuery) => void;
|
|
119
|
+
/** The timer stops when all commands prior to endQueryEXT have been fully executed. */
|
|
120
|
+
endQuery: (target: number) => void;
|
|
121
|
+
/** Records the current time into the corresponding query object. */
|
|
122
|
+
queryCounter: (query: WebGLQuery, target: number) => void;
|
|
123
|
+
/** Returns information about a query target. */
|
|
124
|
+
getQuery: (target: number, pname: number) => WebGLQuery | number;
|
|
125
|
+
/** Return the state of a query object. */
|
|
126
|
+
getQueryParameter: (query: WebGLQuery, pname: number) => number | boolean;
|
|
127
|
+
}
|
|
128
|
+
export declare function getDisjointTimerQuery(gl: GLRenderingContext): COMPAT_disjoint_timer_query | null;
|
|
96
129
|
export declare function testColorBuffer(gl: GLRenderingContext, type: number): 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
|
*/
|
|
@@ -231,6 +231,53 @@ export function getSRGB(gl) {
|
|
|
231
231
|
};
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
+
export function getDisjointTimerQuery(gl) {
|
|
235
|
+
if (isWebGL2(gl)) {
|
|
236
|
+
// Firefox has EXT_disjoint_timer_query in webgl2
|
|
237
|
+
var ext = gl.getExtension('EXT_disjoint_timer_query_webgl2') || gl.getExtension('EXT_disjoint_timer_query');
|
|
238
|
+
if (ext === null)
|
|
239
|
+
return null;
|
|
240
|
+
return {
|
|
241
|
+
QUERY_COUNTER_BITS: ext.QUERY_COUNTER_BITS_EXT,
|
|
242
|
+
CURRENT_QUERY: gl.CURRENT_QUERY,
|
|
243
|
+
QUERY_RESULT: gl.QUERY_RESULT,
|
|
244
|
+
QUERY_RESULT_AVAILABLE: gl.QUERY_RESULT_AVAILABLE,
|
|
245
|
+
TIME_ELAPSED: ext.TIME_ELAPSED_EXT,
|
|
246
|
+
TIMESTAMP: ext.TIMESTAMP_EXT,
|
|
247
|
+
GPU_DISJOINT: ext.GPU_DISJOINT_EXT,
|
|
248
|
+
createQuery: gl.createQuery.bind(gl),
|
|
249
|
+
deleteQuery: gl.deleteQuery.bind(gl),
|
|
250
|
+
isQuery: gl.isQuery.bind(gl),
|
|
251
|
+
beginQuery: gl.beginQuery.bind(gl),
|
|
252
|
+
endQuery: gl.endQuery.bind(gl),
|
|
253
|
+
queryCounter: ext.queryCounterEXT.bind(ext),
|
|
254
|
+
getQuery: gl.getQuery.bind(gl),
|
|
255
|
+
getQueryParameter: gl.getQueryParameter.bind(gl),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
var ext = gl.getExtension('EXT_disjoint_timer_query');
|
|
260
|
+
if (ext === null)
|
|
261
|
+
return null;
|
|
262
|
+
return {
|
|
263
|
+
QUERY_COUNTER_BITS: ext.QUERY_COUNTER_BITS_EXT,
|
|
264
|
+
CURRENT_QUERY: ext.CURRENT_QUERY_EXT,
|
|
265
|
+
QUERY_RESULT: ext.QUERY_RESULT_EXT,
|
|
266
|
+
QUERY_RESULT_AVAILABLE: ext.QUERY_RESULT_AVAILABLE_EXT,
|
|
267
|
+
TIME_ELAPSED: ext.TIME_ELAPSED_EXT,
|
|
268
|
+
TIMESTAMP: ext.TIMESTAMP_EXT,
|
|
269
|
+
GPU_DISJOINT: ext.GPU_DISJOINT_EXT,
|
|
270
|
+
createQuery: ext.createQueryEXT.bind(ext),
|
|
271
|
+
deleteQuery: ext.deleteQueryEXT.bind(ext),
|
|
272
|
+
isQuery: ext.isQueryEXT.bind(ext),
|
|
273
|
+
beginQuery: ext.beginQueryEXT.bind(ext),
|
|
274
|
+
endQuery: ext.endQueryEXT.bind(ext),
|
|
275
|
+
queryCounter: ext.queryCounterEXT.bind(ext),
|
|
276
|
+
getQuery: ext.getQueryEXT.bind(ext),
|
|
277
|
+
getQueryParameter: ext.getQueryObjectEXT.bind(ext),
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
}
|
|
234
281
|
//
|
|
235
282
|
var TextureTestVertShader = "\nattribute vec4 aPosition;\n\nvoid main() {\n gl_Position = aPosition;\n}";
|
|
236
283
|
var TextureTestFragShader = "\nprecision mediump float;\nuniform vec4 uColor;\nuniform sampler2D uTexture;\n\nvoid main() {\n gl_FragColor = texture2D(uTexture, vec2(0.5, 0.5)) * uColor;\n}";
|
|
@@ -14,6 +14,7 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
14
14
|
import { now } from '../../mol-util/now';
|
|
15
15
|
import { Texture, TextureFilter } from './texture';
|
|
16
16
|
import { ComputeRenderable } from '../renderable';
|
|
17
|
+
import { WebGLTimer } from './timer';
|
|
17
18
|
export declare function getGLContext(canvas: HTMLCanvasElement, attribs?: WebGLContextAttributes & {
|
|
18
19
|
preferWebGl1?: boolean;
|
|
19
20
|
}): GLRenderingContext | null;
|
|
@@ -45,6 +46,7 @@ export interface WebGLContext {
|
|
|
45
46
|
readonly state: WebGLState;
|
|
46
47
|
readonly stats: WebGLStats;
|
|
47
48
|
readonly resources: WebGLResources;
|
|
49
|
+
readonly timer: WebGLTimer;
|
|
48
50
|
readonly maxTextureSize: number;
|
|
49
51
|
readonly max3dTextureSize: number;
|
|
50
52
|
readonly maxRenderbufferSize: number;
|
|
@@ -15,6 +15,7 @@ import { createResources } from './resources';
|
|
|
15
15
|
import { createRenderTarget } from './render-target';
|
|
16
16
|
import { BehaviorSubject } from 'rxjs';
|
|
17
17
|
import { now } from '../../mol-util/now';
|
|
18
|
+
import { createTimer } from './timer';
|
|
18
19
|
export function getGLContext(canvas, attribs) {
|
|
19
20
|
function get(id) {
|
|
20
21
|
try {
|
|
@@ -169,6 +170,7 @@ export function createContext(gl, props) {
|
|
|
169
170
|
var state = createState(gl);
|
|
170
171
|
var stats = createStats();
|
|
171
172
|
var resources = createResources(gl, state, stats, extensions);
|
|
173
|
+
var timer = createTimer(gl, extensions);
|
|
172
174
|
var parameters = {
|
|
173
175
|
maxTextureSize: gl.getParameter(gl.MAX_TEXTURE_SIZE),
|
|
174
176
|
max3dTextureSize: isWebGL2(gl) ? gl.getParameter(gl.MAX_3D_TEXTURE_SIZE) : 0,
|
|
@@ -233,6 +235,7 @@ export function createContext(gl, props) {
|
|
|
233
235
|
state: state,
|
|
234
236
|
stats: stats,
|
|
235
237
|
resources: resources,
|
|
238
|
+
timer: timer,
|
|
236
239
|
get maxTextureSize() { return parameters.maxTextureSize; },
|
|
237
240
|
get max3dTextureSize() { return parameters.max3dTextureSize; },
|
|
238
241
|
get maxRenderbufferSize() { return parameters.maxRenderbufferSize; },
|
|
@@ -1,9 +1,9 @@
|
|
|
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
|
*/
|
|
6
|
-
import { GLRenderingContext, COMPAT_instanced_arrays, COMPAT_standard_derivatives, COMPAT_vertex_array_object, COMPAT_element_index_uint, COMPAT_texture_float, COMPAT_texture_float_linear, COMPAT_blend_minmax, COMPAT_frag_depth, COMPAT_color_buffer_float, COMPAT_draw_buffers, COMPAT_shader_texture_lod, COMPAT_depth_texture, COMPAT_sRGB, COMPAT_texture_half_float, COMPAT_texture_half_float_linear, COMPAT_color_buffer_half_float } from './compat';
|
|
6
|
+
import { GLRenderingContext, COMPAT_instanced_arrays, COMPAT_standard_derivatives, COMPAT_vertex_array_object, COMPAT_element_index_uint, COMPAT_texture_float, COMPAT_texture_float_linear, COMPAT_blend_minmax, COMPAT_frag_depth, COMPAT_color_buffer_float, COMPAT_draw_buffers, COMPAT_shader_texture_lod, COMPAT_depth_texture, COMPAT_sRGB, COMPAT_texture_half_float, COMPAT_texture_half_float_linear, COMPAT_color_buffer_half_float, COMPAT_disjoint_timer_query } from './compat';
|
|
7
7
|
export declare type WebGLExtensions = {
|
|
8
8
|
instancedArrays: COMPAT_instanced_arrays;
|
|
9
9
|
elementIndexUint: COMPAT_element_index_uint;
|
|
@@ -21,5 +21,6 @@ export declare type WebGLExtensions = {
|
|
|
21
21
|
drawBuffers: COMPAT_draw_buffers | null;
|
|
22
22
|
shaderTextureLod: COMPAT_shader_texture_lod | null;
|
|
23
23
|
sRGB: COMPAT_sRGB | null;
|
|
24
|
+
disjointTimerQuery: COMPAT_disjoint_timer_query | null;
|
|
24
25
|
};
|
|
25
26
|
export declare function createExtensions(gl: GLRenderingContext): WebGLExtensions;
|
|
@@ -1,9 +1,9 @@
|
|
|
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
|
*/
|
|
6
|
-
import { getInstancedArrays, getStandardDerivatives, getElementIndexUint, getTextureFloat, getTextureFloatLinear, getBlendMinMax, getFragDepth, getColorBufferFloat, getDrawBuffers, getShaderTextureLod, getDepthTexture, getSRGB, getTextureHalfFloat, getTextureHalfFloatLinear, getColorBufferHalfFloat, getVertexArrayObject } from './compat';
|
|
6
|
+
import { getInstancedArrays, getStandardDerivatives, getElementIndexUint, getTextureFloat, getTextureFloatLinear, getBlendMinMax, getFragDepth, getColorBufferFloat, getDrawBuffers, getShaderTextureLod, getDepthTexture, getSRGB, getTextureHalfFloat, getTextureHalfFloatLinear, getColorBufferHalfFloat, getVertexArrayObject, getDisjointTimerQuery } from './compat';
|
|
7
7
|
import { isDebugMode } from '../../mol-util/debug';
|
|
8
8
|
export function createExtensions(gl) {
|
|
9
9
|
var instancedArrays = getInstancedArrays(gl);
|
|
@@ -76,6 +76,10 @@ export function createExtensions(gl) {
|
|
|
76
76
|
if (isDebugMode && sRGB === null) {
|
|
77
77
|
console.log('Could not find support for "sRGB"');
|
|
78
78
|
}
|
|
79
|
+
var disjointTimerQuery = getDisjointTimerQuery(gl);
|
|
80
|
+
if (isDebugMode && disjointTimerQuery === null) {
|
|
81
|
+
console.log('Could not find support for "disjoint_timer_query"');
|
|
82
|
+
}
|
|
79
83
|
return {
|
|
80
84
|
instancedArrays: instancedArrays,
|
|
81
85
|
standardDerivatives: standardDerivatives,
|
|
@@ -93,5 +97,6 @@ export function createExtensions(gl) {
|
|
|
93
97
|
drawBuffers: drawBuffers,
|
|
94
98
|
shaderTextureLod: shaderTextureLod,
|
|
95
99
|
sRGB: sRGB,
|
|
100
|
+
disjointTimerQuery: disjointTimerQuery,
|
|
96
101
|
};
|
|
97
102
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
|
+
*
|
|
4
|
+
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
|
+
*/
|
|
6
|
+
import { GLRenderingContext } from './compat';
|
|
7
|
+
import { WebGLExtensions } from './extensions';
|
|
8
|
+
export declare type TimerResult = {
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly timeElapsed: number;
|
|
11
|
+
readonly children: TimerResult[];
|
|
12
|
+
};
|
|
13
|
+
export declare type WebGLTimer = {
|
|
14
|
+
/** Check with GPU for finished timers. */
|
|
15
|
+
resolve: () => TimerResult[];
|
|
16
|
+
mark: (label: string) => void;
|
|
17
|
+
markEnd: (label: string) => void;
|
|
18
|
+
clear: () => void;
|
|
19
|
+
destroy: () => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function createTimer(gl: GLRenderingContext, extensions: WebGLExtensions): WebGLTimer;
|
|
22
|
+
export declare function printTimerResults(results: TimerResult[]): void[];
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
|
+
*
|
|
4
|
+
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
|
+
*/
|
|
6
|
+
function getQuery(extensions) {
|
|
7
|
+
return extensions.disjointTimerQuery ? extensions.disjointTimerQuery.createQuery() : null;
|
|
8
|
+
}
|
|
9
|
+
export function createTimer(gl, extensions) {
|
|
10
|
+
var dtq = extensions.disjointTimerQuery;
|
|
11
|
+
var queries = new Map();
|
|
12
|
+
var pending = new Map();
|
|
13
|
+
var stack = [];
|
|
14
|
+
var measures = [];
|
|
15
|
+
var current = null;
|
|
16
|
+
var clear = function () {
|
|
17
|
+
if (!dtq)
|
|
18
|
+
return;
|
|
19
|
+
queries.forEach(function (_, query) {
|
|
20
|
+
dtq.deleteQuery(query);
|
|
21
|
+
});
|
|
22
|
+
pending.clear();
|
|
23
|
+
measures = [];
|
|
24
|
+
current = null;
|
|
25
|
+
};
|
|
26
|
+
var add = function () {
|
|
27
|
+
if (!dtq)
|
|
28
|
+
return;
|
|
29
|
+
var query = getQuery(extensions);
|
|
30
|
+
if (!query)
|
|
31
|
+
return;
|
|
32
|
+
dtq.beginQuery(dtq.TIME_ELAPSED, query);
|
|
33
|
+
pending.forEach(function (measure, _) {
|
|
34
|
+
measure.queries.push(query);
|
|
35
|
+
});
|
|
36
|
+
queries.set(query, { refCount: pending.size });
|
|
37
|
+
current = query;
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
resolve: function () {
|
|
41
|
+
var results = [];
|
|
42
|
+
if (!dtq || !measures.length)
|
|
43
|
+
return results;
|
|
44
|
+
// console.log('resolve');
|
|
45
|
+
queries.forEach(function (result, query) {
|
|
46
|
+
if (result.timeElapsed !== undefined)
|
|
47
|
+
return;
|
|
48
|
+
var available = dtq.getQueryParameter(query, dtq.QUERY_RESULT_AVAILABLE);
|
|
49
|
+
var disjoint = gl.getParameter(dtq.GPU_DISJOINT);
|
|
50
|
+
if (available && !disjoint) {
|
|
51
|
+
var timeElapsed = dtq.getQueryParameter(query, dtq.QUERY_RESULT);
|
|
52
|
+
result.timeElapsed = timeElapsed;
|
|
53
|
+
// console.log('timeElapsed', result.timeElapsed);
|
|
54
|
+
}
|
|
55
|
+
if (available || disjoint) {
|
|
56
|
+
dtq.deleteQuery(query);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
var unresolved = [];
|
|
60
|
+
var _loop_1 = function (measure) {
|
|
61
|
+
if (measure.queries.every(function (q) { var _a; return ((_a = queries.get(q)) === null || _a === void 0 ? void 0 : _a.timeElapsed) !== undefined; })) {
|
|
62
|
+
var timeElapsed = 0;
|
|
63
|
+
for (var _a = 0, _b = measure.queries; _a < _b.length; _a++) {
|
|
64
|
+
var query = _b[_a];
|
|
65
|
+
var result = queries.get(query);
|
|
66
|
+
timeElapsed += result.timeElapsed;
|
|
67
|
+
result.refCount -= 1;
|
|
68
|
+
}
|
|
69
|
+
measure.timeElapsed = timeElapsed;
|
|
70
|
+
if (measure.root) {
|
|
71
|
+
var children = [];
|
|
72
|
+
var add_1 = function (measures, children) {
|
|
73
|
+
for (var _i = 0, measures_2 = measures; _i < measures_2.length; _i++) {
|
|
74
|
+
var measure_1 = measures_2[_i];
|
|
75
|
+
var result = {
|
|
76
|
+
label: measure_1.label,
|
|
77
|
+
timeElapsed: measure_1.timeElapsed,
|
|
78
|
+
children: []
|
|
79
|
+
};
|
|
80
|
+
children.push(result);
|
|
81
|
+
add_1(measure_1.children, result.children);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
add_1(measure.children, children);
|
|
85
|
+
results.push({ label: measure.label, timeElapsed: timeElapsed, children: children });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
unresolved.push(measure);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
for (var _i = 0, measures_1 = measures; _i < measures_1.length; _i++) {
|
|
93
|
+
var measure = measures_1[_i];
|
|
94
|
+
_loop_1(measure);
|
|
95
|
+
}
|
|
96
|
+
measures = unresolved;
|
|
97
|
+
queries.forEach(function (result, query) {
|
|
98
|
+
if (result.refCount === 0) {
|
|
99
|
+
queries.delete(query);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return results;
|
|
103
|
+
},
|
|
104
|
+
mark: function (label) {
|
|
105
|
+
if (!dtq)
|
|
106
|
+
return;
|
|
107
|
+
if (pending.has(label)) {
|
|
108
|
+
throw new Error("Timer mark for '".concat(label, "' already exists"));
|
|
109
|
+
}
|
|
110
|
+
if (current !== null) {
|
|
111
|
+
dtq.endQuery(dtq.TIME_ELAPSED);
|
|
112
|
+
}
|
|
113
|
+
var measure = { label: label, queries: [], children: [], root: current === null };
|
|
114
|
+
pending.set(label, measure);
|
|
115
|
+
if (stack.length) {
|
|
116
|
+
stack[stack.length - 1].children.push(measure);
|
|
117
|
+
}
|
|
118
|
+
stack.push(measure);
|
|
119
|
+
add();
|
|
120
|
+
},
|
|
121
|
+
markEnd: function (label) {
|
|
122
|
+
var _a;
|
|
123
|
+
if (!dtq)
|
|
124
|
+
return;
|
|
125
|
+
var measure = pending.get(label);
|
|
126
|
+
if (!measure) {
|
|
127
|
+
throw new Error("Timer mark for '".concat(label, "' does not exist"));
|
|
128
|
+
}
|
|
129
|
+
if (((_a = stack.pop()) === null || _a === void 0 ? void 0 : _a.label) !== label) {
|
|
130
|
+
throw new Error("Timer mark for '".concat(label, "' has pending nested mark"));
|
|
131
|
+
}
|
|
132
|
+
dtq.endQuery(dtq.TIME_ELAPSED);
|
|
133
|
+
pending.delete(label);
|
|
134
|
+
measures.push(measure);
|
|
135
|
+
if (pending.size > 0) {
|
|
136
|
+
add();
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
current = null;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
clear: clear,
|
|
143
|
+
destroy: function () {
|
|
144
|
+
clear();
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function formatTimerResult(result) {
|
|
149
|
+
var timeElapsed = result.timeElapsed / 1000 / 1000;
|
|
150
|
+
return "".concat(result.label, " ").concat(timeElapsed.toFixed(2), "ms");
|
|
151
|
+
}
|
|
152
|
+
export function printTimerResults(results) {
|
|
153
|
+
return results.map(function (r) {
|
|
154
|
+
var f = formatTimerResult(r);
|
|
155
|
+
if (r.children.length) {
|
|
156
|
+
console.groupCollapsed(f);
|
|
157
|
+
printTimerResults(r.children);
|
|
158
|
+
console.groupEnd();
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
console.log(f);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
@@ -75,37 +75,37 @@ export var ArrayEncoding;
|
|
|
75
75
|
ArrayEncoding.by = by;
|
|
76
76
|
function uint8(data) {
|
|
77
77
|
return {
|
|
78
|
-
encodings: [{ kind: 'ByteArray', type: 4 /* Uint8 */ }],
|
|
78
|
+
encodings: [{ kind: 'ByteArray', type: 4 /* Encoding.IntDataType.Uint8 */ }],
|
|
79
79
|
data: data
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
function int8(data) {
|
|
83
83
|
return {
|
|
84
|
-
encodings: [{ kind: 'ByteArray', type: 1 /* Int8 */ }],
|
|
84
|
+
encodings: [{ kind: 'ByteArray', type: 1 /* Encoding.IntDataType.Int8 */ }],
|
|
85
85
|
data: new Uint8Array(data.buffer, data.byteOffset)
|
|
86
86
|
};
|
|
87
87
|
}
|
|
88
88
|
var writers = (_a = {},
|
|
89
|
-
_a[2 /* Int16 */] = function (v, i, a) { v.setInt16(2 * i, a, true); },
|
|
90
|
-
_a[5 /* Uint16 */] = function (v, i, a) { v.setUint16(2 * i, a, true); },
|
|
91
|
-
_a[3 /* Int32 */] = function (v, i, a) { v.setInt32(4 * i, a, true); },
|
|
92
|
-
_a[6 /* Uint32 */] = function (v, i, a) { v.setUint32(4 * i, a, true); },
|
|
93
|
-
_a[32 /* Float32 */] = function (v, i, a) { v.setFloat32(4 * i, a, true); },
|
|
94
|
-
_a[33 /* Float64 */] = function (v, i, a) { v.setFloat64(8 * i, a, true); },
|
|
89
|
+
_a[2 /* Encoding.IntDataType.Int16 */] = function (v, i, a) { v.setInt16(2 * i, a, true); },
|
|
90
|
+
_a[5 /* Encoding.IntDataType.Uint16 */] = function (v, i, a) { v.setUint16(2 * i, a, true); },
|
|
91
|
+
_a[3 /* Encoding.IntDataType.Int32 */] = function (v, i, a) { v.setInt32(4 * i, a, true); },
|
|
92
|
+
_a[6 /* Encoding.IntDataType.Uint32 */] = function (v, i, a) { v.setUint32(4 * i, a, true); },
|
|
93
|
+
_a[32 /* Encoding.FloatDataType.Float32 */] = function (v, i, a) { v.setFloat32(4 * i, a, true); },
|
|
94
|
+
_a[33 /* Encoding.FloatDataType.Float64 */] = function (v, i, a) { v.setFloat64(8 * i, a, true); },
|
|
95
95
|
_a);
|
|
96
96
|
var byteSizes = (_b = {},
|
|
97
|
-
_b[2 /* Int16 */] = 2,
|
|
98
|
-
_b[5 /* Uint16 */] = 2,
|
|
99
|
-
_b[3 /* Int32 */] = 4,
|
|
100
|
-
_b[6 /* Uint32 */] = 4,
|
|
101
|
-
_b[32 /* Float32 */] = 4,
|
|
102
|
-
_b[33 /* Float64 */] = 8,
|
|
97
|
+
_b[2 /* Encoding.IntDataType.Int16 */] = 2,
|
|
98
|
+
_b[5 /* Encoding.IntDataType.Uint16 */] = 2,
|
|
99
|
+
_b[3 /* Encoding.IntDataType.Int32 */] = 4,
|
|
100
|
+
_b[6 /* Encoding.IntDataType.Uint32 */] = 4,
|
|
101
|
+
_b[32 /* Encoding.FloatDataType.Float32 */] = 4,
|
|
102
|
+
_b[33 /* Encoding.FloatDataType.Float64 */] = 8,
|
|
103
103
|
_b);
|
|
104
104
|
function byteArray(data) {
|
|
105
105
|
var type = Encoding.getDataType(data);
|
|
106
|
-
if (type === 1 /* Int8 */)
|
|
106
|
+
if (type === 1 /* Encoding.IntDataType.Int8 */)
|
|
107
107
|
return int8(data);
|
|
108
|
-
else if (type === 4 /* Uint8 */)
|
|
108
|
+
else if (type === 4 /* Encoding.IntDataType.Uint8 */)
|
|
109
109
|
return uint8(data);
|
|
110
110
|
var result = new Uint8Array(data.length * byteSizes[type]);
|
|
111
111
|
var w = writers[type];
|
|
@@ -170,7 +170,7 @@ export var ArrayEncoding;
|
|
|
170
170
|
var srcType = Encoding.getDataType(data);
|
|
171
171
|
if (srcType === void 0) {
|
|
172
172
|
data = new Int32Array(data);
|
|
173
|
-
srcType = 3 /* Int32 */;
|
|
173
|
+
srcType = 3 /* Encoding.IntDataType.Int32 */;
|
|
174
174
|
}
|
|
175
175
|
if (!data.length) {
|
|
176
176
|
return {
|
|
@@ -214,7 +214,7 @@ export var ArrayEncoding;
|
|
|
214
214
|
var srcType = Encoding.getDataType(data);
|
|
215
215
|
if (srcType === void 0) {
|
|
216
216
|
data = new Int32Array(data);
|
|
217
|
-
srcType = 3 /* Int32 */;
|
|
217
|
+
srcType = 3 /* Encoding.IntDataType.Int32 */;
|
|
218
218
|
}
|
|
219
219
|
if (!data.length) {
|
|
220
220
|
return {
|
|
@@ -21,14 +21,14 @@ function decodeStep(data, encoding) {
|
|
|
21
21
|
switch (encoding.kind) {
|
|
22
22
|
case 'ByteArray': {
|
|
23
23
|
switch (encoding.type) {
|
|
24
|
-
case 4 /* Uint8 */: return data;
|
|
25
|
-
case 1 /* Int8 */: return int8(data);
|
|
26
|
-
case 2 /* Int16 */: return int16(data);
|
|
27
|
-
case 5 /* Uint16 */: return uint16(data);
|
|
28
|
-
case 3 /* Int32 */: return int32(data);
|
|
29
|
-
case 6 /* Uint32 */: return uint32(data);
|
|
30
|
-
case 32 /* Float32 */: return float32(data);
|
|
31
|
-
case 33 /* Float64 */: return float64(data);
|
|
24
|
+
case 4 /* Encoding.IntDataType.Uint8 */: return data;
|
|
25
|
+
case 1 /* Encoding.IntDataType.Int8 */: return int8(data);
|
|
26
|
+
case 2 /* Encoding.IntDataType.Int16 */: return int16(data);
|
|
27
|
+
case 5 /* Encoding.IntDataType.Uint16 */: return uint16(data);
|
|
28
|
+
case 3 /* Encoding.IntDataType.Int32 */: return int32(data);
|
|
29
|
+
case 6 /* Encoding.IntDataType.Uint32 */: return uint32(data);
|
|
30
|
+
case 32 /* Encoding.FloatDataType.Float32 */: return float32(data);
|
|
31
|
+
case 33 /* Encoding.FloatDataType.Float64 */: return float64(data);
|
|
32
32
|
default: assertUnreachable(encoding.type);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -42,19 +42,19 @@ function decodeStep(data, encoding) {
|
|
|
42
42
|
}
|
|
43
43
|
function getIntArray(type, size) {
|
|
44
44
|
switch (type) {
|
|
45
|
-
case 1 /* Int8 */: return new Int8Array(size);
|
|
46
|
-
case 2 /* Int16 */: return new Int16Array(size);
|
|
47
|
-
case 3 /* Int32 */: return new Int32Array(size);
|
|
48
|
-
case 4 /* Uint8 */: return new Uint8Array(size);
|
|
49
|
-
case 5 /* Uint16 */: return new Uint16Array(size);
|
|
50
|
-
case 6 /* Uint32 */: return new Uint32Array(size);
|
|
45
|
+
case 1 /* Encoding.IntDataType.Int8 */: return new Int8Array(size);
|
|
46
|
+
case 2 /* Encoding.IntDataType.Int16 */: return new Int16Array(size);
|
|
47
|
+
case 3 /* Encoding.IntDataType.Int32 */: return new Int32Array(size);
|
|
48
|
+
case 4 /* Encoding.IntDataType.Uint8 */: return new Uint8Array(size);
|
|
49
|
+
case 5 /* Encoding.IntDataType.Uint16 */: return new Uint16Array(size);
|
|
50
|
+
case 6 /* Encoding.IntDataType.Uint32 */: return new Uint32Array(size);
|
|
51
51
|
default: assertUnreachable(type);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
function getFloatArray(type, size) {
|
|
55
55
|
switch (type) {
|
|
56
|
-
case 32 /* Float32 */: return new Float32Array(size);
|
|
57
|
-
case 33 /* Float64 */: return new Float64Array(size);
|
|
56
|
+
case 32 /* Encoding.FloatDataType.Float32 */: return new Float32Array(size);
|
|
57
|
+
case 33 /* Encoding.FloatDataType.Float64 */: return new Float64Array(size);
|
|
58
58
|
default: assertUnreachable(type);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -10,23 +10,23 @@ export var Encoding;
|
|
|
10
10
|
function getDataType(data) {
|
|
11
11
|
var srcType;
|
|
12
12
|
if (data instanceof Int8Array)
|
|
13
|
-
srcType = 1 /* Int8 */;
|
|
13
|
+
srcType = 1 /* Encoding.IntDataType.Int8 */;
|
|
14
14
|
else if (data instanceof Int16Array)
|
|
15
|
-
srcType = 2 /* Int16 */;
|
|
15
|
+
srcType = 2 /* Encoding.IntDataType.Int16 */;
|
|
16
16
|
else if (data instanceof Int32Array)
|
|
17
|
-
srcType = 3 /* Int32 */;
|
|
17
|
+
srcType = 3 /* Encoding.IntDataType.Int32 */;
|
|
18
18
|
else if (data instanceof Uint8Array)
|
|
19
|
-
srcType = 4 /* Uint8 */;
|
|
19
|
+
srcType = 4 /* Encoding.IntDataType.Uint8 */;
|
|
20
20
|
else if (data instanceof Uint16Array)
|
|
21
|
-
srcType = 5 /* Uint16 */;
|
|
21
|
+
srcType = 5 /* Encoding.IntDataType.Uint16 */;
|
|
22
22
|
else if (data instanceof Uint32Array)
|
|
23
|
-
srcType = 6 /* Uint32 */;
|
|
23
|
+
srcType = 6 /* Encoding.IntDataType.Uint32 */;
|
|
24
24
|
else if (data instanceof Float32Array)
|
|
25
|
-
srcType = 32 /* Float32 */;
|
|
25
|
+
srcType = 32 /* Encoding.FloatDataType.Float32 */;
|
|
26
26
|
else if (data instanceof Float64Array)
|
|
27
|
-
srcType = 33 /* Float64 */;
|
|
27
|
+
srcType = 33 /* Encoding.FloatDataType.Float64 */;
|
|
28
28
|
else
|
|
29
|
-
srcType = 3 /* Int32 */; // throw new Error('Unsupported integer data type.');
|
|
29
|
+
srcType = 3 /* Encoding.IntDataType.Int32 */; // throw new Error('Unsupported integer data type.');
|
|
30
30
|
return srcType;
|
|
31
31
|
}
|
|
32
32
|
Encoding.getDataType = getDataType;
|
|
@@ -13,10 +13,10 @@ export function Field(column) {
|
|
|
13
13
|
var isNumeric = ColumnHelpers.isTypedArray(data);
|
|
14
14
|
var str = isNumeric
|
|
15
15
|
? mask
|
|
16
|
-
? function (row) { return mask[row] === 0 /* Present */ ? '' + data[row] : ''; }
|
|
16
|
+
? function (row) { return mask[row] === 0 /* Column.ValueKind.Present */ ? '' + data[row] : ''; }
|
|
17
17
|
: function (row) { return '' + data[row]; }
|
|
18
18
|
: mask
|
|
19
|
-
? function (row) { return mask[row] === 0 /* Present */ ? data[row] : ''; }
|
|
19
|
+
? function (row) { return mask[row] === 0 /* Column.ValueKind.Present */ ? data[row] : ''; }
|
|
20
20
|
: function (row) { return data[row]; };
|
|
21
21
|
var int = isNumeric
|
|
22
22
|
? function (row) { return data[row]; }
|
|
@@ -26,7 +26,7 @@ export function Field(column) {
|
|
|
26
26
|
: function (row) { var v = data[row]; return fastParseFloat(v, 0, v.length); };
|
|
27
27
|
var valueKind = mask
|
|
28
28
|
? function (row) { return mask[row]; }
|
|
29
|
-
: function (row) { return 0 /* Present */; };
|
|
29
|
+
: function (row) { return 0 /* Column.ValueKind.Present */; };
|
|
30
30
|
var rowCount = data.length;
|
|
31
31
|
return {
|
|
32
32
|
__array: data,
|
|
@@ -71,15 +71,15 @@ export var CifField;
|
|
|
71
71
|
var valueKind = function (row) {
|
|
72
72
|
var v = values[row], l = v.length;
|
|
73
73
|
if (l > 1)
|
|
74
|
-
return 0 /* Present */;
|
|
74
|
+
return 0 /* Column.ValueKind.Present */;
|
|
75
75
|
if (l === 0)
|
|
76
|
-
return 1 /* NotPresent */;
|
|
76
|
+
return 1 /* Column.ValueKind.NotPresent */;
|
|
77
77
|
var c = v.charCodeAt(0);
|
|
78
78
|
if (c === 46 /* . */)
|
|
79
|
-
return 1 /* NotPresent */;
|
|
79
|
+
return 1 /* Column.ValueKind.NotPresent */;
|
|
80
80
|
if (c === 63 /* ? */)
|
|
81
|
-
return 2 /* Unknown */;
|
|
82
|
-
return 0 /* Present */;
|
|
81
|
+
return 2 /* Column.ValueKind.Unknown */;
|
|
82
|
+
return 0 /* Column.ValueKind.Present */;
|
|
83
83
|
};
|
|
84
84
|
return {
|
|
85
85
|
__array: void 0,
|
|
@@ -101,7 +101,7 @@ export var CifField;
|
|
|
101
101
|
var rowCount = values.length;
|
|
102
102
|
var str = function (row) { return '' + values[row]; };
|
|
103
103
|
var float = function (row) { return values[row]; };
|
|
104
|
-
var valueKind = function (row) { return 0 /* Present */; };
|
|
104
|
+
var valueKind = function (row) { return 0 /* Column.ValueKind.Present */; };
|
|
105
105
|
var toFloatArray = function (params) {
|
|
106
106
|
if (!params || params.array && values instanceof params.array) {
|
|
107
107
|
return values;
|
|
@@ -143,15 +143,15 @@ export var CifField;
|
|
|
143
143
|
var valueKind = function (row) {
|
|
144
144
|
var s = indices[2 * row], l = indices[2 * row + 1] - s;
|
|
145
145
|
if (l > 1)
|
|
146
|
-
return 0 /* Present */;
|
|
146
|
+
return 0 /* Column.ValueKind.Present */;
|
|
147
147
|
if (l === 0)
|
|
148
|
-
return 1 /* NotPresent */;
|
|
148
|
+
return 1 /* Column.ValueKind.NotPresent */;
|
|
149
149
|
var v = data.charCodeAt(s);
|
|
150
150
|
if (v === 46 /* . */)
|
|
151
|
-
return 1 /* NotPresent */;
|
|
151
|
+
return 1 /* Column.ValueKind.NotPresent */;
|
|
152
152
|
if (v === 63 /* ? */)
|
|
153
|
-
return 2 /* Unknown */;
|
|
154
|
-
return 0 /* Present */;
|
|
153
|
+
return 2 /* Column.ValueKind.Unknown */;
|
|
154
|
+
return 0 /* Column.ValueKind.Present */;
|
|
155
155
|
};
|
|
156
156
|
return {
|
|
157
157
|
__array: void 0,
|
|
@@ -273,14 +273,14 @@ export function getCifFieldType(field) {
|
|
|
273
273
|
var floatCount = 0, hasStringOrScientific = false, undefinedCount = 0;
|
|
274
274
|
for (var i = 0, _i = field.rowCount; i < _i; i++) {
|
|
275
275
|
var k = field.valueKind(i);
|
|
276
|
-
if (k !== 0 /* Present */) {
|
|
276
|
+
if (k !== 0 /* Column.ValueKind.Present */) {
|
|
277
277
|
undefinedCount++;
|
|
278
278
|
continue;
|
|
279
279
|
}
|
|
280
280
|
var type = getNumberType(field.str(i));
|
|
281
|
-
if (type === 0 /* Int */)
|
|
281
|
+
if (type === 0 /* NumberType.Int */)
|
|
282
282
|
continue;
|
|
283
|
-
else if (type === 1 /* Float */)
|
|
283
|
+
else if (type === 1 /* NumberType.Float */)
|
|
284
284
|
floatCount++;
|
|
285
285
|
else {
|
|
286
286
|
hasStringOrScientific = true;
|
|
@@ -93,7 +93,7 @@ function createListColumn(schema, category, key) {
|
|
|
93
93
|
isDefined: !!f,
|
|
94
94
|
rowCount: category.rowCount,
|
|
95
95
|
value: value,
|
|
96
|
-
valueKind: f ? f.valueKind : function () { return 1 /* NotPresent */; },
|
|
96
|
+
valueKind: f ? f.valueKind : function () { return 1 /* Column.ValueKind.NotPresent */; },
|
|
97
97
|
areValuesEqual: function (rowA, rowB) { return arrayEqual(value(rowA), value(rowB)); },
|
|
98
98
|
toArray: toArray
|
|
99
99
|
};
|