UNPKG

molstar

Version:

A comprehensive macromolecular library.

50 lines (49 loc) 1.83 kB
/** * Copyright (c) 2021-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { ColorScale } from '../../mol-util/color'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; import { ColorNames } from '../../mol-util/color/names'; var Description = 'Assign color based on the given value of a volume cell.'; export var VolumeValueColorThemeParams = { colorList: PD.ColorList({ kind: 'interpolate', colors: [ [ColorNames.white, 0], [ColorNames.red, 0.25], [ColorNames.white, 0.5], [ColorNames.blue, 0.75], [ColorNames.white, 1] ] }, { offsets: true, isEssential: true }), }; export function getVolumeValueColorThemeParams(ctx) { return VolumeValueColorThemeParams; // TODO return copy } export function VolumeValueColorTheme(ctx, props) { var scale = 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, }; } export var VolumeValueColorThemeProvider = { name: 'volume-value', label: 'Volume Value', category: "Miscellaneous" /* ColorTheme.Category.Misc */, factory: VolumeValueColorTheme, getParams: getVolumeValueColorThemeParams, defaultValues: PD.getDefaultValues(VolumeValueColorThemeParams), isApplicable: function (ctx) { return !!ctx.volume; }, };