molstar 3.6.1 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/viewer/molstar.css +1 -1
- package/build/viewer/molstar.js +1 -1
- package/lib/commonjs/examples/alpha-orbitals/index.js +20 -15
- package/lib/commonjs/extensions/anvil/behavior.d.ts +1 -1
- package/lib/commonjs/extensions/anvil/representation.d.ts +4 -4
- package/lib/commonjs/extensions/cellpack/representation.d.ts +1 -1
- package/lib/commonjs/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -1
- package/lib/commonjs/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -1
- package/lib/commonjs/extensions/rcsb/validation-report/representation.d.ts +5 -5
- package/lib/commonjs/mol-canvas3d/canvas3d.d.ts +2 -2
- package/lib/commonjs/mol-canvas3d/helper/camera-helper.d.ts +1 -1
- package/lib/commonjs/mol-canvas3d/helper/handle-helper.d.ts +1 -1
- package/lib/commonjs/mol-canvas3d/helper/helper.d.ts +2 -2
- package/lib/commonjs/mol-canvas3d/passes/image.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/color-data.d.ts +2 -8
- package/lib/commonjs/mol-geo/geometry/color-data.js +16 -3
- package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/cylinders/cylinders.js +3 -2
- package/lib/commonjs/mol-geo/geometry/mesh/mesh.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/mesh/mesh.js +3 -2
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/spheres/spheres.js +3 -2
- package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +1 -1
- package/lib/commonjs/mol-geo/geometry/texture-mesh/texture-mesh.js +15 -4
- package/lib/commonjs/mol-gl/renderable/cylinders.d.ts +2 -1
- package/lib/commonjs/mol-gl/renderable/cylinders.js +2 -2
- package/lib/commonjs/mol-gl/renderable/mesh.d.ts +2 -1
- package/lib/commonjs/mol-gl/renderable/mesh.js +2 -2
- package/lib/commonjs/mol-gl/renderable/spheres.d.ts +2 -1
- package/lib/commonjs/mol-gl/renderable/spheres.js +2 -2
- package/lib/commonjs/mol-gl/renderable/texture-mesh.d.ts +2 -1
- package/lib/commonjs/mol-gl/renderable/texture-mesh.js +2 -2
- package/lib/commonjs/mol-gl/renderer.js +54 -23
- package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/apply-interior-color.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/check-picking-alpha.glsl.js +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
- package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
- package/lib/commonjs/mol-io/writer/ligand-encoder.d.ts +4 -2
- package/lib/commonjs/mol-io/writer/ligand-encoder.js +9 -4
- package/lib/commonjs/mol-io/writer/mol/encoder.js +16 -4
- package/lib/commonjs/mol-io/writer/mol2/encoder.js +17 -4
- package/lib/commonjs/mol-model-formats/shape/ply.d.ts +2 -2
- package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -1
- package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -1
- package/lib/commonjs/mol-model-props/computed/representations/interactions.d.ts +3 -3
- package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -4
- package/lib/commonjs/mol-plugin/behavior/dynamic/volume-streaming/util.js +0 -1
- package/lib/commonjs/mol-plugin/commands.d.ts +1 -1
- package/lib/commonjs/mol-plugin/util/viewport-screenshot.d.ts +3 -3
- package/lib/commonjs/mol-plugin-state/transforms/representation.d.ts +6 -6
- package/lib/commonjs/mol-plugin-ui/base.d.ts +3 -1
- package/lib/commonjs/mol-plugin-ui/controls/color.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/controls/common.d.ts +2 -0
- package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
- package/lib/commonjs/mol-plugin-ui/hooks/use-behavior.js +21 -7
- package/lib/commonjs/mol-plugin-ui/plugin.d.ts +2 -0
- package/lib/commonjs/mol-plugin-ui/plugin.js +2 -2
- package/lib/commonjs/mol-plugin-ui/spec.d.ts +1 -0
- package/lib/commonjs/mol-plugin-ui/viewport/help.d.ts +4 -1
- package/lib/commonjs/mol-repr/shape/loci/angle.d.ts +1 -1
- package/lib/commonjs/mol-repr/shape/loci/dihedral.d.ts +1 -1
- package/lib/commonjs/mol-repr/shape/loci/orientation.d.ts +1 -1
- package/lib/commonjs/mol-repr/shape/loci/plane.d.ts +1 -1
- package/lib/commonjs/mol-repr/shape/model/unitcell.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/complex-visual.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/params.d.ts +4 -4
- package/lib/commonjs/mol-repr/structure/registry.d.ts +10 -10
- package/lib/commonjs/mol-repr/structure/representation/backbone.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/ball-and-stick.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/carbohydrate.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/cartoon.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/ellipsoid.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/gaussian-surface.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/molecular-surface.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/orientation.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/putty.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/representation/spacefill.d.ts +3 -3
- package/lib/commonjs/mol-repr/structure/units-visual.d.ts +4 -4
- package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/element-sphere.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -4
- package/lib/commonjs/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
- package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
- package/lib/commonjs/mol-repr/util.d.ts +1 -1
- package/lib/commonjs/mol-repr/util.js +1 -1
- package/lib/commonjs/mol-repr/volume/isosurface.d.ts +5 -5
- package/lib/commonjs/mol-repr/volume/registry.d.ts +1 -1
- package/lib/commonjs/mol-theme/color.d.ts +9 -2
- package/lib/commonjs/mol-theme/color.js +1 -1
- package/lib/commonjs/servers/model/server/query.js +1 -3
- package/lib/commonjs/servers/model/version.d.ts +1 -1
- package/lib/commonjs/servers/model/version.js +1 -1
- package/lib/examples/alpha-orbitals/index.js +20 -15
- package/lib/extensions/anvil/behavior.d.ts +1 -1
- package/lib/extensions/anvil/representation.d.ts +4 -4
- package/lib/extensions/cellpack/representation.d.ts +1 -1
- package/lib/extensions/dnatco/confal-pyramids/representation.d.ts +3 -3
- package/lib/extensions/rcsb/assembly-symmetry/behavior.d.ts +1 -1
- package/lib/extensions/rcsb/assembly-symmetry/representation.d.ts +1 -1
- package/lib/extensions/rcsb/validation-report/representation.d.ts +5 -5
- package/lib/mol-canvas3d/canvas3d.d.ts +2 -2
- package/lib/mol-canvas3d/helper/camera-helper.d.ts +1 -1
- package/lib/mol-canvas3d/helper/handle-helper.d.ts +1 -1
- package/lib/mol-canvas3d/helper/helper.d.ts +2 -2
- package/lib/mol-canvas3d/passes/image.d.ts +1 -1
- package/lib/mol-geo/geometry/color-data.d.ts +2 -8
- package/lib/mol-geo/geometry/color-data.js +16 -3
- package/lib/mol-geo/geometry/cylinders/cylinders.d.ts +1 -1
- package/lib/mol-geo/geometry/cylinders/cylinders.js +3 -2
- package/lib/mol-geo/geometry/mesh/mesh.d.ts +1 -1
- package/lib/mol-geo/geometry/mesh/mesh.js +3 -2
- package/lib/mol-geo/geometry/spheres/spheres.d.ts +1 -1
- package/lib/mol-geo/geometry/spheres/spheres.js +3 -2
- package/lib/mol-geo/geometry/texture-mesh/texture-mesh.d.ts +1 -1
- package/lib/mol-geo/geometry/texture-mesh/texture-mesh.js +15 -4
- package/lib/mol-gl/renderable/cylinders.d.ts +2 -1
- package/lib/mol-gl/renderable/cylinders.js +2 -2
- package/lib/mol-gl/renderable/mesh.d.ts +2 -1
- package/lib/mol-gl/renderable/mesh.js +2 -2
- package/lib/mol-gl/renderable/spheres.d.ts +2 -1
- package/lib/mol-gl/renderable/spheres.js +2 -2
- package/lib/mol-gl/renderable/texture-mesh.d.ts +2 -1
- package/lib/mol-gl/renderable/texture-mesh.js +2 -2
- package/lib/mol-gl/renderer.js +54 -23
- package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/apply-interior-color.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/check-picking-alpha.glsl.js +1 -1
- package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
- package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
- package/lib/mol-io/writer/ligand-encoder.d.ts +4 -2
- package/lib/mol-io/writer/ligand-encoder.js +9 -4
- package/lib/mol-io/writer/mol/encoder.js +16 -4
- package/lib/mol-io/writer/mol2/encoder.js +17 -4
- package/lib/mol-model-formats/shape/ply.d.ts +2 -2
- package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.d.ts +1 -1
- package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.d.ts +1 -1
- package/lib/mol-model-props/computed/representations/interactions.d.ts +3 -3
- package/lib/mol-model-props/integrative/cross-link-restraint/representation.d.ts +4 -4
- package/lib/mol-plugin/behavior/dynamic/volume-streaming/util.js +0 -1
- package/lib/mol-plugin/commands.d.ts +1 -1
- package/lib/mol-plugin/util/viewport-screenshot.d.ts +3 -3
- package/lib/mol-plugin/version.js +2 -2
- package/lib/mol-plugin-state/transforms/representation.d.ts +6 -6
- package/lib/mol-plugin-ui/base.d.ts +3 -1
- package/lib/mol-plugin-ui/controls/color.d.ts +1 -1
- package/lib/mol-plugin-ui/controls/common.d.ts +2 -0
- package/lib/mol-plugin-ui/hooks/use-behavior.d.ts +1 -1
- package/lib/mol-plugin-ui/hooks/use-behavior.js +20 -7
- package/lib/mol-plugin-ui/plugin.d.ts +2 -0
- package/lib/mol-plugin-ui/plugin.js +2 -2
- package/lib/mol-plugin-ui/spec.d.ts +1 -0
- package/lib/mol-plugin-ui/viewport/help.d.ts +4 -1
- package/lib/mol-repr/shape/loci/angle.d.ts +1 -1
- package/lib/mol-repr/shape/loci/dihedral.d.ts +1 -1
- package/lib/mol-repr/shape/loci/orientation.d.ts +1 -1
- package/lib/mol-repr/shape/loci/plane.d.ts +1 -1
- package/lib/mol-repr/shape/model/unitcell.d.ts +1 -1
- package/lib/mol-repr/structure/complex-visual.d.ts +3 -3
- package/lib/mol-repr/structure/params.d.ts +4 -4
- package/lib/mol-repr/structure/registry.d.ts +10 -10
- package/lib/mol-repr/structure/representation/backbone.d.ts +3 -3
- package/lib/mol-repr/structure/representation/ball-and-stick.d.ts +3 -3
- package/lib/mol-repr/structure/representation/carbohydrate.d.ts +3 -3
- package/lib/mol-repr/structure/representation/cartoon.d.ts +3 -3
- package/lib/mol-repr/structure/representation/ellipsoid.d.ts +3 -3
- package/lib/mol-repr/structure/representation/gaussian-surface.d.ts +3 -3
- package/lib/mol-repr/structure/representation/molecular-surface.d.ts +3 -3
- package/lib/mol-repr/structure/representation/orientation.d.ts +3 -3
- package/lib/mol-repr/structure/representation/putty.d.ts +3 -3
- package/lib/mol-repr/structure/representation/spacefill.d.ts +3 -3
- package/lib/mol-repr/structure/units-visual.d.ts +4 -4
- package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.d.ts +2 -2
- package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.d.ts +2 -2
- package/lib/mol-repr/structure/visual/carbohydrate-link-cylinder.d.ts +1 -1
- package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.d.ts +1 -1
- package/lib/mol-repr/structure/visual/element-sphere.d.ts +2 -2
- package/lib/mol-repr/structure/visual/ellipsoid-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/gaussian-surface-mesh.d.ts +4 -4
- package/lib/mol-repr/structure/visual/molecular-surface-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/nucleotide-block-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/nucleotide-ring-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/polymer-backbone-cylinder.d.ts +2 -2
- package/lib/mol-repr/structure/visual/polymer-backbone-sphere.d.ts +2 -2
- package/lib/mol-repr/structure/visual/polymer-direction-wedge.d.ts +1 -1
- package/lib/mol-repr/structure/visual/polymer-gap-cylinder.d.ts +1 -1
- package/lib/mol-repr/structure/visual/polymer-trace-mesh.d.ts +1 -1
- package/lib/mol-repr/structure/visual/polymer-tube-mesh.d.ts +1 -1
- package/lib/mol-repr/util.d.ts +1 -1
- package/lib/mol-repr/util.js +1 -1
- package/lib/mol-repr/volume/isosurface.d.ts +5 -5
- package/lib/mol-repr/volume/registry.d.ts +1 -1
- package/lib/mol-theme/color.d.ts +9 -2
- package/lib/mol-theme/color.js +1 -1
- package/lib/servers/model/server/query.js +1 -3
- package/lib/servers/model/version.d.ts +1 -1
- package/lib/servers/model/version.js +1 -1
- package/package.json +16 -16
package/lib/mol-gl/renderer.js
CHANGED
|
@@ -122,7 +122,8 @@ var Renderer;
|
|
|
122
122
|
};
|
|
123
123
|
var globalUniformList = Object.entries(globalUniforms);
|
|
124
124
|
var globalUniformsNeedUpdate = true;
|
|
125
|
-
var renderObject = function (r, variant) {
|
|
125
|
+
var renderObject = function (r, variant, flag) {
|
|
126
|
+
var _a, _b, _c;
|
|
126
127
|
if (r.state.disposed || !r.state.visible || (!r.state.pickable && variant === 'pick')) {
|
|
127
128
|
return;
|
|
128
129
|
}
|
|
@@ -157,6 +158,28 @@ var Renderer;
|
|
|
157
158
|
state.depthMask(false);
|
|
158
159
|
}
|
|
159
160
|
}
|
|
161
|
+
else if (flag === 1 /* BlendedFront */) {
|
|
162
|
+
state.enable(gl.CULL_FACE);
|
|
163
|
+
if ((_a = r.values.dFlipSided) === null || _a === void 0 ? void 0 : _a.ref.value) {
|
|
164
|
+
state.frontFace(gl.CW);
|
|
165
|
+
state.cullFace(gl.FRONT);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
state.frontFace(gl.CCW);
|
|
169
|
+
state.cullFace(gl.BACK);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (flag === 2 /* BlendedBack */) {
|
|
173
|
+
state.enable(gl.CULL_FACE);
|
|
174
|
+
if ((_b = r.values.dFlipSided) === null || _b === void 0 ? void 0 : _b.ref.value) {
|
|
175
|
+
state.frontFace(gl.CW);
|
|
176
|
+
state.cullFace(gl.BACK);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
state.frontFace(gl.CCW);
|
|
180
|
+
state.cullFace(gl.FRONT);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
160
183
|
else {
|
|
161
184
|
if (r.values.uDoubleSided) {
|
|
162
185
|
if (r.values.uDoubleSided.ref.value || r.values.hasReflection.ref.value) {
|
|
@@ -170,15 +193,9 @@ var Renderer;
|
|
|
170
193
|
// webgl default
|
|
171
194
|
state.disable(gl.CULL_FACE);
|
|
172
195
|
}
|
|
173
|
-
if (r.values.dFlipSided) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
state.cullFace(gl.FRONT);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
state.frontFace(gl.CCW);
|
|
180
|
-
state.cullFace(gl.BACK);
|
|
181
|
-
}
|
|
196
|
+
if ((_c = r.values.dFlipSided) === null || _c === void 0 ? void 0 : _c.ref.value) {
|
|
197
|
+
state.frontFace(gl.CW);
|
|
198
|
+
state.cullFace(gl.FRONT);
|
|
182
199
|
}
|
|
183
200
|
else {
|
|
184
201
|
// webgl default
|
|
@@ -229,7 +246,7 @@ var Renderer;
|
|
|
229
246
|
var renderables = group.renderables;
|
|
230
247
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
231
248
|
if (!renderables[i].state.colorOnly) {
|
|
232
|
-
renderObject(renderables[i], variant);
|
|
249
|
+
renderObject(renderables[i], variant, 0 /* None */);
|
|
233
250
|
}
|
|
234
251
|
}
|
|
235
252
|
};
|
|
@@ -240,7 +257,7 @@ var Renderer;
|
|
|
240
257
|
updateInternal(group, camera, depthTexture, false, false);
|
|
241
258
|
var renderables = group.renderables;
|
|
242
259
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
243
|
-
renderObject(renderables[i], 'depth');
|
|
260
|
+
renderObject(renderables[i], 'depth', 0 /* None */);
|
|
244
261
|
}
|
|
245
262
|
};
|
|
246
263
|
var renderMarkingDepth = function (group, camera, depthTexture) {
|
|
@@ -253,7 +270,7 @@ var Renderer;
|
|
|
253
270
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
254
271
|
var r = renderables[i];
|
|
255
272
|
if (r.values.markerAverage.ref.value !== 1) {
|
|
256
|
-
renderObject(renderables[i], 'marking');
|
|
273
|
+
renderObject(renderables[i], 'marking', 0 /* None */);
|
|
257
274
|
}
|
|
258
275
|
}
|
|
259
276
|
};
|
|
@@ -267,7 +284,7 @@ var Renderer;
|
|
|
267
284
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
268
285
|
var r = renderables[i];
|
|
269
286
|
if (r.values.markerAverage.ref.value > 0) {
|
|
270
|
-
renderObject(renderables[i], 'marking');
|
|
287
|
+
renderObject(renderables[i], 'marking', 0 /* None */);
|
|
271
288
|
}
|
|
272
289
|
}
|
|
273
290
|
};
|
|
@@ -276,6 +293,7 @@ var Renderer;
|
|
|
276
293
|
renderBlendedTransparent(group, camera, depthTexture);
|
|
277
294
|
};
|
|
278
295
|
var renderBlendedOpaque = function (group, camera, depthTexture) {
|
|
296
|
+
var _a, _b;
|
|
279
297
|
state.disable(gl.BLEND);
|
|
280
298
|
state.enable(gl.DEPTH_TEST);
|
|
281
299
|
state.depthMask(true);
|
|
@@ -284,11 +302,15 @@ var Renderer;
|
|
|
284
302
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
285
303
|
var r = renderables[i];
|
|
286
304
|
if (r.state.opaque) {
|
|
287
|
-
renderObject(r, 'colorBlended');
|
|
305
|
+
renderObject(r, 'colorBlended', 0 /* None */);
|
|
306
|
+
}
|
|
307
|
+
else if (((_a = r.values.uDoubleSided) === null || _a === void 0 ? void 0 : _a.ref.value) && ((_b = r.values.dOpaqueBackfaces) === null || _b === void 0 ? void 0 : _b.ref.value)) {
|
|
308
|
+
renderObject(r, 'colorBlended', 2 /* BlendedBack */);
|
|
288
309
|
}
|
|
289
310
|
}
|
|
290
311
|
};
|
|
291
312
|
var renderBlendedTransparent = function (group, camera, depthTexture) {
|
|
313
|
+
var _a, _b;
|
|
292
314
|
state.enable(gl.DEPTH_TEST);
|
|
293
315
|
updateInternal(group, camera, depthTexture, false, false);
|
|
294
316
|
var renderables = group.renderables;
|
|
@@ -303,14 +325,23 @@ var Renderer;
|
|
|
303
325
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
304
326
|
var r = renderables[i];
|
|
305
327
|
if (!r.state.opaque && r.state.writeDepth) {
|
|
306
|
-
renderObject(r, 'colorBlended');
|
|
328
|
+
renderObject(r, 'colorBlended', 0 /* None */);
|
|
307
329
|
}
|
|
308
330
|
}
|
|
309
331
|
state.depthMask(false);
|
|
310
332
|
for (var i = 0, il = renderables.length; i < il; ++i) {
|
|
311
333
|
var r = renderables[i];
|
|
312
334
|
if (!r.state.opaque && !r.state.writeDepth) {
|
|
313
|
-
|
|
335
|
+
if ((_a = r.values.uDoubleSided) === null || _a === void 0 ? void 0 : _a.ref.value) {
|
|
336
|
+
// render frontfaces and backfaces separately to avoid artefacts
|
|
337
|
+
if (!((_b = r.values.dOpaqueBackfaces) === null || _b === void 0 ? void 0 : _b.ref.value)) {
|
|
338
|
+
renderObject(r, 'colorBlended', 2 /* BlendedBack */);
|
|
339
|
+
}
|
|
340
|
+
renderObject(r, 'colorBlended', 1 /* BlendedFront */);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
renderObject(r, 'colorBlended', 0 /* None */);
|
|
344
|
+
}
|
|
314
345
|
}
|
|
315
346
|
}
|
|
316
347
|
};
|
|
@@ -326,7 +357,7 @@ var Renderer;
|
|
|
326
357
|
// uAlpha is updated in "render" so we need to recompute it here
|
|
327
358
|
var alpha = clamp(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
|
|
328
359
|
if (alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && !((_a = r.values.dXrayShaded) === null || _a === void 0 ? void 0 : _a.ref.value)) {
|
|
329
|
-
renderObject(r, 'colorBlended');
|
|
360
|
+
renderObject(r, 'colorBlended', 0 /* None */);
|
|
330
361
|
}
|
|
331
362
|
}
|
|
332
363
|
};
|
|
@@ -342,12 +373,12 @@ var Renderer;
|
|
|
342
373
|
// uAlpha is updated in "render" so we need to recompute it here
|
|
343
374
|
var alpha = clamp(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
|
|
344
375
|
if (alpha < 1 || r.values.transparencyAverage.ref.value > 0 || ((_a = r.values.dXrayShaded) === null || _a === void 0 ? void 0 : _a.ref.value)) {
|
|
345
|
-
renderObject(r, 'colorBlended');
|
|
376
|
+
renderObject(r, 'colorBlended', 0 /* None */);
|
|
346
377
|
}
|
|
347
378
|
}
|
|
348
379
|
};
|
|
349
380
|
var renderWboitOpaque = function (group, camera, depthTexture) {
|
|
350
|
-
var _a, _b;
|
|
381
|
+
var _a, _b, _c;
|
|
351
382
|
state.disable(gl.BLEND);
|
|
352
383
|
state.enable(gl.DEPTH_TEST);
|
|
353
384
|
state.depthMask(true);
|
|
@@ -358,8 +389,8 @@ var Renderer;
|
|
|
358
389
|
// TODO: simplify, handle in renderable.state???
|
|
359
390
|
// uAlpha is updated in "render" so we need to recompute it here
|
|
360
391
|
var alpha = clamp(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
|
|
361
|
-
if (alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && r.values.dGeometryType.ref.value !== 'directVolume' && ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) !== 'fuzzy' && !((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) {
|
|
362
|
-
renderObject(r, 'colorWboit');
|
|
392
|
+
if ((alpha === 1 && r.values.transparencyAverage.ref.value !== 1 && r.values.dGeometryType.ref.value !== 'directVolume' && ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) !== 'fuzzy' && !((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) || ((_c = r.values.dOpaqueBackfaces) === null || _c === void 0 ? void 0 : _c.ref.value)) {
|
|
393
|
+
renderObject(r, 'colorWboit', 0 /* None */);
|
|
363
394
|
}
|
|
364
395
|
}
|
|
365
396
|
};
|
|
@@ -373,7 +404,7 @@ var Renderer;
|
|
|
373
404
|
// uAlpha is updated in "render" so we need to recompute it here
|
|
374
405
|
var alpha = clamp(r.values.alpha.ref.value * r.state.alphaFactor, 0, 1);
|
|
375
406
|
if (alpha < 1 || r.values.transparencyAverage.ref.value > 0 || r.values.dGeometryType.ref.value === 'directVolume' || ((_a = r.values.dPointStyle) === null || _a === void 0 ? void 0 : _a.ref.value) === 'fuzzy' || !!r.values.uBackgroundColor || ((_b = r.values.dXrayShaded) === null || _b === void 0 ? void 0 : _b.ref.value)) {
|
|
376
|
-
renderObject(r, 'colorWboit');
|
|
407
|
+
renderObject(r, 'colorWboit', 0 /* None */);
|
|
377
408
|
}
|
|
378
409
|
}
|
|
379
410
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n}\n";
|
|
1
|
+
export declare const apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n\n #ifdef dOpaqueBackfaces\n gl_FragColor.a = 1.0;\n #endif\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n}\n";
|
|
1
|
+
export var apply_interior_color = "\nif (interior) {\n if (uInteriorColorFlag) {\n gl_FragColor.rgb = uInteriorColor;\n } else {\n gl_FragColor.rgb *= 1.0 - uInteriorDarkening;\n }\n\n #ifdef dOpaqueBackfaces\n gl_FragColor.a = 1.0;\n #endif\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1)\n
|
|
1
|
+
export declare const check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\n// if not opaque enough ignore so the element below can be picked\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1) {\n #ifdef dOpaqueBackfaces\n if (!interior) discard;\n #else\n discard;\n #endif\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1)\n
|
|
1
|
+
export var check_picking_alpha = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat alpha = (1.0 - fogFactor) * uAlpha;\n// if not opaque enough ignore so the element below can be picked\nif (uAlpha < uPickingAlphaThreshold || alpha < 0.1) {\n #ifdef dOpaqueBackfaces\n if (!interior) discard;\n #else\n discard;\n #endif\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
|
|
1
|
+
export declare const color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #elif defined(dColorType_direct)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
|
|
1
|
+
export var color_vert_params = "\nuniform float uMetalness;\nuniform float uRoughness;\nuniform float uBumpiness;\n\n#if defined(dRenderVariant_color)\n #if defined(dColorType_uniform)\n uniform vec3 uColor;\n #elif defined(dColorType_attribute)\n varying vec4 vColor;\n attribute vec3 aColor;\n #elif defined(dColorType_texture)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform sampler2D tColor;\n #elif defined(dColorType_grid)\n varying vec4 vColor;\n uniform vec2 uColorTexDim;\n uniform vec3 uColorGridDim;\n uniform vec4 uColorGridTransform;\n uniform sampler2D tColorGrid;\n #elif defined(dColorType_direct)\n varying vec4 vColor;\n #endif\n\n #ifdef dUsePalette\n varying float vPaletteV;\n #endif\n\n #ifdef dOverpaint\n #if defined(dOverpaintType_groupInstance) || defined(dOverpaintType_vertexInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform sampler2D tOverpaint;\n #elif defined(dOverpaintType_volumeInstance)\n varying vec4 vOverpaint;\n uniform vec2 uOverpaintTexDim;\n uniform vec3 uOverpaintGridDim;\n uniform vec4 uOverpaintGridTransform;\n uniform sampler2D tOverpaintGrid;\n #endif\n #endif\n\n #ifdef dSubstance\n #if defined(dSubstanceType_groupInstance) || defined(dSubstanceType_vertexInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform sampler2D tSubstance;\n #elif defined(dSubstanceType_volumeInstance)\n varying vec4 vSubstance;\n uniform vec2 uSubstanceTexDim;\n uniform vec3 uSubstanceGridDim;\n uniform vec4 uSubstanceGridTransform;\n uniform sampler2D tSubstanceGrid;\n #endif\n #endif\n#elif defined(dRenderVariant_pick)\n #if __VERSION__ == 100\n varying vec4 vColor;\n #else\n flat out vec4 vColor;\n #endif\n#endif\n\n#ifdef dTransparency\n varying float vGroup;\n #if defined(dTransparencyType_groupInstance) || defined(dTransparencyType_vertexInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform sampler2D tTransparency;\n #elif defined(dTransparencyType_volumeInstance)\n varying float vTransparency;\n uniform vec2 uTransparencyTexDim;\n uniform vec3 uTransparencyGridDim;\n uniform vec4 uTransparencyGridTransform;\n uniform sampler2D tTransparencyGrid;\n #endif\n#endif\n";
|
|
@@ -8,11 +8,12 @@ import { Writer } from './writer';
|
|
|
8
8
|
import { Encoder, Category } from './cif/encoder';
|
|
9
9
|
import { ComponentAtom } from '../../mol-model-formats/structure/property/atoms/chem_comp';
|
|
10
10
|
import { ComponentBond } from '../../mol-model-formats/structure/property/bonds/chem_comp';
|
|
11
|
+
import { ElementSymbol } from '../../mol-model/structure/model/types';
|
|
11
12
|
interface Atom {
|
|
12
13
|
Cartn_x: number;
|
|
13
14
|
Cartn_y: number;
|
|
14
15
|
Cartn_z: number;
|
|
15
|
-
type_symbol:
|
|
16
|
+
type_symbol: ElementSymbol;
|
|
16
17
|
index: number;
|
|
17
18
|
}
|
|
18
19
|
declare function Atom(partial: any): Atom;
|
|
@@ -39,7 +40,8 @@ export declare abstract class LigandEncoder implements Encoder<string> {
|
|
|
39
40
|
getData(): string;
|
|
40
41
|
protected getAtoms<Ctx>(instance: Category.Instance<Ctx>, source: any): Map<string, Atom>;
|
|
41
42
|
private _getAtoms;
|
|
42
|
-
protected skipHydrogen(type_symbol:
|
|
43
|
+
protected skipHydrogen(type_symbol: ElementSymbol): boolean;
|
|
44
|
+
protected isHydrogen(type_symbol: ElementSymbol): boolean;
|
|
43
45
|
private getSortedFields;
|
|
44
46
|
private getField;
|
|
45
47
|
protected getName<Ctx>(instance: Category.Instance<Ctx>, source: any): string;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __assign } from "tslib";
|
|
7
7
|
import { StringBuilder } from '../../mol-util';
|
|
8
|
+
import { getElementIdx, isHydrogen } from '../../mol-model/structure/structure/unit/bonds/common';
|
|
8
9
|
function Atom(partial) {
|
|
9
10
|
return __assign({}, partial);
|
|
10
11
|
}
|
|
@@ -77,11 +78,12 @@ var LigandEncoder = /** @class */ (function () {
|
|
|
77
78
|
while (it_1.hasNext) {
|
|
78
79
|
var key = it_1.move();
|
|
79
80
|
var lai = label_atom_id.value(key, data, index);
|
|
81
|
+
// ignore all alternate locations after the first
|
|
82
|
+
if (atoms.has(lai))
|
|
83
|
+
continue;
|
|
80
84
|
var ts = type_symbol.value(key, data, index);
|
|
81
|
-
if (this.skipHydrogen(ts))
|
|
82
|
-
index++;
|
|
85
|
+
if (this.skipHydrogen(ts))
|
|
83
86
|
continue;
|
|
84
|
-
}
|
|
85
87
|
var a = {};
|
|
86
88
|
for (var _f = 0, _fl = fields.length; _f < _fl; _f++) {
|
|
87
89
|
var f = fields[_f];
|
|
@@ -99,7 +101,10 @@ var LigandEncoder = /** @class */ (function () {
|
|
|
99
101
|
if (this.hydrogens) {
|
|
100
102
|
return false;
|
|
101
103
|
}
|
|
102
|
-
return type_symbol
|
|
104
|
+
return this.isHydrogen(type_symbol);
|
|
105
|
+
};
|
|
106
|
+
LigandEncoder.prototype.isHydrogen = function (type_symbol) {
|
|
107
|
+
return isHydrogen(getElementIdx(type_symbol));
|
|
103
108
|
};
|
|
104
109
|
LigandEncoder.prototype.getSortedFields = function (instance, names) {
|
|
105
110
|
var _this = this;
|
|
@@ -33,13 +33,25 @@ var MolEncoder = /** @class */ (function (_super) {
|
|
|
33
33
|
StringBuilder.writeSafe(this.builder, "".concat(name, "\n ").concat(this.encoder, "\n\n"));
|
|
34
34
|
var atomMap = this.componentAtomData.entries.get(name);
|
|
35
35
|
var bondMap = this.componentBondData.entries.get(name);
|
|
36
|
+
// happens for the unknown ligands (UNL)
|
|
37
|
+
if (!atomMap)
|
|
38
|
+
throw Error("The Chemical Component Dictionary doesn't hold any atom data for ".concat(name));
|
|
36
39
|
var bondCount = 0;
|
|
37
40
|
var chiral = false;
|
|
38
41
|
// traverse once to determine all actually present atoms
|
|
39
42
|
var atoms = this.getAtoms(instance, source);
|
|
40
43
|
atoms.forEach(function (atom1, label_atom_id1) {
|
|
41
|
-
var i1 = atom1.index;
|
|
42
|
-
var
|
|
44
|
+
var i1 = atom1.index, type_symbol1 = atom1.type_symbol;
|
|
45
|
+
var atomMapData1 = atomMap.map.get(label_atom_id1);
|
|
46
|
+
if (!atomMapData1) {
|
|
47
|
+
if (_this.isHydrogen(type_symbol1)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
throw Error("Unknown atom ".concat(label_atom_id1, " for component ").concat(name));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
var charge = atomMapData1.charge, stereo_config = atomMapData1.stereo_config;
|
|
43
55
|
StringBuilder.writePadLeft(ctab, atom1.Cartn_x.toFixed(4), 10);
|
|
44
56
|
StringBuilder.writePadLeft(ctab, atom1.Cartn_y.toFixed(4), 10);
|
|
45
57
|
StringBuilder.writePadLeft(ctab, atom1.Cartn_z.toFixed(4), 10);
|
|
@@ -57,8 +69,8 @@ var MolEncoder = /** @class */ (function (_super) {
|
|
|
57
69
|
var atom2 = atoms.get(label_atom_id2);
|
|
58
70
|
if (!atom2)
|
|
59
71
|
return;
|
|
60
|
-
var i2 = atom2.index
|
|
61
|
-
if (i1 < i2
|
|
72
|
+
var i2 = atom2.index;
|
|
73
|
+
if (i1 < i2) {
|
|
62
74
|
var order = bond.order;
|
|
63
75
|
StringBuilder.writeIntegerPadLeft(bonds, i1 + 1, 3);
|
|
64
76
|
StringBuilder.writeIntegerPadLeft(bonds, i2 + 1, 3);
|
|
@@ -27,20 +27,33 @@ var Mol2Encoder = /** @class */ (function (_super) {
|
|
|
27
27
|
// write header
|
|
28
28
|
var name = this.getName(instance, source);
|
|
29
29
|
StringBuilder.writeSafe(this.builder, "# Name: ".concat(name, "\n# Created by ").concat(this.encoder, "\n\n"));
|
|
30
|
+
var atomMap = this.componentAtomData.entries.get(name);
|
|
30
31
|
var bondMap = this.componentBondData.entries.get(name);
|
|
32
|
+
// happens for the unknown ligands (UNL)
|
|
33
|
+
if (!atomMap)
|
|
34
|
+
throw Error("The Chemical Component Dictionary doesn't hold any atom data for ".concat(name));
|
|
31
35
|
var bondCount = 0;
|
|
32
36
|
var atoms = this.getAtoms(instance, source);
|
|
33
37
|
StringBuilder.writeSafe(a, '@<TRIPOS>ATOM\n');
|
|
34
38
|
StringBuilder.writeSafe(b, '@<TRIPOS>BOND\n');
|
|
35
39
|
atoms.forEach(function (atom1, label_atom_id1) {
|
|
36
|
-
var i1 = atom1.index;
|
|
40
|
+
var i1 = atom1.index, type_symbol1 = atom1.type_symbol;
|
|
41
|
+
var atomMapData1 = atomMap.map.get(label_atom_id1);
|
|
42
|
+
if (!atomMapData1) {
|
|
43
|
+
if (_this.isHydrogen(type_symbol1)) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw Error("Unknown atom ".concat(label_atom_id1, " for component ").concat(name));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
37
50
|
if (bondMap === null || bondMap === void 0 ? void 0 : bondMap.map) {
|
|
38
51
|
bondMap.map.get(label_atom_id1).forEach(function (bond, label_atom_id2) {
|
|
39
52
|
var atom2 = atoms.get(label_atom_id2);
|
|
40
53
|
if (!atom2)
|
|
41
54
|
return;
|
|
42
|
-
var i2 = atom2.index
|
|
43
|
-
if (i1 < i2
|
|
55
|
+
var i2 = atom2.index;
|
|
56
|
+
if (i1 < i2) {
|
|
44
57
|
var order = bond.order, flags = bond.flags;
|
|
45
58
|
var ar = BondType.is(16 /* Aromatic */, flags);
|
|
46
59
|
StringBuilder.writeSafe(b, "".concat(++bondCount, " ").concat(i1 + 1, " ").concat(i2 + 1, " ").concat(ar ? 'ar' : order));
|
|
@@ -48,7 +61,7 @@ var Mol2Encoder = /** @class */ (function (_super) {
|
|
|
48
61
|
}
|
|
49
62
|
});
|
|
50
63
|
}
|
|
51
|
-
var sybyl = (bondMap === null || bondMap === void 0 ? void 0 : bondMap.map) ? _this.mapToSybyl(label_atom_id1,
|
|
64
|
+
var sybyl = (bondMap === null || bondMap === void 0 ? void 0 : bondMap.map) ? _this.mapToSybyl(label_atom_id1, type_symbol1, bondMap) : type_symbol1;
|
|
52
65
|
StringBuilder.writeSafe(a, "".concat(i1 + 1, " ").concat(label_atom_id1, " ").concat(atom1.Cartn_x.toFixed(3), " ").concat(atom1.Cartn_y.toFixed(3), " ").concat(atom1.Cartn_z.toFixed(3), " ").concat(sybyl, " 1 ").concat(name, " 0.000\n"));
|
|
53
66
|
});
|
|
54
67
|
// could write something like 'SMALL\nNO_CHARGES', for now let's write **** indicating non-optional, yet missing, string values
|
|
@@ -30,7 +30,7 @@ export declare const PlyShapeParams: {
|
|
|
30
30
|
flatShaded: PD.BooleanParam;
|
|
31
31
|
ignoreLight: PD.BooleanParam;
|
|
32
32
|
xrayShaded: PD.BooleanParam;
|
|
33
|
-
|
|
33
|
+
transparentBackfaces: PD.Select<string>;
|
|
34
34
|
bumpFrequency: PD.Numeric;
|
|
35
35
|
bumpAmplitude: PD.Numeric;
|
|
36
36
|
alpha: PD.Numeric;
|
|
@@ -72,7 +72,7 @@ export declare function shapeFromPly(source: PlyFile, params?: {}): Task<ShapePr
|
|
|
72
72
|
flatShaded: PD.BooleanParam;
|
|
73
73
|
ignoreLight: PD.BooleanParam;
|
|
74
74
|
xrayShaded: PD.BooleanParam;
|
|
75
|
-
|
|
75
|
+
transparentBackfaces: PD.Select<string>;
|
|
76
76
|
bumpFrequency: PD.Numeric;
|
|
77
77
|
bumpAmplitude: PD.Numeric;
|
|
78
78
|
alpha: PD.Numeric;
|
|
@@ -25,7 +25,7 @@ export declare const InteractionsInterUnitParams: {
|
|
|
25
25
|
flatShaded: PD.BooleanParam;
|
|
26
26
|
ignoreLight: PD.BooleanParam;
|
|
27
27
|
xrayShaded: PD.BooleanParam;
|
|
28
|
-
|
|
28
|
+
transparentBackfaces: PD.Select<string>;
|
|
29
29
|
bumpFrequency: PD.Numeric;
|
|
30
30
|
bumpAmplitude: PD.Numeric;
|
|
31
31
|
alpha: PD.Numeric;
|
|
@@ -25,7 +25,7 @@ export declare const InteractionsIntraUnitParams: {
|
|
|
25
25
|
flatShaded: PD.BooleanParam;
|
|
26
26
|
ignoreLight: PD.BooleanParam;
|
|
27
27
|
xrayShaded: PD.BooleanParam;
|
|
28
|
-
|
|
28
|
+
transparentBackfaces: PD.Select<string>;
|
|
29
29
|
bumpFrequency: PD.Numeric;
|
|
30
30
|
bumpAmplitude: PD.Numeric;
|
|
31
31
|
alpha: PD.Numeric;
|
|
@@ -29,7 +29,7 @@ export declare const InteractionsParams: {
|
|
|
29
29
|
flatShaded: PD.BooleanParam;
|
|
30
30
|
ignoreLight: PD.BooleanParam;
|
|
31
31
|
xrayShaded: PD.BooleanParam;
|
|
32
|
-
|
|
32
|
+
transparentBackfaces: PD.Select<string>;
|
|
33
33
|
bumpFrequency: PD.Numeric;
|
|
34
34
|
bumpAmplitude: PD.Numeric;
|
|
35
35
|
alpha: PD.Numeric;
|
|
@@ -72,7 +72,7 @@ export declare function getInteractionParams(ctx: ThemeRegistryContext, structur
|
|
|
72
72
|
flatShaded: PD.BooleanParam;
|
|
73
73
|
ignoreLight: PD.BooleanParam;
|
|
74
74
|
xrayShaded: PD.BooleanParam;
|
|
75
|
-
|
|
75
|
+
transparentBackfaces: PD.Select<string>;
|
|
76
76
|
bumpFrequency: PD.Numeric;
|
|
77
77
|
bumpAmplitude: PD.Numeric;
|
|
78
78
|
alpha: PD.Numeric;
|
|
@@ -116,7 +116,7 @@ export declare const InteractionsRepresentationProvider: StructureRepresentation
|
|
|
116
116
|
flatShaded: PD.BooleanParam;
|
|
117
117
|
ignoreLight: PD.BooleanParam;
|
|
118
118
|
xrayShaded: PD.BooleanParam;
|
|
119
|
-
|
|
119
|
+
transparentBackfaces: PD.Select<string>;
|
|
120
120
|
bumpFrequency: PD.Numeric;
|
|
121
121
|
bumpAmplitude: PD.Numeric;
|
|
122
122
|
alpha: PD.Numeric;
|
|
@@ -30,7 +30,7 @@ export declare const CrossLinkRestraintCylinderParams: {
|
|
|
30
30
|
flatShaded: PD.BooleanParam;
|
|
31
31
|
ignoreLight: PD.BooleanParam;
|
|
32
32
|
xrayShaded: PD.BooleanParam;
|
|
33
|
-
|
|
33
|
+
transparentBackfaces: PD.Select<string>;
|
|
34
34
|
bumpFrequency: PD.Numeric;
|
|
35
35
|
bumpAmplitude: PD.Numeric;
|
|
36
36
|
alpha: PD.Numeric;
|
|
@@ -73,7 +73,7 @@ export declare const CrossLinkRestraintParams: {
|
|
|
73
73
|
flatShaded: PD.BooleanParam;
|
|
74
74
|
ignoreLight: PD.BooleanParam;
|
|
75
75
|
xrayShaded: PD.BooleanParam;
|
|
76
|
-
|
|
76
|
+
transparentBackfaces: PD.Select<string>;
|
|
77
77
|
bumpFrequency: PD.Numeric;
|
|
78
78
|
bumpAmplitude: PD.Numeric;
|
|
79
79
|
alpha: PD.Numeric;
|
|
@@ -115,7 +115,7 @@ export declare function getCrossLinkRestraintParams(ctx: ThemeRegistryContext, s
|
|
|
115
115
|
flatShaded: PD.BooleanParam;
|
|
116
116
|
ignoreLight: PD.BooleanParam;
|
|
117
117
|
xrayShaded: PD.BooleanParam;
|
|
118
|
-
|
|
118
|
+
transparentBackfaces: PD.Select<string>;
|
|
119
119
|
bumpFrequency: PD.Numeric;
|
|
120
120
|
bumpAmplitude: PD.Numeric;
|
|
121
121
|
alpha: PD.Numeric;
|
|
@@ -158,7 +158,7 @@ export declare const CrossLinkRestraintRepresentationProvider: StructureRepresen
|
|
|
158
158
|
flatShaded: PD.BooleanParam;
|
|
159
159
|
ignoreLight: PD.BooleanParam;
|
|
160
160
|
xrayShaded: PD.BooleanParam;
|
|
161
|
-
|
|
161
|
+
transparentBackfaces: PD.Select<string>;
|
|
162
162
|
bumpFrequency: PD.Numeric;
|
|
163
163
|
bumpAmplitude: PD.Numeric;
|
|
164
164
|
alpha: PD.Numeric;
|
|
@@ -86,7 +86,6 @@ export function getContourLevelEmdb(plugin, taskCtx, emdbId) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
contourLevel = parseFloat(primaryContour.getElementsByTagName('level')[0].textContent);
|
|
89
|
-
console.log({ contourLevel: contourLevel });
|
|
90
89
|
return [2 /*return*/, contourLevel];
|
|
91
90
|
}
|
|
92
91
|
});
|
|
@@ -37,7 +37,7 @@ declare class ViewportScreenshotHelper extends PluginComponent {
|
|
|
37
37
|
flipSided: boolean;
|
|
38
38
|
flatShaded: boolean;
|
|
39
39
|
xrayShaded: boolean;
|
|
40
|
-
|
|
40
|
+
transparentBackfaces: string;
|
|
41
41
|
bumpFrequency: number;
|
|
42
42
|
bumpAmplitude: number;
|
|
43
43
|
quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
|
|
@@ -70,7 +70,7 @@ declare class ViewportScreenshotHelper extends PluginComponent {
|
|
|
70
70
|
flipSided: boolean;
|
|
71
71
|
flatShaded: boolean;
|
|
72
72
|
xrayShaded: boolean;
|
|
73
|
-
|
|
73
|
+
transparentBackfaces: string;
|
|
74
74
|
bumpFrequency: number;
|
|
75
75
|
bumpAmplitude: number;
|
|
76
76
|
quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
|
|
@@ -111,7 +111,7 @@ declare class ViewportScreenshotHelper extends PluginComponent {
|
|
|
111
111
|
flipSided: boolean;
|
|
112
112
|
flatShaded: boolean;
|
|
113
113
|
xrayShaded: boolean;
|
|
114
|
-
|
|
114
|
+
transparentBackfaces: string;
|
|
115
115
|
bumpFrequency: number;
|
|
116
116
|
bumpAmplitude: number;
|
|
117
117
|
quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var PLUGIN_VERSION = '3.
|
|
2
|
-
export var PLUGIN_VERSION_DATE = new Date(typeof __MOLSTAR_DEBUG_TIMESTAMP__ !== 'undefined' ? __MOLSTAR_DEBUG_TIMESTAMP__ :
|
|
1
|
+
export var PLUGIN_VERSION = '3.7.0';
|
|
2
|
+
export var PLUGIN_VERSION_DATE = new Date(typeof __MOLSTAR_DEBUG_TIMESTAMP__ !== 'undefined' ? __MOLSTAR_DEBUG_TIMESTAMP__ : 1649872989149);
|
|
@@ -150,7 +150,7 @@ declare const ModelUnitcell3D: StateTransformer<SO.Molecule.Model, SO.Shape.Repr
|
|
|
150
150
|
flatShaded: boolean;
|
|
151
151
|
ignoreLight: boolean;
|
|
152
152
|
xrayShaded: boolean;
|
|
153
|
-
|
|
153
|
+
transparentBackfaces: string;
|
|
154
154
|
bumpFrequency: number;
|
|
155
155
|
bumpAmplitude: number;
|
|
156
156
|
alpha: number;
|
|
@@ -173,7 +173,7 @@ declare const StructureBoundingBox3D: StateTransformer<SO.Molecule.Structure, SO
|
|
|
173
173
|
flatShaded: boolean;
|
|
174
174
|
ignoreLight: boolean;
|
|
175
175
|
xrayShaded: boolean;
|
|
176
|
-
|
|
176
|
+
transparentBackfaces: string;
|
|
177
177
|
bumpFrequency: number;
|
|
178
178
|
bumpAmplitude: number;
|
|
179
179
|
alpha: number;
|
|
@@ -278,7 +278,7 @@ declare const StructureSelectionsAngle3D: StateTransformer<SO.Molecule.Structure
|
|
|
278
278
|
flipSided: boolean;
|
|
279
279
|
flatShaded: boolean;
|
|
280
280
|
xrayShaded: boolean;
|
|
281
|
-
|
|
281
|
+
transparentBackfaces: string;
|
|
282
282
|
bumpFrequency: number;
|
|
283
283
|
bumpAmplitude: number;
|
|
284
284
|
lineSizeAttenuation: boolean;
|
|
@@ -330,7 +330,7 @@ declare const StructureSelectionsDihedral3D: StateTransformer<SO.Molecule.Struct
|
|
|
330
330
|
flipSided: boolean;
|
|
331
331
|
flatShaded: boolean;
|
|
332
332
|
xrayShaded: boolean;
|
|
333
|
-
|
|
333
|
+
transparentBackfaces: string;
|
|
334
334
|
bumpFrequency: number;
|
|
335
335
|
bumpAmplitude: number;
|
|
336
336
|
lineSizeAttenuation: boolean;
|
|
@@ -388,7 +388,7 @@ declare const StructureSelectionsOrientation3D: StateTransformer<SO.Molecule.Str
|
|
|
388
388
|
flatShaded: boolean;
|
|
389
389
|
ignoreLight: boolean;
|
|
390
390
|
xrayShaded: boolean;
|
|
391
|
-
|
|
391
|
+
transparentBackfaces: string;
|
|
392
392
|
bumpFrequency: number;
|
|
393
393
|
bumpAmplitude: number;
|
|
394
394
|
alpha: number;
|
|
@@ -414,7 +414,7 @@ declare const StructureSelectionsPlane3D: StateTransformer<SO.Molecule.Structure
|
|
|
414
414
|
flatShaded: boolean;
|
|
415
415
|
ignoreLight: boolean;
|
|
416
416
|
xrayShaded: boolean;
|
|
417
|
-
|
|
417
|
+
transparentBackfaces: string;
|
|
418
418
|
bumpFrequency: number;
|
|
419
419
|
bumpAmplitude: number;
|
|
420
420
|
alpha: number;
|
|
@@ -9,7 +9,9 @@ import { Observable } from 'rxjs';
|
|
|
9
9
|
import { PluginUIContext } from './context';
|
|
10
10
|
import { ColorAccent } from './controls/common';
|
|
11
11
|
export declare const PluginReactContext: React.Context<PluginUIContext>;
|
|
12
|
-
export declare abstract class PluginUIComponent<P = {}, S = {}, SS = {}> extends React.Component<P
|
|
12
|
+
export declare abstract class PluginUIComponent<P = {}, S = {}, SS = {}> extends React.Component<P & {
|
|
13
|
+
children?: any;
|
|
14
|
+
}, S, SS> {
|
|
13
15
|
static contextType: React.Context<PluginUIContext>;
|
|
14
16
|
readonly plugin: PluginUIContext;
|
|
15
17
|
private subs;
|
|
@@ -27,5 +27,5 @@ export declare class CombinedColorControl extends React.PureComponent<ParamProps
|
|
|
27
27
|
swatch(): JSX.Element;
|
|
28
28
|
render(): JSX.Element;
|
|
29
29
|
}
|
|
30
|
-
export declare function ColorOptions():
|
|
30
|
+
export declare function ColorOptions(): any;
|
|
31
31
|
export declare function ColorValueOption(color: Color): JSX.Element | null;
|
|
@@ -18,6 +18,7 @@ export declare class ControlGroup extends React.Component<{
|
|
|
18
18
|
noTopMargin?: boolean;
|
|
19
19
|
childrenClassName?: string;
|
|
20
20
|
maxHeight?: string;
|
|
21
|
+
children?: any;
|
|
21
22
|
}, {
|
|
22
23
|
isExpanded: boolean;
|
|
23
24
|
}> {
|
|
@@ -139,6 +140,7 @@ export declare class ToggleButton extends React.PureComponent<ToggleButtonProps>
|
|
|
139
140
|
render(): JSX.Element;
|
|
140
141
|
}
|
|
141
142
|
export declare class ExpandGroup extends React.PureComponent<{
|
|
143
|
+
children?: any;
|
|
142
144
|
header: string;
|
|
143
145
|
headerStyle?: React.CSSProperties;
|
|
144
146
|
initiallyExpanded?: boolean;
|