UNPKG

molstar

Version:

A comprehensive macromolecular library.

55 lines (54 loc) 2.29 kB
"use strict"; /** * Copyright (c) 2021-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.VolumeValueColorThemeProvider = exports.VolumeValueColorTheme = exports.getVolumeValueColorThemeParams = exports.VolumeValueColorThemeParams = void 0; var color_1 = require("../../mol-util/color"); var param_definition_1 = require("../../mol-util/param-definition"); var names_1 = require("../../mol-util/color/names"); var Description = 'Assign color based on the given value of a volume cell.'; exports.VolumeValueColorThemeParams = { colorList: param_definition_1.ParamDefinition.ColorList({ kind: 'interpolate', colors: [ [names_1.ColorNames.white, 0], [names_1.ColorNames.red, 0.25], [names_1.ColorNames.white, 0.5], [names_1.ColorNames.blue, 0.75], [names_1.ColorNames.white, 1] ] }, { offsets: true, isEssential: true }), }; function getVolumeValueColorThemeParams(ctx) { return exports.VolumeValueColorThemeParams; // TODO return copy } exports.getVolumeValueColorThemeParams = getVolumeValueColorThemeParams; function VolumeValueColorTheme(ctx, props) { var scale = color_1.ColorScale.create({ domain: [0, 1], listOrName: props.colorList.colors }); var colors = []; for (var i = 0; i < 256; ++i) { colors[i] = scale.color(i / 255); } var palette = { colors: colors, filter: 'linear' }; return { factory: VolumeValueColorTheme, granularity: 'direct', props: props, description: Description, legend: scale.legend, palette: palette, }; } exports.VolumeValueColorTheme = VolumeValueColorTheme; exports.VolumeValueColorThemeProvider = { name: 'volume-value', label: 'Volume Value', category: "Miscellaneous" /* ColorTheme.Category.Misc */, factory: VolumeValueColorTheme, getParams: getVolumeValueColorThemeParams, defaultValues: param_definition_1.ParamDefinition.getDefaultValues(exports.VolumeValueColorThemeParams), isApplicable: function (ctx) { return !!ctx.volume; }, };