Browse Source

bond tweaks

- add DefaultBondMaxRadius constant
- add IndexPairBonds.Props object
Alexander Rose 3 years ago
parent
commit
bce53d03a5

+ 7 - 2
src/mol-model-formats/structure/property/bonds/index-pair.ts

@@ -10,6 +10,7 @@ import { Column } from '../../../../mol-data/db';
 import { FormatPropertyProvider } from '../../common/property';
 import { BondType } from '../../../../mol-model/structure/model/types';
 import { ElementIndex } from '../../../../mol-model/structure';
+import { DefaultBondMaxRadius } from '../../../../mol-model/structure/structure/unit/bonds/common';
 
 export type IndexPairsProps = {
     readonly order: ArrayLike<number>
@@ -52,7 +53,11 @@ export namespace IndexPairBonds {
         count: number
     }
 
-    export function fromData(data: Data, maxDistance = 4): IndexPairBonds {
+    export const DefaultProps = { maxDistance: DefaultBondMaxRadius };
+    export type Props = typeof DefaultProps
+
+    export function fromData(data: Data, props: Partial<Props> = {}): IndexPairBonds {
+        const p = { ...DefaultProps, ...props };
         const { pairs, count } = data;
         const indexA = pairs.indexA.toArray() as ArrayLike<ElementIndex>;
         const indexB = pairs.indexB.toArray() as ArrayLike<ElementIndex>;
@@ -61,7 +66,7 @@ export namespace IndexPairBonds {
         const flag = pairs.flag && pairs.flag.toArray();
         return {
             bonds: getGraph(indexA, indexB, { order, distance, flag }, count),
-            maxDistance
+            maxDistance: p.maxDistance
         };
     }
 }

+ 4 - 1
src/mol-model/structure/structure/unit/bonds/common.ts

@@ -7,6 +7,9 @@
 
 import { ElementSymbol } from '../../../model/types';
 
+/** Default for atomic bonds */
+export const DefaultBondMaxRadius = 4;
+
 export interface BondComputationProps {
     forceCompute: boolean
     noCompute: boolean
@@ -15,7 +18,7 @@ export interface BondComputationProps {
 export const DefaultBondComputationProps: BondComputationProps = {
     forceCompute: false,
     noCompute: false,
-    maxRadius: 4,
+    maxRadius: DefaultBondMaxRadius,
 };
 
 // H,D,T are all mapped to H