molstar 3.0.0-dev.7 → 3.0.0-dev.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/viewer/index.html +4 -0
- package/build/viewer/molstar.js +1 -1
- package/lib/apps/viewer/index.d.ts +1 -0
- package/lib/apps/viewer/index.html +4 -0
- package/lib/apps/viewer/index.js +2 -0
- package/lib/commonjs/apps/viewer/index.d.ts +1 -0
- package/lib/commonjs/apps/viewer/index.js +2 -0
- package/lib/commonjs/examples/alpha-orbitals/index.js +1 -1
- package/lib/commonjs/extensions/geo-export/mesh-exporter.js +4 -4
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +2 -2
- package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +1 -1
- package/lib/commonjs/mol-canvas3d/canvas3d.js +33 -29
- package/lib/commonjs/mol-canvas3d/passes/draw.d.ts +13 -1
- package/lib/commonjs/mol-canvas3d/passes/draw.js +16 -15
- package/lib/commonjs/mol-canvas3d/passes/image.js +3 -2
- package/lib/commonjs/mol-canvas3d/passes/marking.js +1 -1
- package/lib/commonjs/mol-canvas3d/passes/multi-sample.d.ts +9 -2
- package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +14 -12
- package/lib/commonjs/mol-canvas3d/passes/pick.js +3 -3
- package/lib/commonjs/mol-geo/geometry/color-data.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/color-data.js +22 -0
- package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +1 -1
- package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.d.ts +5 -38
- package/lib/commonjs/mol-geo/geometry/direct-volume/direct-volume.js +21 -66
- package/lib/commonjs/mol-geo/geometry/direct-volume/transfer-function.d.ts +2 -4
- package/lib/commonjs/mol-geo/geometry/direct-volume/transfer-function.js +4 -7
- package/lib/commonjs/mol-geo/geometry/image/image.js +1 -1
- package/lib/commonjs/mol-geo/geometry/lines/lines.js +1 -1
- package/lib/commonjs/mol-geo/geometry/marker-data.js +13 -5
- package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +1 -1
- package/lib/commonjs/mol-geo/geometry/points/points.js +1 -1
- package/lib/commonjs/mol-geo/geometry/size-data.js +5 -5
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +1 -1
- package/lib/commonjs/mol-geo/geometry/text/text.js +1 -1
- package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +1 -1
- package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +2 -2
- package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.d.ts +2 -2
- package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +10 -9
- package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/direct-volume.d.ts +6 -10
- package/lib/commonjs/mol-gl/renderable/direct-volume.js +1 -1
- package/lib/commonjs/mol-gl/renderable/image.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/lines.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/mesh.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/points.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/schema.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/schema.js +2 -2
- package/lib/commonjs/mol-gl/renderable/spheres.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/text.d.ts +1 -0
- package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +1 -1
- package/lib/commonjs/mol-gl/renderable/texture-mesh.js +1 -1
- package/lib/commonjs/mol-gl/renderer.js +12 -19
- package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-group.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-position.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/assign-size.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/common.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/wboit-write.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
- package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/gaussian-density.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/gaussian-density.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/histogram-pyramid/reduction.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/marching-cubes/isosurface.frag.js +1 -1
- package/lib/commonjs/mol-gl/shader/mesh.vert.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/mesh.vert.js +1 -1
- package/lib/commonjs/mol-gl/shader-code.js +1 -1
- package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +2 -2
- package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +4 -6
- package/lib/commonjs/mol-plugin/config.d.ts +0 -1
- package/lib/commonjs/mol-plugin/config.js +4 -25
- package/lib/commonjs/mol-plugin/features.d.ts +9 -0
- package/lib/commonjs/mol-plugin/features.js +38 -0
- package/lib/commonjs/mol-plugin-state/builder/structure/representation-preset.d.ts +4 -4
- package/lib/commonjs/mol-plugin-state/manager/structure/selection.js +3 -1
- package/lib/commonjs/mol-plugin-state/transforms/representation.js +2 -2
- package/lib/commonjs/mol-repr/structure/complex-representation.js +1 -1
- package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +1 -19
- package/lib/commonjs/mol-repr/structure/params.d.ts +1 -19
- package/lib/commonjs/mol-repr/structure/registry.d.ts +1 -19
- package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.js +1 -1
- package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.d.ts +4 -58
- package/lib/commonjs/mol-repr/structure/representation/gaussian-volume.js +2 -7
- package/lib/commonjs/mol-repr/structure/representation/label.js +1 -1
- package/lib/commonjs/mol-repr/structure/representation/molecular-surface.js +1 -1
- package/lib/commonjs/mol-repr/structure/units-representation.js +1 -1
- package/lib/commonjs/mol-repr/structure/units-visual.d.ts +1 -19
- package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -38
- package/lib/commonjs/mol-repr/structure/visual/gaussian-density-volume.js +8 -6
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +11 -8
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-wireframe.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/label-text.js +1 -2
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-wireframe.js +1 -1
- package/lib/commonjs/mol-repr/structure/visual/util/common.d.ts +3 -2
- package/lib/commonjs/mol-repr/structure/visual/util/common.js +2 -5
- package/lib/commonjs/mol-repr/structure/visual/util/gaussian.d.ts +7 -6
- package/lib/commonjs/mol-repr/structure/visual/util/gaussian.js +12 -12
- package/lib/commonjs/mol-repr/structure/visual/util/molecular-surface.d.ts +2 -1
- package/lib/commonjs/mol-repr/structure/visual/util/molecular-surface.js +4 -4
- package/lib/commonjs/mol-repr/volume/direct-volume.d.ts +3 -57
- package/lib/commonjs/mol-repr/volume/direct-volume.js +8 -12
- package/lib/commonjs/mol-repr/volume/isosurface.js +11 -2
- package/lib/commonjs/mol-repr/volume/registry.d.ts +1 -19
- package/lib/commonjs/mol-repr/volume/slice.js +2 -2
- package/lib/commonjs/mol-repr/volume/util.js +2 -2
- package/lib/commonjs/mol-theme/color/volume-value.d.ts +17 -0
- package/lib/commonjs/mol-theme/color/volume-value.js +57 -0
- package/lib/commonjs/mol-theme/color.d.ts +3 -0
- package/lib/commonjs/mol-theme/color.js +2 -0
- package/lib/commonjs/mol-util/number-packing.d.ts +11 -0
- package/lib/commonjs/mol-util/{float-packing.js → number-packing.js} +10 -19
- package/lib/examples/alpha-orbitals/index.js +1 -1
- package/lib/extensions/geo-export/mesh-exporter.js +4 -4
- package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +2 -2
- package/lib/mol-canvas3d/canvas3d.d.ts +1 -1
- package/lib/mol-canvas3d/canvas3d.js +33 -29
- package/lib/mol-canvas3d/passes/draw.d.ts +13 -1
- package/lib/mol-canvas3d/passes/draw.js +16 -15
- package/lib/mol-canvas3d/passes/image.js +3 -2
- package/lib/mol-canvas3d/passes/marking.js +1 -1
- package/lib/mol-canvas3d/passes/multi-sample.d.ts +9 -2
- package/lib/mol-canvas3d/passes/multi-sample.js +14 -12
- package/lib/mol-canvas3d/passes/pick.js +2 -2
- package/lib/mol-geo/geometry/color-data.d.ts +1 -1
- package/lib/mol-geo/geometry/color-data.js +22 -0
- package/lib/mol-geo/geometry/cylinders/cylinders.js +1 -1
- package/lib/mol-geo/geometry/direct-volume/direct-volume.d.ts +5 -38
- package/lib/mol-geo/geometry/direct-volume/direct-volume.js +22 -67
- package/lib/mol-geo/geometry/direct-volume/transfer-function.d.ts +2 -4
- package/lib/mol-geo/geometry/direct-volume/transfer-function.js +4 -7
- package/lib/mol-geo/geometry/image/image.js +1 -1
- package/lib/mol-geo/geometry/lines/lines.js +1 -1
- package/lib/mol-geo/geometry/marker-data.js +13 -5
- package/lib/mol-geo/geometry/mesh/mesh.js +1 -1
- package/lib/mol-geo/geometry/points/points.js +1 -1
- package/lib/mol-geo/geometry/size-data.js +5 -5
- package/lib/mol-geo/geometry/spheres/spheres.js +1 -1
- package/lib/mol-geo/geometry/text/text.js +1 -1
- package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +1 -1
- package/lib/mol-gl/compute/histogram-pyramid/sum.js +2 -2
- package/lib/mol-gl/compute/marching-cubes/isosurface.d.ts +2 -2
- package/lib/mol-gl/compute/marching-cubes/isosurface.js +10 -9
- package/lib/mol-gl/renderable/cylinders.d.ts +1 -0
- package/lib/mol-gl/renderable/direct-volume.d.ts +6 -10
- package/lib/mol-gl/renderable/direct-volume.js +1 -1
- package/lib/mol-gl/renderable/image.d.ts +1 -0
- package/lib/mol-gl/renderable/lines.d.ts +1 -0
- package/lib/mol-gl/renderable/mesh.d.ts +1 -0
- package/lib/mol-gl/renderable/points.d.ts +1 -0
- package/lib/mol-gl/renderable/schema.d.ts +1 -0
- package/lib/mol-gl/renderable/schema.js +2 -2
- package/lib/mol-gl/renderable/spheres.d.ts +1 -0
- package/lib/mol-gl/renderable/text.d.ts +1 -0
- package/lib/mol-gl/renderable/texture-mesh.d.ts +1 -1
- package/lib/mol-gl/renderable/texture-mesh.js +1 -1
- package/lib/mol-gl/renderer.js +12 -19
- package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/assign-group.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-group.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/assign-position.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-position.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/assign-size.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/assign-size.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/common.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/common.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/wboit-write.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/wboit-write.glsl.js +1 -1
- package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.d.ts +1 -1
- package/lib/mol-gl/shader/compute/color-smoothing/accumulate.vert.js +1 -1
- package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
- package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
- package/lib/mol-gl/shader/gaussian-density.frag.d.ts +1 -1
- package/lib/mol-gl/shader/gaussian-density.frag.js +1 -1
- package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.d.ts +1 -1
- package/lib/mol-gl/shader/histogram-pyramid/reduction.frag.js +1 -1
- package/lib/mol-gl/shader/image.frag.d.ts +1 -1
- package/lib/mol-gl/shader/image.frag.js +1 -1
- package/lib/mol-gl/shader/marching-cubes/isosurface.frag.d.ts +1 -1
- package/lib/mol-gl/shader/marching-cubes/isosurface.frag.js +1 -1
- package/lib/mol-gl/shader/mesh.vert.d.ts +1 -1
- package/lib/mol-gl/shader/mesh.vert.js +1 -1
- package/lib/mol-gl/shader-code.js +1 -1
- package/lib/mol-math/geometry/gaussian-density/gpu.js +2 -2
- package/lib/mol-plugin/behavior/dynamic/representation.js +4 -6
- package/lib/mol-plugin/config.d.ts +0 -1
- package/lib/mol-plugin/config.js +3 -23
- package/lib/mol-plugin/features.d.ts +9 -0
- package/lib/mol-plugin/features.js +35 -0
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/builder/structure/representation-preset.d.ts +4 -4
- package/lib/mol-plugin-state/manager/structure/selection.js +3 -1
- package/lib/mol-plugin-state/transforms/representation.js +2 -2
- package/lib/mol-repr/structure/complex-representation.js +1 -1
- package/lib/mol-repr/structure/complex-visual.d.ts +1 -19
- package/lib/mol-repr/structure/params.d.ts +1 -19
- package/lib/mol-repr/structure/registry.d.ts +1 -19
- package/lib/mol-repr/structure/representation/gaussian-surface.js +1 -1
- package/lib/mol-repr/structure/representation/gaussian-volume.d.ts +4 -58
- package/lib/mol-repr/structure/representation/gaussian-volume.js +2 -7
- package/lib/mol-repr/structure/representation/label.js +1 -1
- package/lib/mol-repr/structure/representation/molecular-surface.js +1 -1
- package/lib/mol-repr/structure/units-representation.js +1 -1
- package/lib/mol-repr/structure/units-visual.d.ts +1 -19
- package/lib/mol-repr/structure/visual/gaussian-density-volume.d.ts +2 -38
- package/lib/mol-repr/structure/visual/gaussian-density-volume.js +8 -6
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +11 -8
- package/lib/mol-repr/structure/visual/gaussian-surface-wireframe.js +1 -1
- package/lib/mol-repr/structure/visual/label-text.js +1 -2
- package/lib/mol-repr/structure/visual/molecular-surface-mesh.js +1 -1
- package/lib/mol-repr/structure/visual/molecular-surface-wireframe.js +1 -1
- package/lib/mol-repr/structure/visual/util/common.d.ts +3 -2
- package/lib/mol-repr/structure/visual/util/common.js +2 -5
- package/lib/mol-repr/structure/visual/util/gaussian.d.ts +7 -6
- package/lib/mol-repr/structure/visual/util/gaussian.js +12 -12
- package/lib/mol-repr/structure/visual/util/molecular-surface.d.ts +2 -1
- package/lib/mol-repr/structure/visual/util/molecular-surface.js +4 -4
- package/lib/mol-repr/volume/direct-volume.d.ts +3 -57
- package/lib/mol-repr/volume/direct-volume.js +8 -12
- package/lib/mol-repr/volume/isosurface.js +11 -2
- package/lib/mol-repr/volume/registry.d.ts +1 -19
- package/lib/mol-repr/volume/slice.js +2 -2
- package/lib/mol-repr/volume/util.js +2 -2
- package/lib/mol-theme/color/volume-value.d.ts +17 -0
- package/lib/mol-theme/color/volume-value.js +52 -0
- package/lib/mol-theme/color.d.ts +3 -0
- package/lib/mol-theme/color.js +2 -0
- package/lib/mol-util/number-packing.d.ts +11 -0
- package/lib/mol-util/{float-packing.js → number-packing.js} +7 -14
- package/package.json +1 -1
- package/lib/commonjs/mol-util/float-packing.d.ts +0 -15
- package/lib/mol-util/float-packing.d.ts +0 -15
|
@@ -39,6 +39,7 @@ declare const DefaultViewerOptions: {
|
|
|
39
39
|
pickScale: number | undefined;
|
|
40
40
|
pickPadding: number | undefined;
|
|
41
41
|
enableWboit: boolean | undefined;
|
|
42
|
+
preferWebgl1: boolean | undefined;
|
|
42
43
|
viewportShowExpand: boolean | undefined;
|
|
43
44
|
viewportShowControls: boolean | undefined;
|
|
44
45
|
viewportShowSettings: boolean | undefined;
|
|
@@ -56,6 +56,8 @@
|
|
|
56
56
|
var pixelScale = getParam('pixel-scale', '[^&]+').trim();
|
|
57
57
|
var pickScale = getParam('pick-scale', '[^&]+').trim();
|
|
58
58
|
var pickPadding = getParam('pick-padding', '[^&]+').trim();
|
|
59
|
+
var disableWboit = getParam('disable-wboit', '[^&]+').trim() === '1';
|
|
60
|
+
var preferWebgl1 = getParam('prefer-webgl1', '[^&]+').trim() === '1';
|
|
59
61
|
|
|
60
62
|
molstar.Viewer.create('app', {
|
|
61
63
|
layoutShowControls: !hideControls,
|
|
@@ -69,6 +71,8 @@
|
|
|
69
71
|
pixelScale: parseFloat(pixelScale) || 1,
|
|
70
72
|
pickScale: parseFloat(pickScale) || 0.25,
|
|
71
73
|
pickPadding: isNaN(parseFloat(pickPadding)) ? 1 : parseFloat(pickPadding),
|
|
74
|
+
enableWboit: !disableWboit,
|
|
75
|
+
preferWebgl1: preferWebgl1,
|
|
72
76
|
}).then(viewer => {
|
|
73
77
|
var snapshotId = getParam('snapshot-id', '[^&]+').trim();
|
|
74
78
|
if (snapshotId) viewer.setRemoteSnapshot(snapshotId);
|
package/lib/apps/viewer/index.js
CHANGED
|
@@ -69,6 +69,7 @@ var DefaultViewerOptions = {
|
|
|
69
69
|
pickScale: PluginConfig.General.PickScale.defaultValue,
|
|
70
70
|
pickPadding: PluginConfig.General.PickPadding.defaultValue,
|
|
71
71
|
enableWboit: PluginConfig.General.EnableWboit.defaultValue,
|
|
72
|
+
preferWebgl1: PluginConfig.General.PreferWebGl1.defaultValue,
|
|
72
73
|
viewportShowExpand: PluginConfig.Viewport.ShowExpand.defaultValue,
|
|
73
74
|
viewportShowControls: PluginConfig.Viewport.ShowControls.defaultValue,
|
|
74
75
|
viewportShowSettings: PluginConfig.Viewport.ShowSettings.defaultValue,
|
|
@@ -120,6 +121,7 @@ var Viewer = /** @class */ (function () {
|
|
|
120
121
|
[PluginConfig.General.PickScale, o.pickScale],
|
|
121
122
|
[PluginConfig.General.PickPadding, o.pickPadding],
|
|
122
123
|
[PluginConfig.General.EnableWboit, o.enableWboit],
|
|
124
|
+
[PluginConfig.General.PreferWebGl1, o.preferWebgl1],
|
|
123
125
|
[PluginConfig.Viewport.ShowExpand, o.viewportShowExpand],
|
|
124
126
|
[PluginConfig.Viewport.ShowControls, o.viewportShowControls],
|
|
125
127
|
[PluginConfig.Viewport.ShowSettings, o.viewportShowSettings],
|
|
@@ -39,6 +39,7 @@ declare const DefaultViewerOptions: {
|
|
|
39
39
|
pickScale: number | undefined;
|
|
40
40
|
pickPadding: number | undefined;
|
|
41
41
|
enableWboit: boolean | undefined;
|
|
42
|
+
preferWebgl1: boolean | undefined;
|
|
42
43
|
viewportShowExpand: boolean | undefined;
|
|
43
44
|
viewportShowControls: boolean | undefined;
|
|
44
45
|
viewportShowSettings: boolean | undefined;
|
|
@@ -75,6 +75,7 @@ var DefaultViewerOptions = {
|
|
|
75
75
|
pickScale: config_1.PluginConfig.General.PickScale.defaultValue,
|
|
76
76
|
pickPadding: config_1.PluginConfig.General.PickPadding.defaultValue,
|
|
77
77
|
enableWboit: config_1.PluginConfig.General.EnableWboit.defaultValue,
|
|
78
|
+
preferWebgl1: config_1.PluginConfig.General.PreferWebGl1.defaultValue,
|
|
78
79
|
viewportShowExpand: config_1.PluginConfig.Viewport.ShowExpand.defaultValue,
|
|
79
80
|
viewportShowControls: config_1.PluginConfig.Viewport.ShowControls.defaultValue,
|
|
80
81
|
viewportShowSettings: config_1.PluginConfig.Viewport.ShowSettings.defaultValue,
|
|
@@ -126,6 +127,7 @@ var Viewer = /** @class */ (function () {
|
|
|
126
127
|
[config_1.PluginConfig.General.PickScale, o.pickScale],
|
|
127
128
|
[config_1.PluginConfig.General.PickPadding, o.pickPadding],
|
|
128
129
|
[config_1.PluginConfig.General.EnableWboit, o.enableWboit],
|
|
130
|
+
[config_1.PluginConfig.General.PreferWebGl1, o.preferWebgl1],
|
|
129
131
|
[config_1.PluginConfig.Viewport.ShowExpand, o.viewportShowExpand],
|
|
130
132
|
[config_1.PluginConfig.Viewport.ShowControls, o.viewportShowControls],
|
|
131
133
|
[config_1.PluginConfig.Viewport.ShowSettings, o.viewportShowSettings],
|
|
@@ -24,7 +24,7 @@ require('mol-plugin-ui/skin/light.scss');
|
|
|
24
24
|
var AlphaOrbitalsExample = /** @class */ (function () {
|
|
25
25
|
function AlphaOrbitalsExample() {
|
|
26
26
|
this.params = new rxjs_1.BehaviorSubject({});
|
|
27
|
-
this.state = new rxjs_1.BehaviorSubject({ show: { name: 'orbital', params: { index: 32 } }, isoValue: 1, gpuSurface:
|
|
27
|
+
this.state = new rxjs_1.BehaviorSubject({ show: { name: 'orbital', params: { index: 32 } }, isoValue: 1, gpuSurface: true });
|
|
28
28
|
this.selectors = void 0;
|
|
29
29
|
this.basis = void 0;
|
|
30
30
|
this.currentParams = (0, tslib_1.__assign)({}, this.state.value);
|
|
@@ -17,7 +17,7 @@ var cylinder_1 = require("../../mol-geo/geometry/mesh/builder/cylinder");
|
|
|
17
17
|
var size_data_1 = require("../../mol-geo/geometry/size-data");
|
|
18
18
|
var linear_algebra_1 = require("../../mol-math/linear-algebra");
|
|
19
19
|
var color_1 = require("../../mol-util/color/color");
|
|
20
|
-
var
|
|
20
|
+
var number_packing_1 = require("../../mol-util/number-packing");
|
|
21
21
|
var util_2 = require("../../mol-gl/compute/util");
|
|
22
22
|
var GeoExportName = 'geo-export';
|
|
23
23
|
// avoiding namespace lookup improved performance in Chrome (Aug 2020)
|
|
@@ -29,7 +29,7 @@ var MeshExporter = /** @class */ (function () {
|
|
|
29
29
|
var r = tSize.array[i * 3];
|
|
30
30
|
var g = tSize.array[i * 3 + 1];
|
|
31
31
|
var b = tSize.array[i * 3 + 2];
|
|
32
|
-
return (0,
|
|
32
|
+
return (0, number_packing_1.unpackRGBToInt)(r, g, b) / size_data_1.sizeDataFactor;
|
|
33
33
|
};
|
|
34
34
|
MeshExporter.getSize = function (values, instanceIndex, group) {
|
|
35
35
|
var tSize = values.tSize.ref.value;
|
|
@@ -57,9 +57,9 @@ var MeshExporter = /** @class */ (function () {
|
|
|
57
57
|
var g = groups[i4 + 1];
|
|
58
58
|
var b = groups[i4 + 2];
|
|
59
59
|
if (groups instanceof Float32Array) {
|
|
60
|
-
return (0,
|
|
60
|
+
return (0, number_packing_1.unpackRGBToInt)(r * 255 + 0.5, g * 255 + 0.5, b * 255 + 0.5);
|
|
61
61
|
}
|
|
62
|
-
return (0,
|
|
62
|
+
return (0, number_packing_1.unpackRGBToInt)(r, g, b);
|
|
63
63
|
};
|
|
64
64
|
MeshExporter.getInterpolatedColors = function (webgl, input) {
|
|
65
65
|
var values = input.values, vertexCount = input.vertexCount, vertices = input.vertices, colorType = input.colorType, stride = input.stride;
|
|
@@ -45,9 +45,9 @@ export declare const AssemblySymmetryPresetParams: {
|
|
|
45
45
|
ignoreHydrogens: PD.Base<boolean | undefined>;
|
|
46
46
|
quality: PD.Base<"auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest" | undefined>;
|
|
47
47
|
theme: PD.Base<PD.Normalize<{
|
|
48
|
-
globalName: "uniform" | "occupancy" | "element-index" | "element-symbol" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "entity-source" | "illustrative" | "hydrophobicity" | "model-index" | "operator-hkl" | "partial-charge" | "atom-id" | "entity-id" | undefined;
|
|
48
|
+
globalName: "uniform" | "occupancy" | "element-index" | "element-symbol" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "entity-source" | "illustrative" | "hydrophobicity" | "model-index" | "operator-hkl" | "partial-charge" | "atom-id" | "entity-id" | "volume-value" | undefined;
|
|
49
49
|
carbonColor: "element-symbol" | "chain-id" | "operator-name" | undefined;
|
|
50
|
-
symmetryColor: "uniform" | "occupancy" | "element-index" | "element-symbol" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "entity-source" | "illustrative" | "hydrophobicity" | "model-index" | "operator-hkl" | "partial-charge" | "atom-id" | "entity-id" | undefined;
|
|
50
|
+
symmetryColor: "uniform" | "occupancy" | "element-index" | "element-symbol" | "shape-group" | "uncertainty" | "carbohydrate-symbol" | "chain-id" | "operator-name" | "molecule-type" | "polymer-id" | "polymer-index" | "residue-name" | "secondary-structure" | "sequence-id" | "unit-index" | "entity-source" | "illustrative" | "hydrophobicity" | "model-index" | "operator-hkl" | "partial-charge" | "atom-id" | "entity-id" | "volume-value" | undefined;
|
|
51
51
|
focus: PD.Normalize<{
|
|
52
52
|
name: any;
|
|
53
53
|
params: any;
|
|
@@ -374,7 +374,7 @@ interface Canvas3D {
|
|
|
374
374
|
update(repr?: Representation.Any, keepBoundingSphere?: boolean): void;
|
|
375
375
|
clear(): void;
|
|
376
376
|
syncVisibility(): void;
|
|
377
|
-
requestDraw(
|
|
377
|
+
requestDraw(): void;
|
|
378
378
|
/** Reset the timers, used by "animate" */
|
|
379
379
|
resetTime(t: number): void;
|
|
380
380
|
animate(): void;
|
|
@@ -255,16 +255,24 @@ var Canvas3D;
|
|
|
255
255
|
changed = helper.camera.mark(loci, action) || changed;
|
|
256
256
|
reprRenderObjects.forEach(function (_, _repr) { changed = _repr.mark(loci, action) || changed; });
|
|
257
257
|
}
|
|
258
|
-
if (changed
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
258
|
+
if (changed) {
|
|
259
|
+
if (noDraw) {
|
|
260
|
+
// Even with `noDraw` make sure changes will be rendered.
|
|
261
|
+
// Note that with this calling mark (with or without `noDraw`) multiple times
|
|
262
|
+
// during a JS event loop iteration will only result in a single render call.
|
|
263
|
+
forceNextRender = true;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
scene.update(void 0, true);
|
|
267
|
+
helper.handle.scene.update(void 0, true);
|
|
268
|
+
helper.camera.scene.update(void 0, true);
|
|
269
|
+
var prevPickDirty = pickHelper.dirty;
|
|
270
|
+
draw({ force: true, allowMulti: true });
|
|
271
|
+
pickHelper.dirty = prevPickDirty; // marking does not change picking buffers
|
|
272
|
+
}
|
|
265
273
|
}
|
|
266
274
|
}
|
|
267
|
-
function render(force) {
|
|
275
|
+
function render(force, allowMulti) {
|
|
268
276
|
if (webgl.isContextLost)
|
|
269
277
|
return false;
|
|
270
278
|
var resized = false;
|
|
@@ -288,17 +296,13 @@ var Canvas3D;
|
|
|
288
296
|
stereoCamera.update();
|
|
289
297
|
cam = stereoCamera;
|
|
290
298
|
}
|
|
299
|
+
var ctx = { renderer: renderer, camera: cam, scene: scene, helper: helper };
|
|
291
300
|
if (multi_sample_1.MultiSamplePass.isEnabled(p.multiSample)) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
;
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
multiSampleHelper.render(renderer, cam, scene, helper, true, p.transparentBackground, p);
|
|
298
|
-
}
|
|
301
|
+
var forceOn = !cameraChanged && allowMulti && !controls.props.spin;
|
|
302
|
+
multiSampleHelper.render(ctx, p, true, forceOn);
|
|
299
303
|
}
|
|
300
304
|
else {
|
|
301
|
-
passes.draw.render(
|
|
305
|
+
passes.draw.render(ctx, p, true);
|
|
302
306
|
}
|
|
303
307
|
pickHelper.dirty = true;
|
|
304
308
|
didRender = true;
|
|
@@ -309,15 +313,15 @@ var Canvas3D;
|
|
|
309
313
|
var forceDrawAfterAllCommited = false;
|
|
310
314
|
var currentTime = 0;
|
|
311
315
|
var drawPaused = false;
|
|
312
|
-
function draw(
|
|
316
|
+
function draw(options) {
|
|
313
317
|
if (drawPaused)
|
|
314
318
|
return;
|
|
315
|
-
if (render(!!force) && notifyDidDraw) {
|
|
319
|
+
if (render(!!(options === null || options === void 0 ? void 0 : options.force), !!(options === null || options === void 0 ? void 0 : options.allowMulti)) && notifyDidDraw) {
|
|
316
320
|
didDraw.next((0, now_1.now)() - startTime);
|
|
317
321
|
}
|
|
318
322
|
}
|
|
319
|
-
function requestDraw(
|
|
320
|
-
forceNextRender =
|
|
323
|
+
function requestDraw() {
|
|
324
|
+
forceNextRender = true;
|
|
321
325
|
}
|
|
322
326
|
var animationFrameHandle = 0;
|
|
323
327
|
function tick(t, options) {
|
|
@@ -327,8 +331,8 @@ var Canvas3D;
|
|
|
327
331
|
if (options === null || options === void 0 ? void 0 : options.manualDraw) {
|
|
328
332
|
return;
|
|
329
333
|
}
|
|
330
|
-
draw(
|
|
331
|
-
if (!camera.transition.inTransition && !webgl.isContextLost) {
|
|
334
|
+
draw();
|
|
335
|
+
if (!camera.transition.inTransition && !controls.props.spin && !webgl.isContextLost) {
|
|
332
336
|
interactionHelper.tick(currentTime);
|
|
333
337
|
}
|
|
334
338
|
}
|
|
@@ -365,7 +369,7 @@ var Canvas3D;
|
|
|
365
369
|
if (forceDrawAfterAllCommited) {
|
|
366
370
|
if (helper.debug.isEnabled)
|
|
367
371
|
helper.debug.update();
|
|
368
|
-
draw(true);
|
|
372
|
+
draw({ force: true });
|
|
369
373
|
forceDrawAfterAllCommited = false;
|
|
370
374
|
}
|
|
371
375
|
commited.next((0, now_1.now)());
|
|
@@ -534,11 +538,11 @@ var Canvas3D;
|
|
|
534
538
|
}
|
|
535
539
|
var contextRestoredSub = contextRestored.subscribe(function () {
|
|
536
540
|
pickHelper.dirty = true;
|
|
537
|
-
draw(true);
|
|
541
|
+
draw({ force: true });
|
|
538
542
|
// Unclear why, but in Chrome with wboit enabled the first `draw` only clears
|
|
539
543
|
// the drawingBuffer. Note that in Firefox the drawingBuffer is preserved after
|
|
540
544
|
// context loss so it is unclear if it behaves the same.
|
|
541
|
-
draw(true);
|
|
545
|
+
draw({ force: true });
|
|
542
546
|
});
|
|
543
547
|
var resized = new rxjs_1.BehaviorSubject(0);
|
|
544
548
|
function handleResize(draw) {
|
|
@@ -547,7 +551,7 @@ var Canvas3D;
|
|
|
547
551
|
updateViewport();
|
|
548
552
|
syncViewport();
|
|
549
553
|
if (draw)
|
|
550
|
-
requestDraw(
|
|
554
|
+
requestDraw();
|
|
551
555
|
resized.next(+new Date());
|
|
552
556
|
}
|
|
553
557
|
return {
|
|
@@ -572,7 +576,7 @@ var Canvas3D;
|
|
|
572
576
|
reprRenderObjects.clear();
|
|
573
577
|
scene.clear();
|
|
574
578
|
helper.debug.clear();
|
|
575
|
-
requestDraw(
|
|
579
|
+
requestDraw();
|
|
576
580
|
reprCount.next(reprRenderObjects.size);
|
|
577
581
|
},
|
|
578
582
|
syncVisibility: function () {
|
|
@@ -584,7 +588,7 @@ var Canvas3D;
|
|
|
584
588
|
if (helper.debug.isEnabled)
|
|
585
589
|
helper.debug.update();
|
|
586
590
|
}
|
|
587
|
-
requestDraw(
|
|
591
|
+
requestDraw();
|
|
588
592
|
},
|
|
589
593
|
requestDraw: requestDraw,
|
|
590
594
|
tick: tick,
|
|
@@ -681,7 +685,7 @@ var Canvas3D;
|
|
|
681
685
|
p.camera.stereo.name = 'off';
|
|
682
686
|
}
|
|
683
687
|
if (!doNotRequestDraw) {
|
|
684
|
-
requestDraw(
|
|
688
|
+
requestDraw();
|
|
685
689
|
}
|
|
686
690
|
},
|
|
687
691
|
getImagePass: function (props) {
|
|
@@ -14,6 +14,17 @@ import { Helper } from '../helper/helper';
|
|
|
14
14
|
import { StereoCamera } from '../camera/stereo';
|
|
15
15
|
import { PostprocessingPass, PostprocessingProps } from './postprocessing';
|
|
16
16
|
import { MarkingProps } from './marking';
|
|
17
|
+
declare type Props = {
|
|
18
|
+
postprocessing: PostprocessingProps;
|
|
19
|
+
marking: MarkingProps;
|
|
20
|
+
transparentBackground: boolean;
|
|
21
|
+
};
|
|
22
|
+
declare type RenderContext = {
|
|
23
|
+
renderer: Renderer;
|
|
24
|
+
camera: Camera | StereoCamera;
|
|
25
|
+
scene: Scene;
|
|
26
|
+
helper: Helper;
|
|
27
|
+
};
|
|
17
28
|
export declare class DrawPass {
|
|
18
29
|
private webgl;
|
|
19
30
|
private readonly drawTarget;
|
|
@@ -40,6 +51,7 @@ export declare class DrawPass {
|
|
|
40
51
|
private _renderWboit;
|
|
41
52
|
private _renderBlended;
|
|
42
53
|
private _render;
|
|
43
|
-
render(
|
|
54
|
+
render(ctx: RenderContext, props: Props, toDrawingBuffer: boolean): void;
|
|
44
55
|
getColorTarget(postprocessingProps: PostprocessingProps): RenderTarget;
|
|
45
56
|
}
|
|
57
|
+
export {};
|
|
@@ -197,23 +197,23 @@ var DrawPass = /** @class */ (function () {
|
|
|
197
197
|
}
|
|
198
198
|
renderer.renderBlendedTransparent(scene.primitives, camera, null);
|
|
199
199
|
};
|
|
200
|
-
DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer,
|
|
200
|
+
DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer, props) {
|
|
201
201
|
var volumeRendering = scene.volumes.renderables.length > 0;
|
|
202
|
-
var postprocessingEnabled = postprocessing_1.PostprocessingPass.isEnabled(
|
|
203
|
-
var antialiasingEnabled = postprocessing_1.AntialiasingPass.isEnabled(
|
|
204
|
-
var markingEnabled = marking_1.MarkingPass.isEnabled(
|
|
202
|
+
var postprocessingEnabled = postprocessing_1.PostprocessingPass.isEnabled(props.postprocessing);
|
|
203
|
+
var antialiasingEnabled = postprocessing_1.AntialiasingPass.isEnabled(props.postprocessing);
|
|
204
|
+
var markingEnabled = marking_1.MarkingPass.isEnabled(props.marking);
|
|
205
205
|
var _a = camera.viewport, x = _a.x, y = _a.y, width = _a.width, height = _a.height;
|
|
206
206
|
renderer.setViewport(x, y, width, height);
|
|
207
207
|
renderer.update(camera);
|
|
208
|
-
if (transparentBackground && !antialiasingEnabled && toDrawingBuffer) {
|
|
208
|
+
if (props.transparentBackground && !antialiasingEnabled && toDrawingBuffer) {
|
|
209
209
|
this.drawTarget.bind();
|
|
210
210
|
renderer.clear(false);
|
|
211
211
|
}
|
|
212
212
|
if (this.wboitEnabled) {
|
|
213
|
-
this._renderWboit(renderer, camera, scene, transparentBackground,
|
|
213
|
+
this._renderWboit(renderer, camera, scene, props.transparentBackground, props.postprocessing);
|
|
214
214
|
}
|
|
215
215
|
else {
|
|
216
|
-
this._renderBlended(renderer, camera, scene, !volumeRendering && !postprocessingEnabled && !antialiasingEnabled && toDrawingBuffer, transparentBackground,
|
|
216
|
+
this._renderBlended(renderer, camera, scene, !volumeRendering && !postprocessingEnabled && !antialiasingEnabled && toDrawingBuffer, props.transparentBackground, props.postprocessing);
|
|
217
217
|
}
|
|
218
218
|
if (postprocessingEnabled) {
|
|
219
219
|
this.postprocessing.target.bind();
|
|
@@ -225,7 +225,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
225
225
|
this.drawTarget.bind();
|
|
226
226
|
}
|
|
227
227
|
if (markingEnabled) {
|
|
228
|
-
var markingDepthTest =
|
|
228
|
+
var markingDepthTest = props.marking.ghostEdgeStrength < 1;
|
|
229
229
|
if (markingDepthTest) {
|
|
230
230
|
this.marking.depthTarget.bind();
|
|
231
231
|
renderer.clear(false);
|
|
@@ -234,7 +234,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
234
234
|
this.marking.maskTarget.bind();
|
|
235
235
|
renderer.clear(false);
|
|
236
236
|
renderer.renderMarkingMask(scene.primitives, camera, markingDepthTest ? this.marking.depthTarget.texture : null);
|
|
237
|
-
this.marking.update(
|
|
237
|
+
this.marking.update(props.marking);
|
|
238
238
|
this.marking.render(camera.viewport, postprocessingEnabled ? this.postprocessing.target : this.colorTarget);
|
|
239
239
|
}
|
|
240
240
|
if (helper.debug.isEnabled) {
|
|
@@ -250,7 +250,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
250
250
|
renderer.renderBlended(helper.camera.scene, helper.camera.camera, null);
|
|
251
251
|
}
|
|
252
252
|
if (antialiasingEnabled) {
|
|
253
|
-
this.antialiasing.render(camera, toDrawingBuffer,
|
|
253
|
+
this.antialiasing.render(camera, toDrawingBuffer, props.postprocessing);
|
|
254
254
|
}
|
|
255
255
|
else if (toDrawingBuffer) {
|
|
256
256
|
this.drawTarget.bind();
|
|
@@ -264,16 +264,17 @@ var DrawPass = /** @class */ (function () {
|
|
|
264
264
|
}
|
|
265
265
|
this.webgl.gl.flush();
|
|
266
266
|
};
|
|
267
|
-
DrawPass.prototype.render = function (
|
|
268
|
-
renderer.
|
|
267
|
+
DrawPass.prototype.render = function (ctx, props, toDrawingBuffer) {
|
|
268
|
+
var renderer = ctx.renderer, camera = ctx.camera, scene = ctx.scene, helper = ctx.helper;
|
|
269
|
+
renderer.setTransparentBackground(props.transparentBackground);
|
|
269
270
|
renderer.setDrawingBufferSize(this.colorTarget.getWidth(), this.colorTarget.getHeight());
|
|
270
271
|
renderer.setPixelRatio(this.webgl.pixelRatio);
|
|
271
272
|
if (stereo_1.StereoCamera.is(camera)) {
|
|
272
|
-
this._render(renderer, camera.left, scene, helper, toDrawingBuffer,
|
|
273
|
-
this._render(renderer, camera.right, scene, helper, toDrawingBuffer,
|
|
273
|
+
this._render(renderer, camera.left, scene, helper, toDrawingBuffer, props);
|
|
274
|
+
this._render(renderer, camera.right, scene, helper, toDrawingBuffer, props);
|
|
274
275
|
}
|
|
275
276
|
else {
|
|
276
|
-
this._render(renderer, camera, scene, helper, toDrawingBuffer,
|
|
277
|
+
this._render(renderer, camera, scene, helper, toDrawingBuffer, props);
|
|
277
278
|
}
|
|
278
279
|
};
|
|
279
280
|
DrawPass.prototype.getColorTarget = function (postprocessingProps) {
|
|
@@ -76,12 +76,13 @@ var ImagePass = /** @class */ (function () {
|
|
|
76
76
|
camera_1.Camera.copySnapshot(this._camera.state, this.camera.state);
|
|
77
77
|
util_1.Viewport.set(this._camera.viewport, 0, 0, this._width, this._height);
|
|
78
78
|
this._camera.update();
|
|
79
|
+
var ctx = { renderer: this.renderer, camera: this._camera, scene: this.scene, helper: this.helper };
|
|
79
80
|
if (multi_sample_1.MultiSamplePass.isEnabled(this.props.multiSample)) {
|
|
80
|
-
this.multiSampleHelper.render(
|
|
81
|
+
this.multiSampleHelper.render(ctx, this.props, false);
|
|
81
82
|
this._colorTarget = this.multiSamplePass.colorTarget;
|
|
82
83
|
}
|
|
83
84
|
else {
|
|
84
|
-
this.drawPass.render(
|
|
85
|
+
this.drawPass.render(ctx, this.props, false);
|
|
85
86
|
this._colorTarget = this.drawPass.getColorTarget(this.props.postprocessing);
|
|
86
87
|
}
|
|
87
88
|
};
|
|
@@ -20,7 +20,7 @@ var overlay_frag_1 = require("../../mol-gl/shader/marking/overlay.frag");
|
|
|
20
20
|
var color_1 = require("../../mol-util/color");
|
|
21
21
|
var edge_frag_1 = require("../../mol-gl/shader/marking/edge.frag");
|
|
22
22
|
exports.MarkingParams = {
|
|
23
|
-
enabled: param_definition_1.ParamDefinition.Boolean(
|
|
23
|
+
enabled: param_definition_1.ParamDefinition.Boolean(true),
|
|
24
24
|
highlightEdgeColor: param_definition_1.ParamDefinition.Color(color_1.Color.darken(color_1.Color.fromNormalizedRgb(1.0, 0.4, 0.6), 1.0)),
|
|
25
25
|
selectEdgeColor: param_definition_1.ParamDefinition.Color(color_1.Color.darken(color_1.Color.fromNormalizedRgb(0.2, 1.0, 0.1), 1.0)),
|
|
26
26
|
edgeScale: param_definition_1.ParamDefinition.Numeric(1, { min: 1, max: 3, step: 1 }, { description: 'Thickness of the edge.' }),
|
|
@@ -23,6 +23,13 @@ declare type Props = {
|
|
|
23
23
|
multiSample: MultiSampleProps;
|
|
24
24
|
postprocessing: PostprocessingProps;
|
|
25
25
|
marking: MarkingProps;
|
|
26
|
+
transparentBackground: boolean;
|
|
27
|
+
};
|
|
28
|
+
declare type RenderContext = {
|
|
29
|
+
renderer: Renderer;
|
|
30
|
+
camera: Camera | StereoCamera;
|
|
31
|
+
scene: Scene;
|
|
32
|
+
helper: Helper;
|
|
26
33
|
};
|
|
27
34
|
export declare class MultiSamplePass {
|
|
28
35
|
private webgl;
|
|
@@ -34,7 +41,7 @@ export declare class MultiSamplePass {
|
|
|
34
41
|
private compose;
|
|
35
42
|
constructor(webgl: WebGLContext, drawPass: DrawPass);
|
|
36
43
|
syncSize(): void;
|
|
37
|
-
render(sampleIndex: number,
|
|
44
|
+
render(sampleIndex: number, ctx: RenderContext, props: Props, toDrawingBuffer: boolean, forceOn: boolean): number;
|
|
38
45
|
private bindOutputTarget;
|
|
39
46
|
private renderMultiSample;
|
|
40
47
|
private renderTemporalMultiSample;
|
|
@@ -44,7 +51,7 @@ export declare class MultiSampleHelper {
|
|
|
44
51
|
private sampleIndex;
|
|
45
52
|
update(changed: boolean, props: MultiSampleProps): boolean;
|
|
46
53
|
/** Return `true` while more samples are needed */
|
|
47
|
-
render(
|
|
54
|
+
render(ctx: RenderContext, props: Props, toDrawingBuffer: boolean, forceOn?: boolean): boolean;
|
|
48
55
|
constructor(multiSamplePass: MultiSamplePass);
|
|
49
56
|
}
|
|
50
57
|
export {};
|
|
@@ -58,13 +58,13 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
58
58
|
mol_util_1.ValueCell.update(this.compose.values.uTexSize, linear_algebra_1.Vec2.set(this.compose.values.uTexSize.ref.value, width, height));
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
|
-
MultiSamplePass.prototype.render = function (sampleIndex,
|
|
62
|
-
if (props.multiSample.mode === 'temporal') {
|
|
63
|
-
return this.renderTemporalMultiSample(sampleIndex,
|
|
61
|
+
MultiSamplePass.prototype.render = function (sampleIndex, ctx, props, toDrawingBuffer, forceOn) {
|
|
62
|
+
if (props.multiSample.mode === 'temporal' && !forceOn) {
|
|
63
|
+
return this.renderTemporalMultiSample(sampleIndex, ctx, props, toDrawingBuffer);
|
|
64
64
|
}
|
|
65
65
|
else {
|
|
66
|
-
this.renderMultiSample(
|
|
67
|
-
return
|
|
66
|
+
this.renderMultiSample(ctx, toDrawingBuffer, props);
|
|
67
|
+
return -2;
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
MultiSamplePass.prototype.bindOutputTarget = function (toDrawingBuffer) {
|
|
@@ -75,7 +75,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
75
75
|
this.colorTarget.bind();
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
|
-
MultiSamplePass.prototype.renderMultiSample = function (
|
|
78
|
+
MultiSamplePass.prototype.renderMultiSample = function (ctx, toDrawingBuffer, props) {
|
|
79
|
+
var camera = ctx.camera;
|
|
79
80
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
80
81
|
var gl = webgl.gl, state = webgl.state;
|
|
81
82
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
@@ -103,7 +104,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
103
104
|
var sampleWeight = baseSampleWeight + roundingRange * uniformCenteredDistribution;
|
|
104
105
|
mol_util_1.ValueCell.update(compose.values.uWeight, sampleWeight);
|
|
105
106
|
// render scene
|
|
106
|
-
drawPass.render(
|
|
107
|
+
drawPass.render(ctx, props, false);
|
|
107
108
|
// compose rendered scene with compose target
|
|
108
109
|
composeTarget.bind();
|
|
109
110
|
state.enable(gl.BLEND);
|
|
@@ -130,7 +131,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
130
131
|
camera.viewOffset.enabled = false;
|
|
131
132
|
camera.update();
|
|
132
133
|
};
|
|
133
|
-
MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex,
|
|
134
|
+
MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex, ctx, props, toDrawingBuffer) {
|
|
135
|
+
var camera = ctx.camera;
|
|
134
136
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, holdTarget = _a.holdTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
135
137
|
var gl = webgl.gl, state = webgl.state;
|
|
136
138
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
@@ -144,7 +146,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
144
146
|
var _b = camera.viewport, x = _b.x, y = _b.y, width = _b.width, height = _b.height;
|
|
145
147
|
var sampleWeight = 1.0 / offsetList.length;
|
|
146
148
|
if (sampleIndex === -1) {
|
|
147
|
-
drawPass.render(
|
|
149
|
+
drawPass.render(ctx, props, false);
|
|
148
150
|
mol_util_1.ValueCell.update(compose.values.uWeight, 1.0);
|
|
149
151
|
mol_util_1.ValueCell.update(compose.values.tColor, drawPass.getColorTarget(props.postprocessing).texture);
|
|
150
152
|
compose.update();
|
|
@@ -170,7 +172,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
170
172
|
camera_1.Camera.setViewOffset(camera.viewOffset, width, height, offset[0], offset[1], width, height);
|
|
171
173
|
camera.update();
|
|
172
174
|
// render scene
|
|
173
|
-
drawPass.render(
|
|
175
|
+
drawPass.render(ctx, props, false);
|
|
174
176
|
// compose rendered scene with compose target
|
|
175
177
|
composeTarget.bind();
|
|
176
178
|
state.enable(gl.BLEND);
|
|
@@ -267,8 +269,8 @@ var MultiSampleHelper = /** @class */ (function () {
|
|
|
267
269
|
return props.mode === 'temporal' ? this.sampleIndex !== -2 : false;
|
|
268
270
|
};
|
|
269
271
|
/** Return `true` while more samples are needed */
|
|
270
|
-
MultiSampleHelper.prototype.render = function (
|
|
271
|
-
this.sampleIndex = this.multiSamplePass.render(this.sampleIndex,
|
|
272
|
+
MultiSampleHelper.prototype.render = function (ctx, props, toDrawingBuffer, forceOn) {
|
|
273
|
+
this.sampleIndex = this.multiSamplePass.render(this.sampleIndex, ctx, props, toDrawingBuffer, !!forceOn);
|
|
272
274
|
return this.sampleIndex < 0;
|
|
273
275
|
};
|
|
274
276
|
return MultiSampleHelper;
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.PickHelper = exports.PickPass = void 0;
|
|
9
9
|
var linear_algebra_1 = require("../../mol-math/linear-algebra");
|
|
10
10
|
var misc_1 = require("../../mol-math/misc");
|
|
11
|
-
var
|
|
11
|
+
var number_packing_1 = require("../../mol-util/number-packing");
|
|
12
12
|
var stereo_1 = require("../camera/stereo");
|
|
13
13
|
var util_1 = require("../camera/util");
|
|
14
14
|
var util_2 = require("../camera/util");
|
|
@@ -127,11 +127,11 @@ var PickHelper = /** @class */ (function () {
|
|
|
127
127
|
PickHelper.prototype.getDepth = function (x, y) {
|
|
128
128
|
var idx = this.getBufferIdx(x, y);
|
|
129
129
|
var b = this.depthBuffer;
|
|
130
|
-
return (0,
|
|
130
|
+
return (0, number_packing_1.unpackRGBAToDepth)(b[idx], b[idx + 1], b[idx + 2], b[idx + 3]);
|
|
131
131
|
};
|
|
132
132
|
PickHelper.prototype.getId = function (x, y, buffer) {
|
|
133
133
|
var idx = this.getBufferIdx(x, y);
|
|
134
|
-
return (0,
|
|
134
|
+
return (0, number_packing_1.unpackRGBToInt)(buffer[idx], buffer[idx + 1], buffer[idx + 2]);
|
|
135
135
|
};
|
|
136
136
|
PickHelper.prototype.render = function (camera) {
|
|
137
137
|
var _a = this, pickX = _a.pickX, pickY = _a.pickY, pickWidth = _a.pickWidth, pickHeight = _a.pickHeight, halfPickWidth = _a.halfPickWidth;
|
|
@@ -11,7 +11,7 @@ import { Vec2, Vec3, Vec4 } from '../../mol-math/linear-algebra';
|
|
|
11
11
|
import { LocationIterator } from '../util/location-iterator';
|
|
12
12
|
import { ColorTheme } from '../../mol-theme/color';
|
|
13
13
|
import { Texture } from '../../mol-gl/webgl/texture';
|
|
14
|
-
export declare type ColorType = 'uniform' | 'instance' | 'group' | 'groupInstance' | 'vertex' | 'vertexInstance' | 'volume' | 'volumeInstance';
|
|
14
|
+
export declare type ColorType = 'uniform' | 'instance' | 'group' | 'groupInstance' | 'vertex' | 'vertexInstance' | 'volume' | 'volumeInstance' | 'direct';
|
|
15
15
|
export declare type ColorData = {
|
|
16
16
|
uColor: ValueCell<Vec3>;
|
|
17
17
|
tColor: ValueCell<TextureImage<Uint8Array>>;
|
|
@@ -36,6 +36,7 @@ function _createColors(locationIt, positionIt, colorTheme, colorData) {
|
|
|
36
36
|
case 'vertexInstance': return createVertexInstanceColor(positionIt, colorTheme.color, colorData);
|
|
37
37
|
case 'volume': return createGridColor(colorTheme.grid, 'volume', colorData);
|
|
38
38
|
case 'volumeInstance': return createGridColor(colorTheme.grid, 'volumeInstance', colorData);
|
|
39
|
+
case 'direct': return createDirectColor(colorData);
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
function updatePaletteTexture(palette, cell) {
|
|
@@ -210,4 +211,25 @@ function createGridColor(grid, type, colorData) {
|
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
213
|
exports.createGridColor = createGridColor;
|
|
214
|
+
//
|
|
215
|
+
/** Creates direct color */
|
|
216
|
+
function createDirectColor(colorData) {
|
|
217
|
+
if (colorData) {
|
|
218
|
+
mol_util_1.ValueCell.updateIfChanged(colorData.dColorType, 'direct');
|
|
219
|
+
return colorData;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
return {
|
|
223
|
+
uColor: mol_util_1.ValueCell.create((0, linear_algebra_1.Vec3)()),
|
|
224
|
+
tColor: mol_util_1.ValueCell.create({ array: new Uint8Array(3), width: 1, height: 1 }),
|
|
225
|
+
tColorGrid: mol_util_1.ValueCell.create((0, texture_1.createNullTexture)()),
|
|
226
|
+
tPalette: mol_util_1.ValueCell.create({ array: new Uint8Array(3), width: 1, height: 1 }),
|
|
227
|
+
uColorTexDim: mol_util_1.ValueCell.create(linear_algebra_1.Vec2.create(1, 1)),
|
|
228
|
+
uColorGridDim: mol_util_1.ValueCell.create(linear_algebra_1.Vec3.create(1, 1, 1)),
|
|
229
|
+
uColorGridTransform: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.create(0, 0, 0, 1)),
|
|
230
|
+
dColorType: mol_util_1.ValueCell.create('direct'),
|
|
231
|
+
dUsePalette: mol_util_1.ValueCell.create(false),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
213
235
|
//# sourceMappingURL=color-data.js.map
|
|
@@ -156,7 +156,7 @@ var Cylinders;
|
|
|
156
156
|
var padding = (0, size_data_1.getMaxSize)(size) * props.sizeFactor;
|
|
157
157
|
var invariantBoundingSphere = geometry_1.Sphere3D.clone(cylinders.boundingSphere);
|
|
158
158
|
var boundingSphere = (0, util_2.calculateTransformBoundingSphere)(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
|
|
159
|
-
return (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({ aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude) });
|
|
159
|
+
return (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({ dGeometryType: mol_util_1.ValueCell.create('cylinders'), aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: mol_util_1.ValueCell.create(boundingSphere), invariantBoundingSphere: mol_util_1.ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: mol_util_1.ValueCell.create(linear_algebra_1.Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: mol_util_1.ValueCell.create(padding) }), base_1.BaseGeometry.createValues(props, counts)), { uSizeFactor: mol_util_1.ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: mol_util_1.ValueCell.create(props.doubleSided), dIgnoreLight: mol_util_1.ValueCell.create(props.ignoreLight), dXrayShaded: mol_util_1.ValueCell.create(props.xrayShaded), uBumpFrequency: mol_util_1.ValueCell.create(props.bumpFrequency), uBumpAmplitude: mol_util_1.ValueCell.create(props.bumpAmplitude) });
|
|
160
160
|
}
|
|
161
161
|
function createValuesSimple(cylinders, props, colorValue, sizeValue, transform) {
|
|
162
162
|
var s = base_1.BaseGeometry.createSimple(colorValue, sizeValue, transform);
|