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
|
@@ -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;
|
|
@@ -253,16 +253,24 @@ var Canvas3D;
|
|
|
253
253
|
changed = helper.camera.mark(loci, action) || changed;
|
|
254
254
|
reprRenderObjects.forEach(function (_, _repr) { changed = _repr.mark(loci, action) || changed; });
|
|
255
255
|
}
|
|
256
|
-
if (changed
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
256
|
+
if (changed) {
|
|
257
|
+
if (noDraw) {
|
|
258
|
+
// Even with `noDraw` make sure changes will be rendered.
|
|
259
|
+
// Note that with this calling mark (with or without `noDraw`) multiple times
|
|
260
|
+
// during a JS event loop iteration will only result in a single render call.
|
|
261
|
+
forceNextRender = true;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
scene.update(void 0, true);
|
|
265
|
+
helper.handle.scene.update(void 0, true);
|
|
266
|
+
helper.camera.scene.update(void 0, true);
|
|
267
|
+
var prevPickDirty = pickHelper.dirty;
|
|
268
|
+
draw({ force: true, allowMulti: true });
|
|
269
|
+
pickHelper.dirty = prevPickDirty; // marking does not change picking buffers
|
|
270
|
+
}
|
|
263
271
|
}
|
|
264
272
|
}
|
|
265
|
-
function render(force) {
|
|
273
|
+
function render(force, allowMulti) {
|
|
266
274
|
if (webgl.isContextLost)
|
|
267
275
|
return false;
|
|
268
276
|
var resized = false;
|
|
@@ -286,17 +294,13 @@ var Canvas3D;
|
|
|
286
294
|
stereoCamera.update();
|
|
287
295
|
cam = stereoCamera;
|
|
288
296
|
}
|
|
297
|
+
var ctx = { renderer: renderer, camera: cam, scene: scene, helper: helper };
|
|
289
298
|
if (MultiSamplePass.isEnabled(p.multiSample)) {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
;
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
multiSampleHelper.render(renderer, cam, scene, helper, true, p.transparentBackground, p);
|
|
296
|
-
}
|
|
299
|
+
var forceOn = !cameraChanged && allowMulti && !controls.props.spin;
|
|
300
|
+
multiSampleHelper.render(ctx, p, true, forceOn);
|
|
297
301
|
}
|
|
298
302
|
else {
|
|
299
|
-
passes.draw.render(
|
|
303
|
+
passes.draw.render(ctx, p, true);
|
|
300
304
|
}
|
|
301
305
|
pickHelper.dirty = true;
|
|
302
306
|
didRender = true;
|
|
@@ -307,15 +311,15 @@ var Canvas3D;
|
|
|
307
311
|
var forceDrawAfterAllCommited = false;
|
|
308
312
|
var currentTime = 0;
|
|
309
313
|
var drawPaused = false;
|
|
310
|
-
function draw(
|
|
314
|
+
function draw(options) {
|
|
311
315
|
if (drawPaused)
|
|
312
316
|
return;
|
|
313
|
-
if (render(!!force) && notifyDidDraw) {
|
|
317
|
+
if (render(!!(options === null || options === void 0 ? void 0 : options.force), !!(options === null || options === void 0 ? void 0 : options.allowMulti)) && notifyDidDraw) {
|
|
314
318
|
didDraw.next(now() - startTime);
|
|
315
319
|
}
|
|
316
320
|
}
|
|
317
|
-
function requestDraw(
|
|
318
|
-
forceNextRender =
|
|
321
|
+
function requestDraw() {
|
|
322
|
+
forceNextRender = true;
|
|
319
323
|
}
|
|
320
324
|
var animationFrameHandle = 0;
|
|
321
325
|
function tick(t, options) {
|
|
@@ -325,8 +329,8 @@ var Canvas3D;
|
|
|
325
329
|
if (options === null || options === void 0 ? void 0 : options.manualDraw) {
|
|
326
330
|
return;
|
|
327
331
|
}
|
|
328
|
-
draw(
|
|
329
|
-
if (!camera.transition.inTransition && !webgl.isContextLost) {
|
|
332
|
+
draw();
|
|
333
|
+
if (!camera.transition.inTransition && !controls.props.spin && !webgl.isContextLost) {
|
|
330
334
|
interactionHelper.tick(currentTime);
|
|
331
335
|
}
|
|
332
336
|
}
|
|
@@ -363,7 +367,7 @@ var Canvas3D;
|
|
|
363
367
|
if (forceDrawAfterAllCommited) {
|
|
364
368
|
if (helper.debug.isEnabled)
|
|
365
369
|
helper.debug.update();
|
|
366
|
-
draw(true);
|
|
370
|
+
draw({ force: true });
|
|
367
371
|
forceDrawAfterAllCommited = false;
|
|
368
372
|
}
|
|
369
373
|
commited.next(now());
|
|
@@ -532,11 +536,11 @@ var Canvas3D;
|
|
|
532
536
|
}
|
|
533
537
|
var contextRestoredSub = contextRestored.subscribe(function () {
|
|
534
538
|
pickHelper.dirty = true;
|
|
535
|
-
draw(true);
|
|
539
|
+
draw({ force: true });
|
|
536
540
|
// Unclear why, but in Chrome with wboit enabled the first `draw` only clears
|
|
537
541
|
// the drawingBuffer. Note that in Firefox the drawingBuffer is preserved after
|
|
538
542
|
// context loss so it is unclear if it behaves the same.
|
|
539
|
-
draw(true);
|
|
543
|
+
draw({ force: true });
|
|
540
544
|
});
|
|
541
545
|
var resized = new BehaviorSubject(0);
|
|
542
546
|
function handleResize(draw) {
|
|
@@ -545,7 +549,7 @@ var Canvas3D;
|
|
|
545
549
|
updateViewport();
|
|
546
550
|
syncViewport();
|
|
547
551
|
if (draw)
|
|
548
|
-
requestDraw(
|
|
552
|
+
requestDraw();
|
|
549
553
|
resized.next(+new Date());
|
|
550
554
|
}
|
|
551
555
|
return {
|
|
@@ -570,7 +574,7 @@ var Canvas3D;
|
|
|
570
574
|
reprRenderObjects.clear();
|
|
571
575
|
scene.clear();
|
|
572
576
|
helper.debug.clear();
|
|
573
|
-
requestDraw(
|
|
577
|
+
requestDraw();
|
|
574
578
|
reprCount.next(reprRenderObjects.size);
|
|
575
579
|
},
|
|
576
580
|
syncVisibility: function () {
|
|
@@ -582,7 +586,7 @@ var Canvas3D;
|
|
|
582
586
|
if (helper.debug.isEnabled)
|
|
583
587
|
helper.debug.update();
|
|
584
588
|
}
|
|
585
|
-
requestDraw(
|
|
589
|
+
requestDraw();
|
|
586
590
|
},
|
|
587
591
|
requestDraw: requestDraw,
|
|
588
592
|
tick: tick,
|
|
@@ -679,7 +683,7 @@ var Canvas3D;
|
|
|
679
683
|
p.camera.stereo.name = 'off';
|
|
680
684
|
}
|
|
681
685
|
if (!doNotRequestDraw) {
|
|
682
|
-
requestDraw(
|
|
686
|
+
requestDraw();
|
|
683
687
|
}
|
|
684
688
|
},
|
|
685
689
|
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 {};
|
|
@@ -194,23 +194,23 @@ var DrawPass = /** @class */ (function () {
|
|
|
194
194
|
}
|
|
195
195
|
renderer.renderBlendedTransparent(scene.primitives, camera, null);
|
|
196
196
|
};
|
|
197
|
-
DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer,
|
|
197
|
+
DrawPass.prototype._render = function (renderer, camera, scene, helper, toDrawingBuffer, props) {
|
|
198
198
|
var volumeRendering = scene.volumes.renderables.length > 0;
|
|
199
|
-
var postprocessingEnabled = PostprocessingPass.isEnabled(
|
|
200
|
-
var antialiasingEnabled = AntialiasingPass.isEnabled(
|
|
201
|
-
var markingEnabled = MarkingPass.isEnabled(
|
|
199
|
+
var postprocessingEnabled = PostprocessingPass.isEnabled(props.postprocessing);
|
|
200
|
+
var antialiasingEnabled = AntialiasingPass.isEnabled(props.postprocessing);
|
|
201
|
+
var markingEnabled = MarkingPass.isEnabled(props.marking);
|
|
202
202
|
var _a = camera.viewport, x = _a.x, y = _a.y, width = _a.width, height = _a.height;
|
|
203
203
|
renderer.setViewport(x, y, width, height);
|
|
204
204
|
renderer.update(camera);
|
|
205
|
-
if (transparentBackground && !antialiasingEnabled && toDrawingBuffer) {
|
|
205
|
+
if (props.transparentBackground && !antialiasingEnabled && toDrawingBuffer) {
|
|
206
206
|
this.drawTarget.bind();
|
|
207
207
|
renderer.clear(false);
|
|
208
208
|
}
|
|
209
209
|
if (this.wboitEnabled) {
|
|
210
|
-
this._renderWboit(renderer, camera, scene, transparentBackground,
|
|
210
|
+
this._renderWboit(renderer, camera, scene, props.transparentBackground, props.postprocessing);
|
|
211
211
|
}
|
|
212
212
|
else {
|
|
213
|
-
this._renderBlended(renderer, camera, scene, !volumeRendering && !postprocessingEnabled && !antialiasingEnabled && toDrawingBuffer, transparentBackground,
|
|
213
|
+
this._renderBlended(renderer, camera, scene, !volumeRendering && !postprocessingEnabled && !antialiasingEnabled && toDrawingBuffer, props.transparentBackground, props.postprocessing);
|
|
214
214
|
}
|
|
215
215
|
if (postprocessingEnabled) {
|
|
216
216
|
this.postprocessing.target.bind();
|
|
@@ -222,7 +222,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
222
222
|
this.drawTarget.bind();
|
|
223
223
|
}
|
|
224
224
|
if (markingEnabled) {
|
|
225
|
-
var markingDepthTest =
|
|
225
|
+
var markingDepthTest = props.marking.ghostEdgeStrength < 1;
|
|
226
226
|
if (markingDepthTest) {
|
|
227
227
|
this.marking.depthTarget.bind();
|
|
228
228
|
renderer.clear(false);
|
|
@@ -231,7 +231,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
231
231
|
this.marking.maskTarget.bind();
|
|
232
232
|
renderer.clear(false);
|
|
233
233
|
renderer.renderMarkingMask(scene.primitives, camera, markingDepthTest ? this.marking.depthTarget.texture : null);
|
|
234
|
-
this.marking.update(
|
|
234
|
+
this.marking.update(props.marking);
|
|
235
235
|
this.marking.render(camera.viewport, postprocessingEnabled ? this.postprocessing.target : this.colorTarget);
|
|
236
236
|
}
|
|
237
237
|
if (helper.debug.isEnabled) {
|
|
@@ -247,7 +247,7 @@ var DrawPass = /** @class */ (function () {
|
|
|
247
247
|
renderer.renderBlended(helper.camera.scene, helper.camera.camera, null);
|
|
248
248
|
}
|
|
249
249
|
if (antialiasingEnabled) {
|
|
250
|
-
this.antialiasing.render(camera, toDrawingBuffer,
|
|
250
|
+
this.antialiasing.render(camera, toDrawingBuffer, props.postprocessing);
|
|
251
251
|
}
|
|
252
252
|
else if (toDrawingBuffer) {
|
|
253
253
|
this.drawTarget.bind();
|
|
@@ -261,16 +261,17 @@ var DrawPass = /** @class */ (function () {
|
|
|
261
261
|
}
|
|
262
262
|
this.webgl.gl.flush();
|
|
263
263
|
};
|
|
264
|
-
DrawPass.prototype.render = function (
|
|
265
|
-
renderer.
|
|
264
|
+
DrawPass.prototype.render = function (ctx, props, toDrawingBuffer) {
|
|
265
|
+
var renderer = ctx.renderer, camera = ctx.camera, scene = ctx.scene, helper = ctx.helper;
|
|
266
|
+
renderer.setTransparentBackground(props.transparentBackground);
|
|
266
267
|
renderer.setDrawingBufferSize(this.colorTarget.getWidth(), this.colorTarget.getHeight());
|
|
267
268
|
renderer.setPixelRatio(this.webgl.pixelRatio);
|
|
268
269
|
if (StereoCamera.is(camera)) {
|
|
269
|
-
this._render(renderer, camera.left, scene, helper, toDrawingBuffer,
|
|
270
|
-
this._render(renderer, camera.right, scene, helper, toDrawingBuffer,
|
|
270
|
+
this._render(renderer, camera.left, scene, helper, toDrawingBuffer, props);
|
|
271
|
+
this._render(renderer, camera.right, scene, helper, toDrawingBuffer, props);
|
|
271
272
|
}
|
|
272
273
|
else {
|
|
273
|
-
this._render(renderer, camera, scene, helper, toDrawingBuffer,
|
|
274
|
+
this._render(renderer, camera, scene, helper, toDrawingBuffer, props);
|
|
274
275
|
}
|
|
275
276
|
};
|
|
276
277
|
DrawPass.prototype.getColorTarget = function (postprocessingProps) {
|
|
@@ -73,12 +73,13 @@ var ImagePass = /** @class */ (function () {
|
|
|
73
73
|
Camera.copySnapshot(this._camera.state, this.camera.state);
|
|
74
74
|
Viewport.set(this._camera.viewport, 0, 0, this._width, this._height);
|
|
75
75
|
this._camera.update();
|
|
76
|
+
var ctx = { renderer: this.renderer, camera: this._camera, scene: this.scene, helper: this.helper };
|
|
76
77
|
if (MultiSamplePass.isEnabled(this.props.multiSample)) {
|
|
77
|
-
this.multiSampleHelper.render(
|
|
78
|
+
this.multiSampleHelper.render(ctx, this.props, false);
|
|
78
79
|
this._colorTarget = this.multiSamplePass.colorTarget;
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
|
-
this.drawPass.render(
|
|
82
|
+
this.drawPass.render(ctx, this.props, false);
|
|
82
83
|
this._colorTarget = this.drawPass.getColorTarget(this.props.postprocessing);
|
|
83
84
|
}
|
|
84
85
|
};
|
|
@@ -17,7 +17,7 @@ import { overlay_frag } from '../../mol-gl/shader/marking/overlay.frag';
|
|
|
17
17
|
import { Color } from '../../mol-util/color';
|
|
18
18
|
import { edge_frag } from '../../mol-gl/shader/marking/edge.frag';
|
|
19
19
|
export var MarkingParams = {
|
|
20
|
-
enabled: PD.Boolean(
|
|
20
|
+
enabled: PD.Boolean(true),
|
|
21
21
|
highlightEdgeColor: PD.Color(Color.darken(Color.fromNormalizedRgb(1.0, 0.4, 0.6), 1.0)),
|
|
22
22
|
selectEdgeColor: PD.Color(Color.darken(Color.fromNormalizedRgb(0.2, 1.0, 0.1), 1.0)),
|
|
23
23
|
edgeScale: PD.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 {};
|
|
@@ -55,13 +55,13 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
55
55
|
ValueCell.update(this.compose.values.uTexSize, Vec2.set(this.compose.values.uTexSize.ref.value, width, height));
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
|
-
MultiSamplePass.prototype.render = function (sampleIndex,
|
|
59
|
-
if (props.multiSample.mode === 'temporal') {
|
|
60
|
-
return this.renderTemporalMultiSample(sampleIndex,
|
|
58
|
+
MultiSamplePass.prototype.render = function (sampleIndex, ctx, props, toDrawingBuffer, forceOn) {
|
|
59
|
+
if (props.multiSample.mode === 'temporal' && !forceOn) {
|
|
60
|
+
return this.renderTemporalMultiSample(sampleIndex, ctx, props, toDrawingBuffer);
|
|
61
61
|
}
|
|
62
62
|
else {
|
|
63
|
-
this.renderMultiSample(
|
|
64
|
-
return
|
|
63
|
+
this.renderMultiSample(ctx, toDrawingBuffer, props);
|
|
64
|
+
return -2;
|
|
65
65
|
}
|
|
66
66
|
};
|
|
67
67
|
MultiSamplePass.prototype.bindOutputTarget = function (toDrawingBuffer) {
|
|
@@ -72,7 +72,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
72
72
|
this.colorTarget.bind();
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
|
-
MultiSamplePass.prototype.renderMultiSample = function (
|
|
75
|
+
MultiSamplePass.prototype.renderMultiSample = function (ctx, toDrawingBuffer, props) {
|
|
76
|
+
var camera = ctx.camera;
|
|
76
77
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
77
78
|
var gl = webgl.gl, state = webgl.state;
|
|
78
79
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
@@ -100,7 +101,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
100
101
|
var sampleWeight = baseSampleWeight + roundingRange * uniformCenteredDistribution;
|
|
101
102
|
ValueCell.update(compose.values.uWeight, sampleWeight);
|
|
102
103
|
// render scene
|
|
103
|
-
drawPass.render(
|
|
104
|
+
drawPass.render(ctx, props, false);
|
|
104
105
|
// compose rendered scene with compose target
|
|
105
106
|
composeTarget.bind();
|
|
106
107
|
state.enable(gl.BLEND);
|
|
@@ -127,7 +128,8 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
127
128
|
camera.viewOffset.enabled = false;
|
|
128
129
|
camera.update();
|
|
129
130
|
};
|
|
130
|
-
MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex,
|
|
131
|
+
MultiSamplePass.prototype.renderTemporalMultiSample = function (sampleIndex, ctx, props, toDrawingBuffer) {
|
|
132
|
+
var camera = ctx.camera;
|
|
131
133
|
var _a = this, compose = _a.compose, composeTarget = _a.composeTarget, holdTarget = _a.holdTarget, drawPass = _a.drawPass, webgl = _a.webgl;
|
|
132
134
|
var gl = webgl.gl, state = webgl.state;
|
|
133
135
|
// based on the Multisample Anti-Aliasing Render Pass
|
|
@@ -141,7 +143,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
141
143
|
var _b = camera.viewport, x = _b.x, y = _b.y, width = _b.width, height = _b.height;
|
|
142
144
|
var sampleWeight = 1.0 / offsetList.length;
|
|
143
145
|
if (sampleIndex === -1) {
|
|
144
|
-
drawPass.render(
|
|
146
|
+
drawPass.render(ctx, props, false);
|
|
145
147
|
ValueCell.update(compose.values.uWeight, 1.0);
|
|
146
148
|
ValueCell.update(compose.values.tColor, drawPass.getColorTarget(props.postprocessing).texture);
|
|
147
149
|
compose.update();
|
|
@@ -167,7 +169,7 @@ var MultiSamplePass = /** @class */ (function () {
|
|
|
167
169
|
Camera.setViewOffset(camera.viewOffset, width, height, offset[0], offset[1], width, height);
|
|
168
170
|
camera.update();
|
|
169
171
|
// render scene
|
|
170
|
-
drawPass.render(
|
|
172
|
+
drawPass.render(ctx, props, false);
|
|
171
173
|
// compose rendered scene with compose target
|
|
172
174
|
composeTarget.bind();
|
|
173
175
|
state.enable(gl.BLEND);
|
|
@@ -264,8 +266,8 @@ var MultiSampleHelper = /** @class */ (function () {
|
|
|
264
266
|
return props.mode === 'temporal' ? this.sampleIndex !== -2 : false;
|
|
265
267
|
};
|
|
266
268
|
/** Return `true` while more samples are needed */
|
|
267
|
-
MultiSampleHelper.prototype.render = function (
|
|
268
|
-
this.sampleIndex = this.multiSamplePass.render(this.sampleIndex,
|
|
269
|
+
MultiSampleHelper.prototype.render = function (ctx, props, toDrawingBuffer, forceOn) {
|
|
270
|
+
this.sampleIndex = this.multiSamplePass.render(this.sampleIndex, ctx, props, toDrawingBuffer, !!forceOn);
|
|
269
271
|
return this.sampleIndex < 0;
|
|
270
272
|
};
|
|
271
273
|
return MultiSampleHelper;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Vec3 } from '../../mol-math/linear-algebra';
|
|
7
7
|
import { spiral2d } from '../../mol-math/misc';
|
|
8
|
-
import {
|
|
8
|
+
import { unpackRGBToInt, unpackRGBAToDepth } from '../../mol-util/number-packing';
|
|
9
9
|
import { StereoCamera } from '../camera/stereo';
|
|
10
10
|
import { cameraUnproject } from '../camera/util';
|
|
11
11
|
import { Viewport } from '../camera/util';
|
|
@@ -128,7 +128,7 @@ var PickHelper = /** @class */ (function () {
|
|
|
128
128
|
};
|
|
129
129
|
PickHelper.prototype.getId = function (x, y, buffer) {
|
|
130
130
|
var idx = this.getBufferIdx(x, y);
|
|
131
|
-
return
|
|
131
|
+
return unpackRGBToInt(buffer[idx], buffer[idx + 1], buffer[idx + 2]);
|
|
132
132
|
};
|
|
133
133
|
PickHelper.prototype.render = function (camera) {
|
|
134
134
|
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>>;
|
|
@@ -32,6 +32,7 @@ function _createColors(locationIt, positionIt, colorTheme, colorData) {
|
|
|
32
32
|
case 'vertexInstance': return createVertexInstanceColor(positionIt, colorTheme.color, colorData);
|
|
33
33
|
case 'volume': return createGridColor(colorTheme.grid, 'volume', colorData);
|
|
34
34
|
case 'volumeInstance': return createGridColor(colorTheme.grid, 'volumeInstance', colorData);
|
|
35
|
+
case 'direct': return createDirectColor(colorData);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
function updatePaletteTexture(palette, cell) {
|
|
@@ -203,4 +204,25 @@ export function createGridColor(grid, type, colorData) {
|
|
|
203
204
|
};
|
|
204
205
|
}
|
|
205
206
|
}
|
|
207
|
+
//
|
|
208
|
+
/** Creates direct color */
|
|
209
|
+
function createDirectColor(colorData) {
|
|
210
|
+
if (colorData) {
|
|
211
|
+
ValueCell.updateIfChanged(colorData.dColorType, 'direct');
|
|
212
|
+
return colorData;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return {
|
|
216
|
+
uColor: ValueCell.create(Vec3()),
|
|
217
|
+
tColor: ValueCell.create({ array: new Uint8Array(3), width: 1, height: 1 }),
|
|
218
|
+
tColorGrid: ValueCell.create(createNullTexture()),
|
|
219
|
+
tPalette: ValueCell.create({ array: new Uint8Array(3), width: 1, height: 1 }),
|
|
220
|
+
uColorTexDim: ValueCell.create(Vec2.create(1, 1)),
|
|
221
|
+
uColorGridDim: ValueCell.create(Vec3.create(1, 1, 1)),
|
|
222
|
+
uColorGridTransform: ValueCell.create(Vec4.create(0, 0, 0, 1)),
|
|
223
|
+
dColorType: ValueCell.create('direct'),
|
|
224
|
+
dUsePalette: ValueCell.create(false),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
206
228
|
//# sourceMappingURL=color-data.js.map
|
|
@@ -153,7 +153,7 @@ export var Cylinders;
|
|
|
153
153
|
var padding = getMaxSize(size) * props.sizeFactor;
|
|
154
154
|
var invariantBoundingSphere = Sphere3D.clone(cylinders.boundingSphere);
|
|
155
155
|
var boundingSphere = calculateTransformBoundingSphere(invariantBoundingSphere, transform.aTransform.ref.value, instanceCount);
|
|
156
|
-
return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ aMapping: cylinders.mappingBuffer, aGroup: cylinders.groupBuffer, aStart: cylinders.startBuffer, aEnd: cylinders.endBuffer, aScale: cylinders.scaleBuffer, aCap: cylinders.capBuffer, elements: cylinders.indexBuffer, boundingSphere: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
|
|
156
|
+
return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ dGeometryType: 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: ValueCell.create(boundingSphere), invariantBoundingSphere: ValueCell.create(invariantBoundingSphere), uInvariantBoundingSphere: ValueCell.create(Vec4.ofSphere(invariantBoundingSphere)) }, color), size), marker), overpaint), transparency), material), clipping), transform), { padding: ValueCell.create(padding) }), BaseGeometry.createValues(props, counts)), { uSizeFactor: ValueCell.create(props.sizeFactor * props.sizeAspectRatio), uDoubleSided: ValueCell.create(props.doubleSided), dIgnoreLight: ValueCell.create(props.ignoreLight), dXrayShaded: ValueCell.create(props.xrayShaded), uBumpFrequency: ValueCell.create(props.bumpFrequency), uBumpAmplitude: ValueCell.create(props.bumpAmplitude) });
|
|
157
157
|
}
|
|
158
158
|
function createValuesSimple(cylinders, props, colorValue, sizeValue, transform) {
|
|
159
159
|
var s = BaseGeometry.createSimple(colorValue, sizeValue, transform);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
|
|
3
3
|
*
|
|
4
4
|
* @author Alexander Rose <alexander.rose@weirdbyte.de>
|
|
5
5
|
*/
|
|
6
6
|
import { Texture } from '../../../mol-gl/webgl/texture';
|
|
7
7
|
import { Box3D, Sphere3D } from '../../../mol-math/geometry';
|
|
8
|
-
import { Mat4,
|
|
8
|
+
import { Mat4, Vec3, Vec4 } from '../../../mol-math/linear-algebra';
|
|
9
9
|
import { ValueCell } from '../../../mol-util';
|
|
10
10
|
import { ParamDefinition as PD } from '../../../mol-util/param-definition';
|
|
11
11
|
import { GeometryUtils } from '../geometry';
|
|
@@ -24,51 +24,18 @@ export interface DirectVolume {
|
|
|
24
24
|
readonly unitToCartn: ValueCell<Mat4>;
|
|
25
25
|
readonly cartnToUnit: ValueCell<Mat4>;
|
|
26
26
|
readonly packedGroup: ValueCell<boolean>;
|
|
27
|
+
readonly axisOrder: ValueCell<Vec3>;
|
|
27
28
|
/** Bounding sphere of the volume */
|
|
28
29
|
readonly boundingSphere: Sphere3D;
|
|
29
30
|
setBoundingSphere(boundingSphere: Sphere3D): void;
|
|
30
31
|
}
|
|
31
32
|
export declare namespace DirectVolume {
|
|
32
|
-
function create(bbox: Box3D, gridDimension: Vec3, transform: Mat4, unitToCartn: Mat4, cellDim: Vec3, texture: Texture, stats: Grid['stats'], packedGroup: boolean, directVolume?: DirectVolume): DirectVolume;
|
|
33
|
+
function create(bbox: Box3D, gridDimension: Vec3, transform: Mat4, unitToCartn: Mat4, cellDim: Vec3, texture: Texture, stats: Grid['stats'], packedGroup: boolean, axisOrder: Vec3, directVolume?: DirectVolume): DirectVolume;
|
|
33
34
|
function createEmpty(directVolume?: DirectVolume): DirectVolume;
|
|
34
|
-
function createRenderModeParam(stats?: Grid['stats']): PD.Mapped<PD.NamedParams<PD.Normalize<{
|
|
35
|
-
controlPoints: Vec2[];
|
|
36
|
-
list: {
|
|
37
|
-
kind: "set" | "interpolate";
|
|
38
|
-
colors: import("../../../mol-util/color/color").ColorListEntry[];
|
|
39
|
-
};
|
|
40
|
-
}>, "volume"> | PD.NamedParams<PD.Normalize<{
|
|
41
|
-
isoValue: Readonly<{
|
|
42
|
-
kind: "absolute";
|
|
43
|
-
absoluteValue: number;
|
|
44
|
-
}> | Readonly<{
|
|
45
|
-
kind: "relative";
|
|
46
|
-
relativeValue: number;
|
|
47
|
-
}>;
|
|
48
|
-
singleLayer: boolean;
|
|
49
|
-
}>, "isosurface">>;
|
|
50
35
|
const Params: {
|
|
51
|
-
doubleSided: PD.BooleanParam;
|
|
52
|
-
flipSided: PD.BooleanParam;
|
|
53
|
-
flatShaded: PD.BooleanParam;
|
|
54
36
|
ignoreLight: PD.BooleanParam;
|
|
55
37
|
xrayShaded: PD.BooleanParam;
|
|
56
|
-
|
|
57
|
-
controlPoints: Vec2[];
|
|
58
|
-
list: {
|
|
59
|
-
kind: "set" | "interpolate";
|
|
60
|
-
colors: import("../../../mol-util/color/color").ColorListEntry[];
|
|
61
|
-
};
|
|
62
|
-
}>, "volume"> | PD.NamedParams<PD.Normalize<{
|
|
63
|
-
isoValue: Readonly<{
|
|
64
|
-
kind: "absolute";
|
|
65
|
-
absoluteValue: number;
|
|
66
|
-
}> | Readonly<{
|
|
67
|
-
kind: "relative";
|
|
68
|
-
relativeValue: number;
|
|
69
|
-
}>;
|
|
70
|
-
singleLayer: boolean;
|
|
71
|
-
}>, "isosurface">>;
|
|
38
|
+
controlPoints: PD.LineGraph;
|
|
72
39
|
stepsPerCell: PD.Numeric;
|
|
73
40
|
jumpLength: PD.Numeric;
|
|
74
41
|
alpha: PD.Numeric;
|