molstar 2.3.2 → 2.3.7
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/CHANGELOG.md +191 -160
- package/LICENSE +20 -20
- package/README.md +176 -176
- package/build/viewer/embedded.html +43 -43
- package/build/viewer/index.html +94 -88
- package/build/viewer/molstar.js +1 -1
- package/lib/apps/docking-viewer/index.html +36 -36
- package/lib/apps/viewer/embedded.html +43 -43
- package/lib/apps/viewer/index.d.ts +296 -5
- package/lib/apps/viewer/index.html +94 -88
- package/lib/apps/viewer/index.js +96 -6
- package/lib/apps/viewer/index.js.map +1 -1
- package/lib/cli/chem-comp-dict/util.d.ts +4 -4
- package/lib/commonjs/apps/viewer/index.d.ts +295 -4
- package/lib/commonjs/apps/viewer/index.js +96 -6
- package/lib/commonjs/apps/viewer/index.js.map +1 -1
- package/lib/commonjs/cli/chem-comp-dict/util.d.ts +4 -4
- package/lib/commonjs/cli/cif2bcif/index.js +0 -0
- package/lib/commonjs/cli/cifschema/index.js +0 -0
- package/lib/commonjs/extensions/cellpack/color/generate.d.ts +1 -1
- package/lib/commonjs/extensions/cellpack/color/generate.js +1 -1
- package/lib/commonjs/extensions/cellpack/color/provided.d.ts +1 -1
- package/lib/commonjs/extensions/cellpack/color/provided.js +1 -1
- package/lib/commonjs/extensions/cellpack/curve.d.ts +2 -2
- package/lib/commonjs/extensions/cellpack/curve.js +2 -2
- package/lib/commonjs/extensions/cellpack/data.d.ts +32 -0
- package/lib/commonjs/extensions/cellpack/index.d.ts +1 -1
- package/lib/commonjs/extensions/cellpack/index.js +1 -1
- package/lib/commonjs/extensions/cellpack/model.d.ts +5 -3
- package/lib/commonjs/extensions/cellpack/model.js +193 -55
- package/lib/commonjs/extensions/cellpack/model.js.map +1 -1
- package/lib/commonjs/extensions/cellpack/preset.d.ts +2 -1
- package/lib/commonjs/extensions/cellpack/preset.js +12 -15
- package/lib/commonjs/extensions/cellpack/preset.js.map +1 -1
- package/lib/commonjs/extensions/cellpack/property.d.ts +1 -1
- package/lib/commonjs/extensions/cellpack/property.js +1 -1
- package/lib/commonjs/extensions/cellpack/representation.d.ts +53 -0
- package/lib/commonjs/extensions/cellpack/representation.js +47 -0
- package/lib/commonjs/extensions/cellpack/representation.js.map +1 -0
- package/lib/commonjs/extensions/cellpack/state.d.ts +16 -5
- package/lib/commonjs/extensions/cellpack/state.js +233 -26
- package/lib/commonjs/extensions/cellpack/state.js.map +1 -1
- package/lib/commonjs/extensions/cellpack/util.d.ts +3 -1
- package/lib/commonjs/extensions/cellpack/util.js +31 -3
- package/lib/commonjs/extensions/cellpack/util.js.map +1 -1
- package/lib/commonjs/extensions/geo-export/mesh-exporter.d.ts +1 -1
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +2 -2
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.d.ts +12 -12
- package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +15 -0
- package/lib/commonjs/extensions/rcsb/validation-report/representation.js +2 -2
- package/lib/commonjs/mol-canvas3d/camera/util.d.ts +4 -3
- package/lib/commonjs/mol-canvas3d/camera/util.js +15 -16
- package/lib/commonjs/mol-canvas3d/camera/util.js.map +1 -1
- package/lib/commonjs/mol-canvas3d/camera.d.ts +11 -3
- package/lib/commonjs/mol-canvas3d/camera.js +21 -1
- package/lib/commonjs/mol-canvas3d/camera.js.map +1 -1
- package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +14 -4
- package/lib/commonjs/mol-canvas3d/canvas3d.js +8 -2
- package/lib/commonjs/mol-canvas3d/canvas3d.js.map +1 -1
- package/lib/commonjs/mol-canvas3d/helper/interaction-events.d.ts +13 -4
- package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +43 -9
- package/lib/commonjs/mol-canvas3d/helper/interaction-events.js.map +1 -1
- package/lib/commonjs/mol-canvas3d/passes/draw.js +1 -0
- package/lib/commonjs/mol-canvas3d/passes/draw.js.map +1 -1
- package/lib/commonjs/mol-canvas3d/passes/pick.d.ts +5 -2
- package/lib/commonjs/mol-canvas3d/passes/pick.js +17 -3
- package/lib/commonjs/mol-canvas3d/passes/pick.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +2 -2
- package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +10 -1
- package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/image/image.js +4 -1
- package/lib/commonjs/mol-geo/geometry/image/image.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/lines/lines.js +1 -1
- package/lib/commonjs/mol-geo/geometry/lines/lines.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/mesh/builder/sheet.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/mesh/builder/sheet.js +19 -11
- package/lib/commonjs/mol-geo/geometry/mesh/builder/sheet.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/mesh/builder/tube.d.ts +2 -2
- package/lib/commonjs/mol-geo/geometry/mesh/builder/tube.js +57 -15
- package/lib/commonjs/mol-geo/geometry/mesh/builder/tube.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/points/points.js +1 -1
- package/lib/commonjs/mol-geo/geometry/points/points.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -0
- package/lib/commonjs/mol-geo/geometry/text/text.js +1 -1
- package/lib/commonjs/mol-geo/geometry/text/text.js.map +1 -1
- package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +6 -1
- package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
- package/lib/commonjs/mol-gl/_spec/cylinders.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/cylinders.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/cylinders.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/direct-volume.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/direct-volume.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/direct-volume.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/gl.d.ts +9 -0
- package/lib/commonjs/mol-gl/_spec/gl.js +33 -0
- package/lib/commonjs/mol-gl/_spec/gl.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/gl.shim.js +1 -1
- package/lib/commonjs/mol-gl/_spec/gl.shim.js.map +1 -1
- package/lib/commonjs/mol-gl/_spec/image.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/image.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/image.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/lines.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/lines.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/lines.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/mesh.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/mesh.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/mesh.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/points.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/points.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/points.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/renderer.spec.d.ts +7 -1
- package/lib/commonjs/mol-gl/_spec/renderer.spec.js +6 -44
- package/lib/commonjs/mol-gl/_spec/renderer.spec.js.map +1 -1
- package/lib/commonjs/mol-gl/_spec/spheres.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/spheres.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/spheres.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/text.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/text.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/text.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/_spec/texture-mesh.spec.d.ts +6 -0
- package/lib/commonjs/mol-gl/_spec/texture-mesh.spec.js +42 -0
- package/lib/commonjs/mol-gl/_spec/texture-mesh.spec.js.map +1 -0
- package/lib/commonjs/mol-gl/renderer.d.ts +3 -2
- package/lib/commonjs/mol-gl/renderer.js +3 -0
- package/lib/commonjs/mol-gl/renderer.js.map +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/assign-material-color.glsl.js.map +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/direct-volume.frag.js.map +1 -1
- package/lib/commonjs/mol-gl/shader/lines.vert.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/lines.vert.js +1 -1
- package/lib/commonjs/mol-gl/shader/lines.vert.js.map +1 -1
- package/lib/commonjs/mol-gl/shader/points.vert.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/points.vert.js +1 -1
- package/lib/commonjs/mol-gl/shader/points.vert.js.map +1 -1
- package/lib/commonjs/mol-gl/webgl/context.d.ts +1 -1
- package/lib/commonjs/mol-gl/webgl/context.js +4 -2
- package/lib/commonjs/mol-gl/webgl/context.js.map +1 -1
- package/lib/commonjs/mol-io/reader/cif/schema/bird.d.ts +5 -5
- package/lib/commonjs/mol-io/reader/cif/schema/ccd.d.ts +2 -2
- package/lib/commonjs/mol-io/reader/cif/schema/density-server.d.ts +3 -3
- package/lib/commonjs/mol-io/reader/cif/schema/mmcif-extras.d.ts +3 -3
- package/lib/commonjs/mol-io/reader/cif/schema/mmcif.d.ts +22 -22
- package/lib/commonjs/mol-io/reader/ply/schema.d.ts +1 -1
- package/lib/commonjs/mol-math/geometry/primitives/axes3d.d.ts +2 -1
- package/lib/commonjs/mol-math/geometry/primitives/axes3d.js +9 -2
- package/lib/commonjs/mol-math/geometry/primitives/axes3d.js.map +1 -1
- package/lib/commonjs/mol-math/linear-algebra/3d/vec3.d.ts +3 -1
- package/lib/commonjs/mol-math/linear-algebra/3d/vec3.js +11 -3
- package/lib/commonjs/mol-math/linear-algebra/3d/vec3.js.map +1 -1
- package/lib/commonjs/mol-math/misc.d.ts +3 -1
- package/lib/commonjs/mol-math/misc.js +24 -2
- package/lib/commonjs/mol-math/misc.js.map +1 -1
- package/lib/commonjs/mol-model/loci.d.ts +32 -32
- package/lib/commonjs/mol-model/loci.js +4 -3
- package/lib/commonjs/mol-model/loci.js.map +1 -1
- package/lib/commonjs/mol-model/shape/shape.d.ts +1 -1
- package/lib/commonjs/mol-model/structure/structure/element/loci.d.ts +1 -0
- package/lib/commonjs/mol-model/structure/structure/element/loci.js +14 -0
- package/lib/commonjs/mol-model/structure/structure/element/loci.js.map +1 -1
- package/lib/commonjs/mol-model/structure/structure/properties.d.ts +3 -3
- package/lib/commonjs/mol-model/structure/structure/structure.js +2 -1
- package/lib/commonjs/mol-model/structure/structure/structure.js.map +1 -1
- package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -1
- package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js.map +1 -1
- package/lib/commonjs/mol-model/structure/structure/unit/bonds.d.ts +2 -1
- package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +6 -1
- package/lib/commonjs/mol-model/structure/structure/unit/bonds.js.map +1 -1
- package/lib/commonjs/mol-model-formats/shape/ply.d.ts +8 -8
- package/lib/commonjs/mol-model-formats/structure/basic/schema.d.ts +6 -6
- package/lib/commonjs/mol-model-formats/structure/common/component.d.ts +8 -8
- package/lib/commonjs/mol-model-formats/structure/common/entity.d.ts +1 -1
- package/lib/commonjs/mol-model-formats/structure/pdb/entity.js +29 -3
- package/lib/commonjs/mol-model-formats/structure/pdb/entity.js.map +1 -1
- package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +3 -0
- package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +3 -0
- package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +9 -0
- package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +12 -0
- package/lib/commonjs/mol-model-props/sequence/themes/best-database-mapping.d.ts +12 -12
- package/lib/commonjs/mol-plugin/behavior/behavior.d.ts +1 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.d.ts +4 -2
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +22 -8
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js.map +1 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +1 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js.map +1 -1
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +10 -10
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +3 -2
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +5 -5
- package/lib/commonjs/mol-plugin/commands.d.ts +6 -2
- package/lib/commonjs/mol-plugin/config.d.ts +1 -0
- package/lib/commonjs/mol-plugin/config.js +11 -3
- package/lib/commonjs/mol-plugin/config.js.map +1 -1
- package/lib/commonjs/mol-plugin/context.js +6 -4
- package/lib/commonjs/mol-plugin/context.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/animation/built-in/model-index.d.ts +6 -6
- package/lib/commonjs/mol-plugin-state/builder/data.d.ts +3 -3
- package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +17 -17
- package/lib/commonjs/mol-plugin-state/builder/structure/hierarchy.d.ts +9 -9
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +10 -10
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js +20 -16
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/formats/shape.d.ts +2 -2
- package/lib/commonjs/mol-plugin-state/formats/structure.d.ts +6 -6
- package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +26 -26
- package/lib/commonjs/mol-plugin-state/helpers/root-structure.d.ts +7 -7
- package/lib/commonjs/mol-plugin-state/helpers/structure-component.d.ts +1 -1
- package/lib/commonjs/mol-plugin-state/manager/interactivity.d.ts +2 -2
- package/lib/commonjs/mol-plugin-state/manager/interactivity.js +12 -11
- package/lib/commonjs/mol-plugin-state/manager/interactivity.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/manager/structure/measurement.d.ts +7 -2
- package/lib/commonjs/mol-plugin-state/manager/structure/measurement.js +111 -13
- package/lib/commonjs/mol-plugin-state/manager/structure/measurement.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/manager/structure/selection.d.ts +3 -3
- package/lib/commonjs/mol-plugin-state/manager/structure/selection.js +4 -10
- package/lib/commonjs/mol-plugin-state/manager/structure/selection.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/transforms/data.d.ts +6 -6
- package/lib/commonjs/mol-plugin-state/transforms/helpers.d.ts +3 -1
- package/lib/commonjs/mol-plugin-state/transforms/helpers.js +7 -4
- package/lib/commonjs/mol-plugin-state/transforms/helpers.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/transforms/model.d.ts +9 -9
- package/lib/commonjs/mol-plugin-state/transforms/model.js.map +1 -1
- package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +18 -3
- package/lib/commonjs/mol-plugin-state/transforms/representation.js +54 -2
- package/lib/commonjs/mol-plugin-state/transforms/representation.js.map +1 -1
- package/lib/commonjs/mol-plugin-ui/sequence.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/sequence.js +16 -2
- package/lib/commonjs/mol-plugin-ui/sequence.js.map +1 -1
- package/lib/commonjs/mol-plugin-ui/structure/measurements.d.ts +11 -2
- package/lib/commonjs/mol-plugin-ui/structure/measurements.js +49 -6
- package/lib/commonjs/mol-plugin-ui/structure/measurements.js.map +1 -1
- package/lib/commonjs/mol-plugin-ui/structure/selection.d.ts +1 -1
- package/lib/commonjs/mol-repr/representation.d.ts +1 -0
- package/lib/commonjs/mol-repr/representation.js +10 -4
- package/lib/commonjs/mol-repr/representation.js.map +1 -1
- package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +6 -5
- package/lib/commonjs/mol-repr/shape/loci/orientation.js +37 -51
- package/lib/commonjs/mol-repr/shape/loci/orientation.js.map +1 -1
- package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +27 -0
- package/lib/commonjs/mol-repr/shape/loci/plane.js +61 -0
- package/lib/commonjs/mol-repr/shape/loci/plane.js.map +1 -0
- package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/params.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/registry.d.ts +34 -15
- package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +18 -6
- package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +9 -0
- package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +18 -6
- package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +6 -6
- package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/line.d.ts +40 -19
- package/lib/commonjs/mol-repr/structure/representation/line.js +10 -4
- package/lib/commonjs/mol-repr/structure/representation/line.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +6 -6
- package/lib/commonjs/mol-repr/structure/units-visual.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +12 -4
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +20 -9
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.d.ts +4 -2
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +13 -8
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +12 -4
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +21 -7
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.d.ts +4 -2
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +14 -6
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/visual/element-cross.d.ts +26 -0
- package/lib/commonjs/mol-repr/structure/visual/element-cross.js +77 -0
- package/lib/commonjs/mol-repr/structure/visual/element-cross.js.map +1 -0
- package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +8 -8
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +3 -0
- package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +22 -15
- package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/util/bond.d.ts +30 -16
- package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -1
- package/lib/commonjs/mol-repr/structure/visual/util/bond.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/util/color.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/util/element.d.ts +4 -4
- package/lib/commonjs/mol-repr/structure/visual/util/link.d.ts +14 -4
- package/lib/commonjs/mol-repr/structure/visual/util/link.js +90 -37
- package/lib/commonjs/mol-repr/structure/visual/util/link.js.map +1 -1
- package/lib/commonjs/mol-repr/structure/visual/util/polymer.d.ts +2 -2
- package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +5 -5
- package/lib/commonjs/mol-repr/volume/isosurface.d.ts +3 -3
- package/lib/commonjs/mol-repr/volume/registry.d.ts +3 -3
- package/lib/commonjs/mol-repr/volume/slice.d.ts +3 -3
- package/lib/commonjs/mol-script/language/builder.d.ts +0 -1
- package/lib/commonjs/mol-theme/color/atom-id.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/chain-id.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/element-index.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/element-symbol.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/entity-id.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/entity-source.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/illustrative.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/model-index.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/operator-hkl.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/operator-name.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/polymer-id.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/polymer-index.d.ts +12 -12
- package/lib/commonjs/mol-theme/color/unit-index.d.ts +12 -12
- package/lib/commonjs/mol-theme/color.d.ts +78 -78
- package/lib/commonjs/mol-theme/label.d.ts +1 -0
- package/lib/commonjs/mol-theme/label.js +11 -1
- package/lib/commonjs/mol-theme/label.js.map +1 -1
- package/lib/commonjs/mol-util/color/lists.d.ts +3 -3
- package/lib/commonjs/mol-util/color/palette.d.ts +13 -13
- package/lib/commonjs/mol-util/color/scale.d.ts +1 -1
- package/lib/commonjs/servers/model/config.js +0 -1
- package/lib/commonjs/servers/model/config.js.map +1 -1
- package/lib/commonjs/servers/model/preprocess.js +0 -0
- package/lib/commonjs/servers/model/query.js +0 -0
- package/lib/commonjs/servers/model/server.js +0 -0
- package/lib/commonjs/servers/volume/config.js +0 -1
- package/lib/commonjs/servers/volume/config.js.map +1 -1
- package/lib/commonjs/servers/volume/pack.js +0 -0
- package/lib/commonjs/servers/volume/query.js +0 -0
- package/lib/commonjs/servers/volume/server.js +0 -0
- package/lib/examples/alpha-orbitals/index.html +60 -60
- package/lib/examples/basic-wrapper/index.html +136 -136
- package/lib/examples/lighting/index.html +86 -86
- package/lib/examples/proteopedia-wrapper/index.html +235 -235
- package/lib/extensions/cellpack/color/generate.d.ts +1 -1
- package/lib/extensions/cellpack/color/generate.js +1 -1
- package/lib/extensions/cellpack/color/provided.d.ts +1 -1
- package/lib/extensions/cellpack/color/provided.js +1 -1
- package/lib/extensions/cellpack/curve.d.ts +2 -2
- package/lib/extensions/cellpack/curve.js +2 -2
- package/lib/extensions/cellpack/data.d.ts +32 -0
- package/lib/extensions/cellpack/index.d.ts +1 -1
- package/lib/extensions/cellpack/index.js +1 -1
- package/lib/extensions/cellpack/model.d.ts +5 -3
- package/lib/extensions/cellpack/model.js +194 -56
- package/lib/extensions/cellpack/model.js.map +1 -1
- package/lib/extensions/cellpack/preset.d.ts +2 -1
- package/lib/extensions/cellpack/preset.js +12 -15
- package/lib/extensions/cellpack/preset.js.map +1 -1
- package/lib/extensions/cellpack/property.d.ts +1 -1
- package/lib/extensions/cellpack/property.js +1 -1
- package/lib/extensions/cellpack/representation.d.ts +53 -0
- package/lib/extensions/cellpack/representation.js +43 -0
- package/lib/extensions/cellpack/representation.js.map +1 -0
- package/lib/extensions/cellpack/state.d.ts +16 -5
- package/lib/extensions/cellpack/state.js +231 -24
- package/lib/extensions/cellpack/state.js.map +1 -1
- package/lib/extensions/cellpack/util.d.ts +3 -1
- package/lib/extensions/cellpack/util.js +29 -2
- package/lib/extensions/cellpack/util.js.map +1 -1
- package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +4 -4
- package/lib/extensions/rcsb/assembly-symmetry/color.d.ts +12 -12
- package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +2 -2
- package/lib/extensions/rcsb/validation-report/representation.d.ts +15 -0
- package/lib/extensions/rcsb/validation-report/representation.js +2 -2
- package/lib/mol-canvas3d/camera/util.d.ts +4 -3
- package/lib/mol-canvas3d/camera/util.js +15 -16
- package/lib/mol-canvas3d/camera/util.js.map +1 -1
- package/lib/mol-canvas3d/camera.d.ts +11 -3
- package/lib/mol-canvas3d/camera.js +22 -2
- package/lib/mol-canvas3d/camera.js.map +1 -1
- package/lib/mol-canvas3d/canvas3d.d.ts +14 -4
- package/lib/mol-canvas3d/canvas3d.js +9 -3
- package/lib/mol-canvas3d/canvas3d.js.map +1 -1
- package/lib/mol-canvas3d/helper/camera-helper.d.ts +2 -2
- package/lib/mol-canvas3d/helper/interaction-events.d.ts +13 -4
- package/lib/mol-canvas3d/helper/interaction-events.js +43 -9
- package/lib/mol-canvas3d/helper/interaction-events.js.map +1 -1
- package/lib/mol-canvas3d/passes/draw.js +1 -0
- package/lib/mol-canvas3d/passes/draw.js.map +1 -1
- package/lib/mol-canvas3d/passes/image.d.ts +2 -2
- package/lib/mol-canvas3d/passes/pick.d.ts +5 -2
- package/lib/mol-canvas3d/passes/pick.js +17 -3
- package/lib/mol-canvas3d/passes/pick.js.map +1 -1
- package/lib/mol-data/int/impl/ordered-set.d.ts +3 -3
- package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +2 -2
- package/lib/mol-geo/geometry/direct-volume/direct-volume.js +12 -3
- package/lib/mol-geo/geometry/direct-volume/direct-volume.js.map +1 -1
- package/lib/mol-geo/geometry/image/image.d.ts +2 -2
- package/lib/mol-geo/geometry/image/image.js +5 -2
- package/lib/mol-geo/geometry/image/image.js.map +1 -1
- package/lib/mol-geo/geometry/lines/lines.js +1 -1
- package/lib/mol-geo/geometry/lines/lines.js.map +1 -1
- package/lib/mol-geo/geometry/mesh/builder/sheet.d.ts +1 -1
- package/lib/mol-geo/geometry/mesh/builder/sheet.js +19 -11
- package/lib/mol-geo/geometry/mesh/builder/sheet.js.map +1 -1
- package/lib/mol-geo/geometry/mesh/builder/tube.d.ts +2 -2
- package/lib/mol-geo/geometry/mesh/builder/tube.js +57 -15
- package/lib/mol-geo/geometry/mesh/builder/tube.js.map +1 -1
- package/lib/mol-geo/geometry/points/points.js +1 -1
- package/lib/mol-geo/geometry/points/points.js.map +1 -1
- package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -0
- package/lib/mol-geo/geometry/text/text.js +1 -1
- package/lib/mol-geo/geometry/text/text.js.map +1 -1
- package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +6 -1
- package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js.map +1 -1
- package/lib/mol-gl/_spec/cylinders.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/cylinders.spec.js +38 -0
- package/lib/mol-gl/_spec/cylinders.spec.js.map +1 -0
- package/lib/mol-gl/_spec/direct-volume.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/direct-volume.spec.js +38 -0
- package/lib/mol-gl/_spec/direct-volume.spec.js.map +1 -0
- package/lib/mol-gl/_spec/gl.d.ts +9 -0
- package/lib/mol-gl/_spec/gl.js +28 -0
- package/lib/mol-gl/_spec/gl.js.map +1 -0
- package/lib/mol-gl/_spec/gl.shim.js +1 -1
- package/lib/mol-gl/_spec/gl.shim.js.map +1 -1
- package/lib/mol-gl/_spec/image.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/image.spec.js +38 -0
- package/lib/mol-gl/_spec/image.spec.js.map +1 -0
- package/lib/mol-gl/_spec/lines.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/lines.spec.js +38 -0
- package/lib/mol-gl/_spec/lines.spec.js.map +1 -0
- package/lib/mol-gl/_spec/mesh.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/mesh.spec.js +38 -0
- package/lib/mol-gl/_spec/mesh.spec.js.map +1 -0
- package/lib/mol-gl/_spec/points.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/points.spec.js +38 -0
- package/lib/mol-gl/_spec/points.spec.js.map +1 -0
- package/lib/mol-gl/_spec/renderer.spec.d.ts +7 -1
- package/lib/mol-gl/_spec/renderer.spec.js +6 -46
- package/lib/mol-gl/_spec/renderer.spec.js.map +1 -1
- package/lib/{commonjs/mol-repr/structure/visual/aromatic-ring-mesh.d.ts → mol-gl/_spec/shader.spec.d.ts} +0 -0
- package/lib/mol-gl/_spec/shader.spec.js +2 -0
- package/lib/mol-gl/_spec/shader.spec.js.map +1 -0
- package/lib/mol-gl/_spec/spheres.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/spheres.spec.js +38 -0
- package/lib/mol-gl/_spec/spheres.spec.js.map +1 -0
- package/lib/mol-gl/_spec/text.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/text.spec.js +38 -0
- package/lib/mol-gl/_spec/text.spec.js.map +1 -0
- package/lib/mol-gl/_spec/texture-mesh.spec.d.ts +6 -0
- package/lib/mol-gl/_spec/texture-mesh.spec.js +38 -0
- package/lib/mol-gl/_spec/texture-mesh.spec.js.map +1 -0
- package/lib/mol-gl/renderer.d.ts +3 -2
- package/lib/mol-gl/renderer.js +3 -0
- package/lib/mol-gl/renderer.js.map +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/assign-material-color.glsl.js.map +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/direct-volume.frag.js.map +1 -1
- package/lib/mol-gl/shader/lines.vert.d.ts +1 -1
- package/lib/mol-gl/shader/lines.vert.js +1 -1
- package/lib/mol-gl/shader/lines.vert.js.map +1 -1
- package/lib/mol-gl/shader/points.vert.d.ts +1 -1
- package/lib/mol-gl/shader/points.vert.js +1 -1
- package/lib/mol-gl/shader/points.vert.js.map +1 -1
- package/lib/mol-gl/webgl/context.d.ts +1 -1
- package/lib/mol-gl/webgl/context.js +4 -2
- package/lib/mol-gl/webgl/context.js.map +1 -1
- package/lib/mol-io/reader/cif/schema/bird.d.ts +5 -5
- package/lib/mol-io/reader/cif/schema/ccd.d.ts +2 -2
- package/lib/mol-io/reader/cif/schema/density-server.d.ts +4 -4
- package/lib/mol-io/reader/cif/schema/mmcif-extras.d.ts +3 -3
- package/lib/mol-io/reader/cif/schema/mmcif.d.ts +23 -23
- package/lib/mol-io/reader/ply/schema.d.ts +1 -1
- package/lib/mol-math/geometry/primitives/axes3d.d.ts +2 -1
- package/lib/mol-math/geometry/primitives/axes3d.js +9 -2
- package/lib/mol-math/geometry/primitives/axes3d.js.map +1 -1
- package/lib/mol-math/linear-algebra/3d/vec3.d.ts +3 -1
- package/lib/mol-math/linear-algebra/3d/vec3.js +11 -3
- package/lib/mol-math/linear-algebra/3d/vec3.js.map +1 -1
- package/lib/mol-math/misc.d.ts +3 -1
- package/lib/mol-math/misc.js +22 -1
- package/lib/mol-math/misc.js.map +1 -1
- package/lib/mol-model/loci.d.ts +32 -32
- package/lib/mol-model/loci.js +4 -3
- package/lib/mol-model/loci.js.map +1 -1
- package/lib/mol-model/shape/shape.d.ts +1 -1
- package/lib/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
- package/lib/mol-model/structure/structure/element/loci.d.ts +1 -0
- package/lib/mol-model/structure/structure/element/loci.js +14 -0
- package/lib/mol-model/structure/structure/element/loci.js.map +1 -1
- package/lib/mol-model/structure/structure/properties.d.ts +3 -3
- package/lib/mol-model/structure/structure/structure.js +2 -1
- package/lib/mol-model/structure/structure/structure.js.map +1 -1
- package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +1 -1
- package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js.map +1 -1
- package/lib/mol-model/structure/structure/unit/bonds.d.ts +2 -1
- package/lib/mol-model/structure/structure/unit/bonds.js +7 -2
- package/lib/mol-model/structure/structure/unit/bonds.js.map +1 -1
- package/lib/mol-model/structure/structure/unit.d.ts +2 -2
- package/lib/mol-model-formats/shape/ply.d.ts +12 -12
- package/lib/mol-model-formats/structure/basic/schema.d.ts +6 -6
- package/lib/mol-model-formats/structure/common/component.d.ts +8 -8
- package/lib/mol-model-formats/structure/common/entity.d.ts +1 -1
- package/lib/mol-model-formats/structure/pdb/entity.js +29 -3
- package/lib/mol-model-formats/structure/pdb/entity.js.map +1 -1
- package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +3 -0
- package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +3 -0
- package/lib/mol-model-props/computed/representations/interactions.d.ts +9 -0
- package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +12 -0
- package/lib/mol-model-props/sequence/themes/best-database-mapping.d.ts +12 -12
- package/lib/mol-plugin/behavior/behavior.d.ts +1 -1
- package/lib/mol-plugin/behavior/dynamic/representation.d.ts +4 -2
- package/lib/mol-plugin/behavior/dynamic/representation.js +23 -9
- package/lib/mol-plugin/behavior/dynamic/representation.js.map +1 -1
- package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js +1 -1
- package/lib/mol-plugin/behavior/dynamic/selection/structure-focus-representation.js.map +1 -1
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/behavior.d.ts +10 -10
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/model.d.ts +3 -2
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/transformers.d.ts +7 -7
- package/lib/mol-plugin/commands.d.ts +6 -2
- package/lib/mol-plugin/config.d.ts +1 -0
- package/lib/mol-plugin/config.js +11 -3
- package/lib/mol-plugin/config.js.map +1 -1
- package/lib/mol-plugin/context.js +6 -4
- package/lib/mol-plugin/context.js.map +1 -1
- package/lib/mol-plugin/util/viewport-screenshot.d.ts +6 -6
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/animation/built-in/model-index.d.ts +3 -3
- package/lib/mol-plugin-state/builder/structure/hierarchy-preset.d.ts +7 -7
- package/lib/mol-plugin-state/builder/structure/hierarchy.d.ts +7 -7
- package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +10 -10
- package/lib/mol-plugin-state/builder/structure/representation-preset.js +20 -16
- package/lib/mol-plugin-state/builder/structure/representation-preset.js.map +1 -1
- package/lib/mol-plugin-state/formats/volume.d.ts +16 -16
- package/lib/mol-plugin-state/helpers/root-structure.d.ts +7 -7
- package/lib/mol-plugin-state/helpers/structure-component.d.ts +1 -1
- package/lib/mol-plugin-state/manager/interactivity.d.ts +2 -2
- package/lib/mol-plugin-state/manager/interactivity.js +12 -11
- package/lib/mol-plugin-state/manager/interactivity.js.map +1 -1
- package/lib/mol-plugin-state/manager/structure/measurement.d.ts +7 -2
- package/lib/mol-plugin-state/manager/structure/measurement.js +110 -12
- package/lib/mol-plugin-state/manager/structure/measurement.js.map +1 -1
- package/lib/mol-plugin-state/manager/structure/selection.d.ts +3 -3
- package/lib/mol-plugin-state/manager/structure/selection.js +4 -10
- package/lib/mol-plugin-state/manager/structure/selection.js.map +1 -1
- package/lib/mol-plugin-state/transforms/data.d.ts +1 -1
- package/lib/mol-plugin-state/transforms/helpers.d.ts +3 -1
- package/lib/mol-plugin-state/transforms/helpers.js +5 -3
- package/lib/mol-plugin-state/transforms/helpers.js.map +1 -1
- package/lib/mol-plugin-state/transforms/model.d.ts +9 -9
- package/lib/mol-plugin-state/transforms/model.js.map +1 -1
- package/lib/mol-plugin-state/transforms/representation.d.ts +19 -4
- package/lib/mol-plugin-state/transforms/representation.js +54 -2
- package/lib/mol-plugin-state/transforms/representation.js.map +1 -1
- package/lib/mol-plugin-ui/sequence/polymer.d.ts +1 -1
- package/lib/mol-plugin-ui/sequence.d.ts +1 -1
- package/lib/mol-plugin-ui/sequence.js +16 -2
- package/lib/mol-plugin-ui/sequence.js.map +1 -1
- package/lib/mol-plugin-ui/skin/base/base.scss +32 -32
- package/lib/mol-plugin-ui/skin/base/components/controls-base.scss +333 -333
- package/lib/mol-plugin-ui/skin/base/components/controls.scss +420 -420
- package/lib/mol-plugin-ui/skin/base/components/help.scss +27 -27
- package/lib/mol-plugin-ui/skin/base/components/line-graph.scss +67 -67
- package/lib/mol-plugin-ui/skin/base/components/log.scss +100 -100
- package/lib/mol-plugin-ui/skin/base/components/misc.scss +616 -616
- package/lib/mol-plugin-ui/skin/base/components/sequence.scss +125 -125
- package/lib/mol-plugin-ui/skin/base/components/slider.scss +165 -165
- package/lib/mol-plugin-ui/skin/base/components/tasks.scss +99 -99
- package/lib/mol-plugin-ui/skin/base/components/toast.scss +81 -81
- package/lib/mol-plugin-ui/skin/base/components/transformer.scss +163 -163
- package/lib/mol-plugin-ui/skin/base/components/viewport.scss +127 -127
- package/lib/mol-plugin-ui/skin/base/layout/common.scss +71 -71
- package/lib/mol-plugin-ui/skin/base/layout/controls-landscape.scss +89 -89
- package/lib/mol-plugin-ui/skin/base/layout/controls-outside.scss +98 -98
- package/lib/mol-plugin-ui/skin/base/layout/controls-portrait.scss +108 -108
- package/lib/mol-plugin-ui/skin/base/layout.scss +40 -40
- package/lib/mol-plugin-ui/skin/base/logo.scss +12 -12
- package/lib/mol-plugin-ui/skin/base/normalize.scss +209 -209
- package/lib/mol-plugin-ui/skin/base/ui.scss +40 -40
- package/lib/mol-plugin-ui/skin/base/variables.scss +85 -85
- package/lib/mol-plugin-ui/skin/blue.scss +1 -1
- package/lib/mol-plugin-ui/skin/colors/blue.scss +23 -23
- package/lib/mol-plugin-ui/skin/colors/dark.scss +23 -23
- package/lib/mol-plugin-ui/skin/colors/light.scss +29 -29
- package/lib/mol-plugin-ui/skin/dark.scss +1 -1
- package/lib/mol-plugin-ui/skin/light.scss +1 -1
- package/lib/mol-plugin-ui/structure/measurements.d.ts +10 -1
- package/lib/mol-plugin-ui/structure/measurements.js +50 -7
- package/lib/mol-plugin-ui/structure/measurements.js.map +1 -1
- package/lib/mol-repr/representation.d.ts +1 -0
- package/lib/mol-repr/representation.js +8 -2
- package/lib/mol-repr/representation.js.map +1 -1
- package/lib/mol-repr/shape/loci/orientation.d.ts +6 -5
- package/lib/mol-repr/shape/loci/orientation.js +38 -52
- package/lib/mol-repr/shape/loci/orientation.js.map +1 -1
- package/lib/mol-repr/shape/loci/plane.d.ts +27 -0
- package/lib/mol-repr/shape/loci/plane.js +57 -0
- package/lib/mol-repr/shape/loci/plane.js.map +1 -0
- package/lib/mol-repr/shape/model/unitcell.d.ts +1 -1
- package/lib/mol-repr/structure/complex-visual.d.ts +1 -1
- package/lib/mol-repr/structure/params.d.ts +1 -1
- package/lib/mol-repr/structure/registry.d.ts +30 -11
- package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +12 -0
- package/lib/mol-repr/structure/representation/carbohydrate.d.ts +9 -0
- package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -0
- package/lib/mol-repr/structure/representation/ellipsoid.d.ts +12 -0
- package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +6 -6
- package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +3 -3
- package/lib/mol-repr/structure/representation/label.d.ts +3 -3
- package/lib/mol-repr/structure/representation/line.d.ts +37 -16
- package/lib/mol-repr/structure/representation/line.js +10 -4
- package/lib/mol-repr/structure/representation/line.js.map +1 -1
- package/lib/mol-repr/structure/representation/molecular-surface.d.ts +6 -6
- package/lib/mol-repr/structure/units-visual.d.ts +1 -1
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +8 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +20 -9
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js.map +1 -1
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.d.ts +2 -0
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +13 -8
- package/lib/mol-repr/structure/visual/bond-inter-unit-line.js.map +1 -1
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +8 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +21 -7
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js.map +1 -1
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.d.ts +2 -0
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +14 -6
- package/lib/mol-repr/structure/visual/bond-intra-unit-line.js.map +1 -1
- package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +3 -0
- package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +3 -0
- package/lib/mol-repr/structure/visual/element-cross.d.ts +26 -0
- package/lib/mol-repr/structure/visual/element-cross.js +72 -0
- package/lib/mol-repr/structure/visual/element-cross.js.map +1 -0
- package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -2
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +8 -8
- package/lib/mol-repr/structure/visual/label-text.d.ts +1 -1
- package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +2 -2
- package/lib/mol-repr/structure/visual/orientation-axes-mesh.d.ts +35 -0
- package/lib/mol-repr/structure/visual/orientation-axes-mesh.js +43 -0
- package/lib/mol-repr/structure/visual/orientation-axes-mesh.js.map +1 -0
- package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.d.ts +31 -0
- package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.js +48 -0
- package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh copy.js.map +1 -0
- package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +3 -0
- package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +22 -15
- package/lib/mol-repr/structure/visual/polymer-trace-mesh.js.map +1 -1
- package/lib/mol-repr/structure/visual/polymer-tube-mesh.js +1 -1
- package/lib/mol-repr/structure/visual/polymer-tube-mesh.js.map +1 -1
- package/lib/mol-repr/structure/visual/util/bond.d.ts +18 -4
- package/lib/mol-repr/structure/visual/util/bond.js +2 -1
- package/lib/mol-repr/structure/visual/util/bond.js.map +1 -1
- package/lib/mol-repr/structure/visual/util/color.d.ts +2 -2
- package/lib/mol-repr/structure/visual/util/element.d.ts +4 -4
- package/lib/mol-repr/structure/visual/util/link.d.ts +14 -4
- package/lib/mol-repr/structure/visual/util/link.js +90 -37
- package/lib/mol-repr/structure/visual/util/link.js.map +1 -1
- package/lib/mol-repr/structure/visual/util/orientation.d.ts +17 -0
- package/lib/mol-repr/structure/visual/util/orientation.js +71 -0
- package/lib/mol-repr/structure/visual/util/orientation.js.map +1 -0
- package/lib/mol-repr/structure/visual/util/polymer.d.ts +2 -2
- package/lib/mol-repr/volume/direct-volume.d.ts +5 -5
- package/lib/mol-repr/volume/registry.d.ts +3 -3
- package/lib/mol-repr/volume/slice.d.ts +6 -6
- package/lib/mol-script/language/builder.d.ts +0 -1
- package/lib/mol-task/util/scheduler.d.ts +0 -1
- package/lib/mol-theme/color/atom-id.d.ts +12 -12
- package/lib/mol-theme/color/chain-id.d.ts +12 -12
- package/lib/mol-theme/color/element-index.d.ts +12 -12
- package/lib/mol-theme/color/element-symbol.d.ts +12 -12
- package/lib/mol-theme/color/entity-id.d.ts +12 -12
- package/lib/mol-theme/color/entity-source.d.ts +12 -12
- package/lib/mol-theme/color/illustrative.d.ts +12 -12
- package/lib/mol-theme/color/model-index.d.ts +12 -12
- package/lib/mol-theme/color/operator-hkl.d.ts +12 -12
- package/lib/mol-theme/color/operator-name.d.ts +12 -12
- package/lib/mol-theme/color/polymer-id.d.ts +12 -12
- package/lib/mol-theme/color/polymer-index.d.ts +12 -12
- package/lib/mol-theme/color/unit-index.d.ts +12 -12
- package/lib/mol-theme/color.d.ts +78 -78
- package/lib/mol-theme/label.d.ts +1 -0
- package/lib/mol-theme/label.js +9 -0
- package/lib/mol-theme/label.js.map +1 -1
- package/lib/mol-util/color/palette.d.ts +12 -12
- package/lib/servers/model/config.js +0 -1
- package/lib/servers/model/config.js.map +1 -1
- package/lib/servers/volume/config.js +0 -1
- package/lib/servers/volume/config.js.map +1 -1
- package/lib/tests/browser/index.html +36 -36
- package/lib/tsconfig.commonjs.tsbuildinfo +1 -1
- package/package.json +159 -155
- package/lib/commonjs/mol-gl/shader/chunks/wboit-params.glsl.d.ts +0 -1
- package/lib/commonjs/mol-gl/shader/chunks/wboit-params.glsl.js +0 -5
- package/lib/commonjs/mol-gl/shader/chunks/wboit-params.glsl.js.map +0 -1
- package/lib/commonjs/mol-model/structure/model/properties/utils/guess-element.d.ts +0 -6
- package/lib/commonjs/mol-model/structure/model/properties/utils/guess-element.js +0 -40
- package/lib/commonjs/mol-model/structure/model/properties/utils/guess-element.js.map +0 -1
- package/lib/commonjs/mol-repr/structure/visual/aromatic-ring-mesh.js +0 -3
- package/lib/commonjs/mol-repr/structure/visual/aromatic-ring-mesh.js.map +0 -1
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone-iterator.d.ts +0 -37
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone-iterator.js +0 -116
- package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone-iterator.js.map +0 -1
- package/lib/commonjs/mol-script/util/residue-list.d.ts +0 -7
- package/lib/commonjs/mol-script/util/residue-list.js +0 -63
- package/lib/commonjs/mol-script/util/residue-list.js.map +0 -1
- package/lib/mol-gl/shader/chunks/wboit-params.glsl.d.ts +0 -1
- package/lib/mol-gl/shader/chunks/wboit-params.glsl.js +0 -2
- package/lib/mol-gl/shader/chunks/wboit-params.glsl.js.map +0 -1
- package/lib/mol-model/structure/model/properties/utils/guess-element.d.ts +0 -6
- package/lib/mol-model/structure/model/properties/utils/guess-element.js +0 -36
- package/lib/mol-model/structure/model/properties/utils/guess-element.js.map +0 -1
- package/lib/mol-model-formats/structure/mol copy.d.ts +0 -17
- package/lib/mol-model-formats/structure/mol copy.js +0 -86
- package/lib/mol-model-formats/structure/mol copy.js.map +0 -1
- package/lib/mol-repr/structure/visual/aromatic-ring-mesh.d.ts +0 -0
- package/lib/mol-repr/structure/visual/aromatic-ring-mesh.js +0 -3
- package/lib/mol-repr/structure/visual/aromatic-ring-mesh.js.map +0 -1
- package/lib/mol-repr/structure/visual/util/polymer/backbone-iterator.d.ts +0 -37
- package/lib/mol-repr/structure/visual/util/polymer/backbone-iterator.js +0 -112
- package/lib/mol-repr/structure/visual/util/polymer/backbone-iterator.js.map +0 -1
- package/lib/mol-script/util/residue-list.d.ts +0 -7
- package/lib/mol-script/util/residue-list.js +0 -59
- package/lib/mol-script/util/residue-list.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture-mesh.spec.js","sourceRoot":"","sources":["../../../../src/mol-gl/_spec/texture-mesh.spec.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,kDAAsD;AACtD,kCAAiC;AACjC,2BAAqD;AACrD,8CAAoD;AACpD,oDAAwD;AACxD,oEAAwE;AACxE,iFAA+E;AAE/E,SAAgB,iBAAiB;IAC7B,IAAM,WAAW,GAAG,0BAAW,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAM,KAAK,GAAG,kCAAE,CAAC,gBAAgB,CAAC,0BAAW,CAAC,MAAM,CAAC,CAAC;IACtD,IAAM,MAAM,GAAG,0BAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,kBAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9F,IAAM,KAAK,GAAG,0BAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,IAAA,kCAAkB,EAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAND,8CAMC;AAED,QAAQ,CAAC,cAAc,EAAE;IACrB,IAAM,GAAG,GAAG,IAAA,oBAAe,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;;;YACpB,GAAG,GAAG,IAAA,iBAAY,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,KAAK,GAAG,aAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,WAAW,GAAG,iBAAiB,EAAE,CAAC;YACxC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvB,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YACnB,MAAM,CAAC,cAAM,OAAA,KAAK,CAAC,MAAM,EAAE,EAAd,CAAc,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;YACpB,GAAG,CAAC,OAAO,EAAE,CAAC;;;SACjB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -44,6 +44,7 @@ interface Renderer {
|
|
|
44
44
|
setViewport: (x: number, y: number, width: number, height: number) => void;
|
|
45
45
|
setTransparentBackground: (value: boolean) => void;
|
|
46
46
|
setDrawingBufferSize: (width: number, height: number) => void;
|
|
47
|
+
setPixelRatio: (value: number) => void;
|
|
47
48
|
dispose: () => void;
|
|
48
49
|
}
|
|
49
50
|
export declare const RendererParams: {
|
|
@@ -58,13 +59,13 @@ export declare const RendererParams: {
|
|
|
58
59
|
selectStrength: PD.Numeric;
|
|
59
60
|
markerPriority: PD.Select<number>;
|
|
60
61
|
xrayEdgeFalloff: PD.Numeric;
|
|
61
|
-
style: PD.Mapped<PD.NamedParams<PD.Normalize<{
|
|
62
|
+
style: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "flat"> | PD.NamedParams<PD.Normalize<unknown>, "metallic"> | PD.NamedParams<PD.Normalize<unknown>, "matte"> | PD.NamedParams<PD.Normalize<{
|
|
62
63
|
lightIntensity: number;
|
|
63
64
|
ambientIntensity: number;
|
|
64
65
|
metalness: number;
|
|
65
66
|
roughness: number;
|
|
66
67
|
reflectivity: number;
|
|
67
|
-
}>, "custom"> | PD.NamedParams<PD.Normalize<unknown>, "
|
|
68
|
+
}>, "custom"> | PD.NamedParams<PD.Normalize<unknown>, "glossy"> | PD.NamedParams<PD.Normalize<unknown>, "plastic">>;
|
|
68
69
|
clip: PD.Group<PD.Normalize<{
|
|
69
70
|
variant: Clipping.Variant;
|
|
70
71
|
objects: PD.Normalize<{
|
|
@@ -569,6 +569,9 @@ var Renderer;
|
|
|
569
569
|
mol_util_1.ValueCell.update(globalUniforms.uDrawingBufferSize, linear_algebra_1.Vec2.set(drawingBufferSize, width, height));
|
|
570
570
|
}
|
|
571
571
|
},
|
|
572
|
+
setPixelRatio: function (value) {
|
|
573
|
+
mol_util_1.ValueCell.update(globalUniforms.uPixelRatio, value);
|
|
574
|
+
},
|
|
572
575
|
props: p,
|
|
573
576
|
get stats() {
|
|
574
577
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/mol-gl/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker =
|
|
1
|
+
export declare const assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assign_material_color = void 0;
|
|
4
|
-
exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker =
|
|
4
|
+
exports.assign_material_color = "\n#if defined(dRenderVariant_color) || defined(dRenderVariant_marking)\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = floor(vMarker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dUsePalette)\n vec4 material = vec4(texture2D(tPalette, vec2(vPaletteV, 0.5)).rgb, uAlpha);\n #elif defined(dColorType_uniform)\n vec4 material = vec4(uColor, uAlpha);\n #elif defined(dColorType_varying)\n vec4 material = vec4(vColor.rgb, uAlpha);\n #endif\n\n // mix material with overpaint\n #if defined(dOverpaint)\n material.rgb = mix(material.rgb, vOverpaint.rgb, vOverpaint.a);\n #endif\n#elif defined(dRenderVariant_pick)\n vec4 material = vColor;\n#elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingDepth)\n if (marker > 0.0)\n discard;\n #ifdef enabledFragDepth\n vec4 material = packDepthToRGBA(gl_FragDepthEXT);\n #else\n vec4 material = packDepthToRGBA(gl_FragCoord.z);\n #endif\n#elif defined(dRenderVariant_markingMask)\n if (marker == 0.0)\n discard;\n float depthTest = 1.0;\n if (uMarkingDepthTest) {\n depthTest = (fragmentDepth >= getDepth(gl_FragCoord.xy / uDrawingBufferSize)) ? 1.0 : 0.0;\n }\n bool isHighlight = intMod(marker, 2.0) > 0.1;\n float viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\n float fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\n if (fogFactor == 1.0)\n discard;\n vec4 material = vec4(0.0, depthTest, isHighlight ? 1.0 : 0.0, 1.0 - fogFactor);\n#endif\n\n// apply screendoor transparency\n#if defined(dTransparency)\n float ta = 1.0 - vTransparency;\n\n #if defined(dRenderVariant_pick)\n if (ta < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #else\n #if defined(dRenderVariant_colorBlended)\n float at = 0.0;\n\n // shift by view-offset during multi-sample rendering to allow for blending\n vec2 coord = gl_FragCoord.xy + uViewOffset * 0.25;\n\n const mat4 thresholdMatrix = mat4(\n 1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0,\n 13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0,\n 4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0,\n 16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0\n );\n int ci = int(intMod(coord.x, 4.0));\n int ri = int(intMod(coord.y, 4.0));\n #if __VERSION__ == 100\n vec4 i = vec4(float(ci * 4 + ri));\n vec4 v = thresholdMatrix[0] * vec4(equal(i, vec4(0.0, 1.0, 2.0, 3.0))) +\n thresholdMatrix[1] * vec4(equal(i, vec4(4.0, 5.0, 6.0, 7.0))) +\n thresholdMatrix[2] * vec4(equal(i, vec4(8.0, 9.0, 10.0, 11.0))) +\n thresholdMatrix[3] * vec4(equal(i, vec4(12.0, 13.0, 14.0, 15.0)));\n at = v.x + v.y + v.z + v.w;\n #else\n at = thresholdMatrix[ci][ri];\n #endif\n\n if (ta < 0.99 && (ta < 0.01 || ta < at)) {\n discard;\n }\n #elif defined(dRenderVariant_colorWboit)\n material.a *= ta;\n #endif\n #endif\n#endif\n";
|
|
5
5
|
//# sourceMappingURL=assign-material-color.glsl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"assign-material-color.glsl.js","sourceRoot":"","sources":["../../../../../src/mol-gl/shader/chunks/assign-material-color.glsl.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,0iHA8FpC,CAAC"}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
* @author Michael Krone <michael.krone@uni-tuebingen.de>
|
|
6
6
|
*/
|
|
7
|
-
export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
|
|
7
|
+
export declare const directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.directVolume_frag = void 0;
|
|
10
|
-
exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
|
|
10
|
+
exports.directVolume_frag = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include light_frag_params\n\n#if dClipObjectCount != 0\n uniform int uClipObjectType[dClipObjectCount];\n uniform bool uClipObjectInvert[dClipObjectCount];\n uniform vec3 uClipObjectPosition[dClipObjectCount];\n uniform vec4 uClipObjectRotation[dClipObjectCount];\n uniform vec3 uClipObjectScale[dClipObjectCount];\n#endif\n#include common_clip\n\n#include read_from_texture\n#include texture3d_from_1d_trilinear\n#include texture3d_from_2d_nearest\n#include texture3d_from_2d_linear\n\nuniform mat4 uProjection, uTransform, uModelView, uModel, uView;\nuniform vec3 uCameraDir;\n\nuniform sampler2D tDepth;\nuniform vec2 uDrawingBufferSize;\n\nvarying vec3 vOrigPos;\nvarying float vInstance;\nvarying vec4 vBoundingSphere;\nvarying mat4 vTransform;\n\nuniform mat4 uInvView;\nuniform vec2 uIsoValue;\nuniform vec3 uGridDim;\nuniform vec3 uBboxSize;\nuniform sampler2D tTransferTex;\nuniform float uTransferScale;\nuniform float uStepScale;\nuniform float uJumpLength;\n\nuniform int uObjectId;\nuniform int uVertexCount;\nuniform int uInstanceCount;\nuniform int uGroupCount;\n\nuniform vec3 uHighlightColor;\nuniform vec3 uSelectColor;\nuniform float uHighlightStrength;\nuniform float uSelectStrength;\nuniform int uMarkerPriority;\n\n#if defined(dMarkerType_uniform)\n uniform float uMarker;\n#elif defined(dMarkerType_groupInstance)\n uniform vec2 uMarkerTexDim;\n uniform sampler2D tMarker;\n#endif\n\nuniform float uFogNear;\nuniform float uFogFar;\nuniform vec3 uFogColor;\n\nuniform float uAlpha;\nuniform float uPickingAlphaThreshold;\nuniform bool uTransparentBackground;\n\nuniform float uInteriorDarkening;\nuniform bool uInteriorColorFlag;\nuniform vec3 uInteriorColor;\nbool interior;\n\nuniform bool uRenderWboit;\n\nuniform float uNear;\nuniform float uFar;\nuniform float uIsOrtho;\n\nuniform vec3 uCellDim;\nuniform vec3 uCameraPosition;\nuniform mat4 uCartnToUnit;\n\n#if __VERSION__ != 100\n // for webgl1 this is given as a 'define'\n uniform int uMaxSteps;\n#endif\n\n#if defined(dGridTexType_2d)\n precision highp sampler2D;\n uniform sampler2D tGridTex;\n uniform vec3 uGridTexDim;\n#elif defined(dGridTexType_3d)\n precision highp sampler3D;\n uniform sampler3D tGridTex;\n#endif\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_texture)\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #endif\n\n #ifdef dOverpaint\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #endif\n#endif\n\n#if defined(dGridTexType_2d)\n vec4 textureVal(vec3 pos) {\n return texture3dFrom2dLinear(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n vec4 textureGroup(vec3 pos) {\n return texture3dFrom2dNearest(tGridTex, pos + (vec3(0.5, 0.5, 0.0) / uGridDim), uGridDim, uGridTexDim.xy);\n }\n#elif defined(dGridTexType_3d)\n vec4 textureVal(vec3 pos) {\n return texture(tGridTex, pos + (vec3(0.5) / uGridDim));\n }\n vec4 textureGroup(vec3 pos) {\n return texelFetch(tGridTex, ivec3(pos * uGridDim), 0);\n }\n#endif\n\nfloat calcDepth(const in vec3 pos) {\n vec2 clipZW = pos.z * uProjection[2].zw + uProjection[3].zw;\n return 0.5 + 0.5 * clipZW.x / clipZW.y;\n}\n\nvec4 transferFunction(float value) {\n return texture2D(tTransferTex, vec2(value, 0.0));\n}\n\nfloat getDepth(const in vec2 coords) {\n #ifdef depthTextureSupport\n if (!uRenderWboit) {\n // in case of opaque volumes (and depth texture support)\n return texture2D(tDepth, coords).r;\n } else {\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n }\n #else\n return unpackRGBAToDepth(texture2D(tDepth, coords));\n #endif\n}\n\nconst float gradOffset = 0.5;\n\nvec3 v3m4(vec3 p, mat4 m) {\n return (m * vec4(p, 1.0)).xyz;\n}\n\nfloat preFogAlphaBlended = 0.0;\n\nvec4 raymarch(vec3 startLoc, vec3 step, vec3 rayDir) {\n #if defined(dRenderVariant_color) && !defined(dIgnoreLight)\n mat3 normalMatrix = transpose3(inverse3(mat3(uModelView * vTransform)));\n #endif\n mat4 cartnToUnit = uCartnToUnit * inverse4(vTransform);\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n mat4 modelTransform = uModel * vTransform * uTransform;\n #endif\n mat4 modelViewTransform = uModelView * vTransform * uTransform;\n\n vec3 scaleVol = vec3(1.0) / uGridDim;\n vec3 pos = startLoc;\n vec4 cell;\n float prevValue = -1.0;\n float value = 0.0;\n vec4 src = vec4(0.0);\n vec4 dst = vec4(0.0);\n bool hit = false;\n float fragmentDepth;\n\n vec3 posMin = vec3(0.0);\n vec3 posMax = vec3(1.0) - vec3(1.0) / uGridDim;\n\n vec3 unitPos;\n vec3 isoPos;\n\n vec3 nextPos;\n float nextValue;\n\n vec3 color = vec3(0.45, 0.55, 0.8);\n vec3 gradient = vec3(1.0);\n vec3 dx = vec3(gradOffset * scaleVol.x, 0.0, 0.0);\n vec3 dy = vec3(0.0, gradOffset * scaleVol.y, 0.0);\n vec3 dz = vec3(0.0, 0.0, gradOffset * scaleVol.z);\n\n float maxDist = min(vBoundingSphere.w * 2.0, uFar - uNear);\n float maxDistSq = maxDist * maxDist;\n\n for (int i = 0; i < uMaxSteps; ++i) {\n // break when beyond bounding-sphere or far-plane\n vec3 distVec = startLoc - pos;\n if (dot(distVec, distVec) > maxDistSq) break;\n\n unitPos = v3m4(pos, cartnToUnit);\n\n // continue when outside of grid\n if (unitPos.x > posMax.x || unitPos.y > posMax.y || unitPos.z > posMax.z ||\n unitPos.x < posMin.x || unitPos.y < posMin.y || unitPos.z < posMin.z\n ) {\n if (hit) break;\n prevValue = value;\n pos += step;\n continue;\n }\n\n cell = textureVal(unitPos);\n value = cell.a; // current voxel value\n\n if (uJumpLength > 0.0 && value < 0.01) {\n nextPos = pos + rayDir * uJumpLength;\n nextValue = textureVal(v3m4(nextPos, cartnToUnit)).a;\n if (nextValue < 0.01) {\n prevValue = nextValue;\n pos = nextPos;\n continue;\n }\n }\n\n #if defined(dRenderMode_isosurface)\n if (prevValue > 0.0 && ( // there was a prev Value\n (prevValue < uIsoValue.x && value > uIsoValue.x) || // entering isosurface\n (prevValue > uIsoValue.x && value < uIsoValue.x) // leaving isosurface\n )) {\n isoPos = v3m4(mix(pos - step, pos, ((prevValue - uIsoValue.x) / ((prevValue - uIsoValue.x) - (value - uIsoValue.x)))), cartnToUnit);\n\n vec4 mvPosition = modelViewTransform * vec4(isoPos * uGridDim, 1.0);\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(isoPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n float depth = calcDepth(mvPosition.xyz);\n if (depth > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #ifdef enabledFragDepth\n if (!hit) {\n gl_FragDepthEXT = depth;\n }\n #endif\n\n #if defined(dRenderVariant_pickObject)\n return vec4(encodeFloatRGB(float(uObjectId)), 1.0);\n #elif defined(dRenderVariant_pickInstance)\n return vec4(encodeFloatRGB(vInstance), 1.0);\n #elif defined(dRenderVariant_pickGroup)\n #ifdef dPackedGroup\n return vec4(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb, 1.0);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n return vec4(encodeFloatRGB(g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y), 1.0);\n #endif\n #elif defined(dRenderVariant_depth)\n #ifdef enabledFragDepth\n return packDepthToRGBA(gl_FragDepthEXT);\n #else\n return packDepthToRGBA(depth);\n #endif\n #elif defined(dRenderVariant_color)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(isoPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(isoPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n\n #if defined(dColorType_uniform)\n color = uColor;\n #elif defined(dColorType_instance)\n color = readFromTexture(tColor, vInstance, uColorTexDim).rgb;\n #elif defined(dColorType_group)\n color = readFromTexture(tColor, group, uColorTexDim).rgb;\n #elif defined(dColorType_groupInstance)\n color = readFromTexture(tColor, vInstance * float(uGroupCount) + group, uColorTexDim).rgb;\n #elif defined(dColorType_vertex)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, 0.0).rgb;\n #elif defined(dColorType_vertexInstance)\n color = texture3dFrom1dTrilinear(tColor, isoPos, uGridDim, uColorTexDim, vInstance * float(uVertexCount)).rgb;\n #endif\n\n // handle flipping and negative isosurfaces\n #ifdef dFlipSided\n bool flipped = value < uIsoValue.y; // flipped\n #else\n bool flipped = value > uIsoValue.y;\n #endif\n interior = value < uIsoValue.x && flipped;\n #ifndef dDoubleSided\n if (interior) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = vec4(color, uAlpha);\n\n #ifdef dIgnoreLight\n gl_FragColor = material;\n #else\n #if defined(dFlatShaded)\n // nearest grid point\n isoPos = floor(isoPos * uGridDim + 0.5) / uGridDim;\n #endif\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(isoPos - dx).a - textureVal(isoPos + dx).a;\n gradient.y = textureVal(isoPos - dy).a - textureVal(isoPos + dy).a;\n gradient.z = textureVal(isoPos - dz).a - textureVal(isoPos + dz).a;\n #else\n gradient = textureVal(isoPos).xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n normal = normal * (float(flipped) * 2.0 - 1.0);\n normal = normal * -(float(interior) * 2.0 - 1.0);\n #include apply_light_color\n #endif\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_interior_color\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = depth;\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n\n #ifdef dSingleLayer\n break;\n #endif\n\n hit = true;\n }\n prevValue = value;\n #elif defined(dRenderMode_volume)\n vec4 mvPosition = modelViewTransform * vec4(unitPos * uGridDim, 1.0);\n if (calcDepth(mvPosition.xyz) > getDepth(gl_FragCoord.xy / uDrawingBufferSize))\n break;\n\n #if defined(dClipVariant_pixel) && dClipObjectCount != 0\n vec3 vModelPosition = v3m4(unitPos * uGridDim, modelTransform);\n if (clipTest(vec4(vModelPosition, 0.0), 0)) {\n prevValue = value;\n pos += step;\n continue;\n }\n #endif\n\n #if defined(dRenderVariant_color)\n vec3 vViewPosition = mvPosition.xyz;\n vec4 material = transferFunction(value);\n\n #ifdef dIgnoreLight\n gl_FragColor.rgb = material.rgb;\n #else\n if (material.a >= 0.01) {\n #ifdef dPackedGroup\n // compute gradient by central differences\n gradient.x = textureVal(unitPos - dx).a - textureVal(unitPos + dx).a;\n gradient.y = textureVal(unitPos - dy).a - textureVal(unitPos + dy).a;\n gradient.z = textureVal(unitPos - dz).a - textureVal(unitPos + dz).a;\n #else\n gradient = cell.xyz * 2.0 - 1.0;\n #endif\n vec3 normal = -normalize(normalMatrix * normalize(gradient));\n #include apply_light_color\n } else {\n gl_FragColor.rgb = material.rgb;\n }\n #endif\n\n gl_FragColor.a = material.a * uAlpha * uTransferScale;\n\n #if defined(dMarkerType_uniform)\n float marker = uMarker;\n #elif defined(dMarkerType_groupInstance)\n #ifdef dPackedGroup\n float group = decodeFloatRGB(textureGroup(floor(unitPos * uGridDim + 0.5) / uGridDim).rgb);\n #else\n vec3 g = floor(unitPos * uGridDim + 0.5);\n float group = g.z + g.y * uGridDim.z + g.x * uGridDim.z * uGridDim.y;\n #endif\n float marker = readFromTexture(tMarker, vInstance * float(uGroupCount) + group, uMarkerTexDim).a;\n marker = floor(marker * 255.0 + 0.5); // rounding required to work on some cards on win\n #endif\n #include apply_marker_color\n\n preFogAlphaBlended = (1.0 - preFogAlphaBlended) * gl_FragColor.a + preFogAlphaBlended;\n fragmentDepth = calcDepth(mvPosition.xyz);\n #include apply_fog\n\n src = gl_FragColor;\n\n if (!uTransparentBackground) {\n // done in 'apply_fog' otherwise\n src.rgb *= src.a;\n }\n dst = (1.0 - dst.a) * src + dst; // standard blending\n #endif\n #endif\n\n // break if the color is opaque enough\n if (dst.a > 0.95)\n break;\n\n pos += step;\n }\n\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n // ensure depth is written everywhere\n if (!hit)\n gl_FragDepthEXT = 1.0;\n #endif\n\n return dst;\n}\n\n// TODO: support float texture for higher precision values???\n// TODO: support clipping exclusion texture support\n\nvoid main() {\n if (gl_FrontFacing)\n discard;\n\n #ifdef dRenderVariant_marking\n // not supported\n discard;\n #endif\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n #if defined(dRenderMode_volume)\n // always ignore pick & depth for volume\n discard;\n #elif defined(dRenderMode_isosurface)\n if (uAlpha < uPickingAlphaThreshold)\n discard; // ignore so the element below can be picked\n #endif\n #endif\n\n vec3 rayDir = mix(normalize(vOrigPos - uCameraPosition), uCameraDir, uIsOrtho);\n vec3 step = rayDir * uStepScale;\n\n float boundingSphereNear = distance(vBoundingSphere.xyz, uCameraPosition) - vBoundingSphere.w;\n float d = max(uNear, boundingSphereNear) - mix(0.0, distance(vOrigPos, uCameraPosition), uIsOrtho);\n vec3 start = mix(uCameraPosition, vOrigPos, uIsOrtho) + (d * rayDir);\n gl_FragColor = raymarch(start, step, rayDir);\n\n #if defined(dRenderVariant_pick) || defined(dRenderVariant_depth)\n // discard when nothing was hit\n if (gl_FragColor == vec4(0.0))\n discard;\n #endif\n\n #if defined(dRenderVariant_color)\n #if defined(dRenderMode_isosurface) && defined(enabledFragDepth)\n float fragmentDepth = gl_FragDepthEXT;\n #else\n float fragmentDepth = calcDepth((uModelView * vec4(start, 1.0)).xyz);\n #endif\n float preFogAlpha = clamp(preFogAlphaBlended, 0.0, 1.0);\n interior = false;\n #include wboit_write\n #endif\n}\n";
|
|
11
11
|
//# sourceMappingURL=direct-volume.frag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"direct-volume.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/direct-volume.frag.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"direct-volume.frag.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/direct-volume.frag.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,iBAAiB,GAAG,s5jBAyehC,CAAC"}
|
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
*
|
|
6
6
|
* heavily based on code by WestLangley from https://github.com/WestLangley/three.js/blob/af28b2fb706ac109771ecad0a7447fad90ab3210/examples/js/lines/LineMaterial.js
|
|
7
7
|
*/
|
|
8
|
-
export declare const lines_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec2 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\n\nvoid trimSegment(const in vec4 start, inout vec4 end) {\n // trim end segment so it terminates between the camera plane and the near plane\n // conservative estimate of the near plane\n float a = uProjection[2][2]; // 3rd entry in 3rd column\n float b = uProjection[3][2]; // 3rd entry in 4th column\n float nearEstimate = -0.5 * b / a;\n float alpha = (nearEstimate - start.z) / (end.z - start.z);\n end.xyz = mix(start.xyz, end.xyz, alpha);\n}\n\nvoid main(){\n float aspect = uViewport.z / uViewport.w;\n\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelView = uView * uModel * aTransform;\n\n // camera space\n vec4 start = modelView * vec4(aStart, 1.0);\n vec4 end = modelView * vec4(aEnd, 1.0);\n\n // assign position\n vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);\n vec4 mvPosition = modelView * position4;\n vViewPosition = mvPosition.xyz;\n\n vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column\n if (perspective) {\n if (start.z < 0.0 && end.z >= 0.0) {\n trimSegment(start, end);\n } else if (end.z < 0.0 && start.z >= 0.0) {\n trimSegment(end, start);\n }\n }\n\n // clip space\n vec4 clipStart = uProjection * start;\n vec4 clipEnd = uProjection * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize(dir);\n\n // perpendicular to dir\n vec2 offset = vec2(dir.y, - dir.x);\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if (aMapping.x < 0.0) offset *= -1.0;\n\n // calculate linewidth\n float linewidth;\n #ifdef dLineSizeAttenuation\n linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;\n #else\n linewidth = size * uPixelRatio;\n #endif\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion\n offset /= uViewport.w;\n\n // select end\n vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n clip.xy += offset;\n gl_Position = clip;\n\n #include clip_instance\n}\n";
|
|
8
|
+
export declare const lines_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec2 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\n\nvoid trimSegment(const in vec4 start, inout vec4 end) {\n // trim end segment so it terminates between the camera plane and the near plane\n // conservative estimate of the near plane\n float a = uProjection[2][2]; // 3rd entry in 3rd column\n float b = uProjection[3][2]; // 3rd entry in 4th column\n float nearEstimate = -0.5 * b / a;\n float alpha = (nearEstimate - start.z) / (end.z - start.z);\n end.xyz = mix(start.xyz, end.xyz, alpha);\n}\n\nvoid main(){\n float aspect = uViewport.z / uViewport.w;\n\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelView = uView * uModel * aTransform;\n\n // camera space\n vec4 start = modelView * vec4(aStart, 1.0);\n vec4 end = modelView * vec4(aEnd, 1.0);\n\n // assign position\n vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);\n vec4 mvPosition = modelView * position4;\n vViewPosition = mvPosition.xyz;\n\n vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column\n if (perspective) {\n if (start.z < 0.0 && end.z >= 0.0) {\n trimSegment(start, end);\n } else if (end.z < 0.0 && start.z >= 0.0) {\n trimSegment(end, start);\n }\n }\n\n // clip space\n vec4 clipStart = uProjection * start;\n vec4 clipEnd = uProjection * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize(dir);\n\n // perpendicular to dir\n vec2 offset = vec2(dir.y, - dir.x);\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if (aMapping.x < 0.0) offset *= -1.0;\n\n // calculate linewidth\n float linewidth;\n #ifdef dLineSizeAttenuation\n linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;\n #else\n linewidth = size * uPixelRatio;\n #endif\n linewidth = max(1.0, linewidth);\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion\n offset /= uViewport.w;\n\n // select end\n vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n clip.xy += offset;\n gl_Position = clip;\n\n #include clip_instance\n}\n";
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.lines_vert = void 0;
|
|
11
|
-
exports.lines_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec2 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\n\nvoid trimSegment(const in vec4 start, inout vec4 end) {\n // trim end segment so it terminates between the camera plane and the near plane\n // conservative estimate of the near plane\n float a = uProjection[2][2]; // 3rd entry in 3rd column\n float b = uProjection[3][2]; // 3rd entry in 4th column\n float nearEstimate = -0.5 * b / a;\n float alpha = (nearEstimate - start.z) / (end.z - start.z);\n end.xyz = mix(start.xyz, end.xyz, alpha);\n}\n\nvoid main(){\n float aspect = uViewport.z / uViewport.w;\n\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelView = uView * uModel * aTransform;\n\n // camera space\n vec4 start = modelView * vec4(aStart, 1.0);\n vec4 end = modelView * vec4(aEnd, 1.0);\n\n // assign position\n vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);\n vec4 mvPosition = modelView * position4;\n vViewPosition = mvPosition.xyz;\n\n vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column\n if (perspective) {\n if (start.z < 0.0 && end.z >= 0.0) {\n trimSegment(start, end);\n } else if (end.z < 0.0 && start.z >= 0.0) {\n trimSegment(end, start);\n }\n }\n\n // clip space\n vec4 clipStart = uProjection * start;\n vec4 clipEnd = uProjection * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize(dir);\n\n // perpendicular to dir\n vec2 offset = vec2(dir.y, - dir.x);\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if (aMapping.x < 0.0) offset *= -1.0;\n\n // calculate linewidth\n float linewidth;\n #ifdef dLineSizeAttenuation\n linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;\n #else\n linewidth = size * uPixelRatio;\n #endif\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion\n offset /= uViewport.w;\n\n // select end\n vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n clip.xy += offset;\n gl_Position = clip;\n\n #include clip_instance\n}\n";
|
|
11
|
+
exports.lines_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nattribute vec2 aMapping;\nattribute vec3 aStart;\nattribute vec3 aEnd;\n\nvoid trimSegment(const in vec4 start, inout vec4 end) {\n // trim end segment so it terminates between the camera plane and the near plane\n // conservative estimate of the near plane\n float a = uProjection[2][2]; // 3rd entry in 3rd column\n float b = uProjection[3][2]; // 3rd entry in 4th column\n float nearEstimate = -0.5 * b / a;\n float alpha = (nearEstimate - start.z) / (end.z - start.z);\n end.xyz = mix(start.xyz, end.xyz, alpha);\n}\n\nvoid main(){\n float aspect = uViewport.z / uViewport.w;\n\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_size\n\n mat4 modelView = uView * uModel * aTransform;\n\n // camera space\n vec4 start = modelView * vec4(aStart, 1.0);\n vec4 end = modelView * vec4(aEnd, 1.0);\n\n // assign position\n vec4 position4 = vec4((aMapping.y < 0.5) ? aStart : aEnd, 1.0);\n vec4 mvPosition = modelView * position4;\n vViewPosition = mvPosition.xyz;\n\n vModelPosition = (uModel * aTransform * position4).xyz; // for clipping in frag shader\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n bool perspective = (uProjection[2][3] == -1.0); // 4th entry in the 3rd column\n if (perspective) {\n if (start.z < 0.0 && end.z >= 0.0) {\n trimSegment(start, end);\n } else if (end.z < 0.0 && start.z >= 0.0) {\n trimSegment(end, start);\n }\n }\n\n // clip space\n vec4 clipStart = uProjection * start;\n vec4 clipEnd = uProjection * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize(dir);\n\n // perpendicular to dir\n vec2 offset = vec2(dir.y, - dir.x);\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if (aMapping.x < 0.0) offset *= -1.0;\n\n // calculate linewidth\n float linewidth;\n #ifdef dLineSizeAttenuation\n linewidth = size * uPixelRatio * ((uViewport.w / 2.0) / -start.z) * 5.0;\n #else\n linewidth = size * uPixelRatio;\n #endif\n linewidth = max(1.0, linewidth);\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion\n offset /= uViewport.w;\n\n // select end\n vec4 clip = (aMapping.y < 0.5) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n clip.xy += offset;\n gl_Position = clip;\n\n #include clip_instance\n}\n";
|
|
12
12
|
//# sourceMappingURL=lines.vert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/lines.vert.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEU,QAAA,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"lines.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/lines.vert.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEU,QAAA,UAAU,GAAG,m4GAqHzB,CAAC"}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
6
|
-
export declare const points_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute vec3 aPosition;\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nvoid main(){\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_size\n\n #ifdef dPointSizeAttenuation\n gl_PointSize = size * uPixelRatio * ((uViewport.w / 2.0) / -mvPosition.z) * 5.0;\n #else\n gl_PointSize = size * uPixelRatio;\n #endif\n\n gl_Position = uProjection * mvPosition;\n\n #include clip_instance\n}\n";
|
|
6
|
+
export declare const points_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute vec3 aPosition;\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nvoid main(){\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_size\n\n #ifdef dPointSizeAttenuation\n gl_PointSize = size * uPixelRatio * ((uViewport.w / 2.0) / -mvPosition.z) * 5.0;\n #else\n gl_PointSize = size * uPixelRatio;\n #endif\n gl_PointSize = max(1.0, gl_PointSize);\n\n gl_Position = uProjection * mvPosition;\n\n #include clip_instance\n}\n";
|
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.points_vert = void 0;
|
|
9
|
-
exports.points_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute vec3 aPosition;\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nvoid main(){\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_size\n\n #ifdef dPointSizeAttenuation\n gl_PointSize = size * uPixelRatio * ((uViewport.w / 2.0) / -mvPosition.z) * 5.0;\n #else\n gl_PointSize = size * uPixelRatio;\n #endif\n\n gl_Position = uProjection * mvPosition;\n\n #include clip_instance\n}\n";
|
|
9
|
+
exports.points_vert = "\nprecision highp float;\nprecision highp int;\n\n#include common\n#include read_from_texture\n#include common_vert_params\n#include color_vert_params\n#include size_vert_params\n#include common_clip\n\nuniform float uPixelRatio;\nuniform vec4 uViewport;\n\nattribute vec3 aPosition;\nattribute mat4 aTransform;\nattribute float aInstance;\nattribute float aGroup;\n\nvoid main(){\n #include assign_group\n #include assign_color_varying\n #include assign_marker_varying\n #include assign_clipping_varying\n #include assign_position\n #include assign_size\n\n #ifdef dPointSizeAttenuation\n gl_PointSize = size * uPixelRatio * ((uViewport.w / 2.0) / -mvPosition.z) * 5.0;\n #else\n gl_PointSize = size * uPixelRatio;\n #endif\n gl_PointSize = max(1.0, gl_PointSize);\n\n gl_Position = uProjection * mvPosition;\n\n #include clip_instance\n}\n";
|
|
10
10
|
//# sourceMappingURL=points.vert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"points.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/points.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"points.vert.js","sourceRoot":"","sources":["../../../../src/mol-gl/shader/points.vert.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEU,QAAA,WAAW,GAAG,63BAsC1B,CAAC"}
|
|
@@ -17,7 +17,7 @@ import { ComputeRenderable } from '../renderable';
|
|
|
17
17
|
export declare function getGLContext(canvas: HTMLCanvasElement, attribs?: WebGLContextAttributes & {
|
|
18
18
|
preferWebGl1?: boolean;
|
|
19
19
|
}): GLRenderingContext | null;
|
|
20
|
-
export declare function getErrorDescription(gl: GLRenderingContext, error: number): "no error" | "invalid enum" | "invalid value" | "invalid operation" | "invalid framebuffer operation" | "out of memory" | "
|
|
20
|
+
export declare function getErrorDescription(gl: GLRenderingContext, error: number): "context lost" | "no error" | "invalid enum" | "invalid value" | "invalid operation" | "invalid framebuffer operation" | "out of memory" | "unknown error";
|
|
21
21
|
export declare function checkError(gl: GLRenderingContext): void;
|
|
22
22
|
export declare function readPixels(gl: GLRenderingContext, x: number, y: number, width: number, height: number, buffer: Uint8Array | Float32Array | Int32Array): void;
|
|
23
23
|
declare function createStats(): {
|
|
@@ -294,12 +294,14 @@ function createContext(gl, props) {
|
|
|
294
294
|
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
|
|
295
295
|
},
|
|
296
296
|
destroy: function (options) {
|
|
297
|
-
var _a;
|
|
297
|
+
var _a, _b;
|
|
298
298
|
resources.destroy();
|
|
299
299
|
unbindResources(gl);
|
|
300
300
|
// to aid GC
|
|
301
|
-
if (!(options === null || options === void 0 ? void 0 : options.doNotForceWebGLContextLoss))
|
|
301
|
+
if (!(options === null || options === void 0 ? void 0 : options.doNotForceWebGLContextLoss)) {
|
|
302
302
|
(_a = gl.getExtension('WEBGL_lose_context')) === null || _a === void 0 ? void 0 : _a.loseContext();
|
|
303
|
+
(_b = gl.getExtension('STACKGL_destroy_context')) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
304
|
+
}
|
|
303
305
|
}
|
|
304
306
|
};
|
|
305
307
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/mol-gl/webgl/context.ts"],"names":[],"mappings":"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"}
|