diff --git a/src/apps/viewer/extensions/cellpack/model.ts b/src/apps/viewer/extensions/cellpack/model.ts index 4383c786faf2ed9ad9dc8e877454527643f9386d..18e80099cfbfb31ce5cf8855ac0ae14b5047bd71 100644 --- a/src/apps/viewer/extensions/cellpack/model.ts +++ b/src/apps/viewer/extensions/cellpack/model.ts @@ -201,7 +201,8 @@ export const LoadCellPackModel = StateAction.build({ name: 'generate', params: { hue, chroma: [30, 80], luminance: [15, 85], - clusteringStepCount: 50, minSampleCount: 800 + clusteringStepCount: 50, minSampleCount: 800, + maxCount: 75 } } } diff --git a/src/mol-theme/color/util.ts b/src/mol-theme/color/util.ts index f250571ed1605ec6b771e24f63464d4427140572..45d5752ff1caa9de21fb051d3e161f453a1016c6 100644 --- a/src/mol-theme/color/util.ts +++ b/src/mol-theme/color/util.ts @@ -22,7 +22,10 @@ export function getPaletteParams(props: Partial<GetPaletteProps> = {}) { scale: PD.Group({ list: PD.ColorScale<ColorListName>(p.scaleList, ColorListOptions), }, { isFlat: true }), - generate: PD.Group(DistinctColorsParams, { isFlat: true }) + generate: PD.Group({ + ...DistinctColorsParams, + maxCount: PD.Numeric(75, { min: 1, max: 250, step: 1 }) + }, { isFlat: true }) }, { options: [ ['scale', 'From Scale'], @@ -51,8 +54,9 @@ export function getPalette(count: number, props: PaletteProps) { legend = scale.legend color = scale.color } else { + count = Math.min(count, props.palette.params.maxCount) const colors = distinctColors(count, props.palette.params) - color = (i: number) => colors[i] + color = (i: number) => colors[i % count] } return { color, legend }