From 014358ac47340dc3af29f69c0db715c7ff9b925a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20Mal=C3=BD?= <michal.maly@ibt.cas.cz>
Date: Mon, 1 Aug 2022 18:55:53 +0200
Subject: [PATCH] ReDNATCO plugin stage 12

---
 src/apps/rednatco/index.tsx           | 8 +++++---
 src/mol-theme/color/element-symbol.ts | 6 ++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/apps/rednatco/index.tsx b/src/apps/rednatco/index.tsx
index 74f2ed44f..20925066f 100644
--- a/src/apps/rednatco/index.tsx
+++ b/src/apps/rednatco/index.tsx
@@ -71,6 +71,8 @@ const ConformersByClass = {
 };
 type ConformersByClass = typeof ConformersByClass;
 
+const DefaultChainColor = Color(0xD9D9D9);
+
 class ColorBox extends React.Component<{ caption: string, color: Color }> {
     render() {
         const lum = luminance(this.props.color);
@@ -472,7 +474,7 @@ class ReDNATCOMspViewer {
                         name: 'cartoon',
                         params: { sizeFactor: 0.2, sizeAspectRatio: 0.35, aromaticBonds: false },
                     },
-                    colorTheme: { name: 'chain-id', params: { asymId: 'auth' } },
+                    colorTheme: { name: 'uniform', params: { color: DefaultChainColor } }
                 };
             case 'ball-and-stick':
                 return {
@@ -480,7 +482,7 @@ class ReDNATCOMspViewer {
                         name: 'ball-and-stick',
                         params: { sizeFactor: 0.2, sizeAspectRatio: 0.35, aromaticBonds: false },
                     },
-                    colorTheme: { name: 'element-symbol', params: { carbonColor: 'chain-id' } },
+                    colorTheme: { name: 'element-symbol', params: { carbonColor: { name: 'custom', params: DefaultChainColor } } },
                 };
         }
     }
@@ -783,7 +785,7 @@ class ReDNATCOMspViewer {
                     StateTransforms.Representation.StructureRepresentation3D,
                     this.substructureVisuals('cartoon'),
                     { ref: IDs.ID('visual', 'nucleic', BaseRef) }
-                );
+                )
             if (display.showPyramids) {
                 bb.to(IDs.ID('structure', 'nucleic', BaseRef))
                     .apply(
diff --git a/src/mol-theme/color/element-symbol.ts b/src/mol-theme/color/element-symbol.ts
index 29d49ad9d..2d3c723ba 100644
--- a/src/mol-theme/color/element-symbol.ts
+++ b/src/mol-theme/color/element-symbol.ts
@@ -40,7 +40,8 @@ export const ElementSymbolColorThemeParams = {
         'operator-name': PD.Group(OperatorNameColorThemeParams),
         'model-index': PD.Group(ModelIndexColorThemeParams),
         'structure-index': PD.Group(StructureIndexColorThemeParams),
-        'element-symbol': PD.EmptyGroup()
+        'element-symbol': PD.EmptyGroup(),
+        'custom': PD.Color(Color(0xCCCCCC))
     }, { description: 'Use chain-id coloring for carbon atoms.' }),
     saturation: PD.Numeric(0, { min: -6, max: 6, step: 0.1 }),
     lightness: PD.Numeric(0.2, { min: -6, max: 6, step: 0.1 }),
@@ -71,7 +72,8 @@ export function ElementSymbolColorTheme(ctx: ThemeDataContext, props: PD.Values<
                         pcc.name === 'model-index' ? ModelIndexColorTheme(ctx, pcc.params).color :
                             pcc.name === 'structure-index' ? StructureIndexColorTheme(ctx, pcc.params).color :
                                 pcc.name === 'element-symbol' ? undefined :
-                                    assertUnreachable(pcc);
+                                    pcc.name === 'custom' ? () => pcc.params :
+                                        assertUnreachable(pcc);
 
     function elementColor(element: ElementSymbol, location: Location) {
         return (carbonColor && element === 'C')
-- 
GitLab