Skip to content
Snippets Groups Projects
Commit 5ccb329a authored by Alexander Rose's avatar Alexander Rose
Browse files

added SetUtils.toArray

parent 3cecb53b
No related branches found
No related tags found
No related merge requests found
/** /**
* Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
* *
* @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author David Sehnal <david.sehnal@gmail.com> * @author David Sehnal <david.sehnal@gmail.com>
...@@ -15,6 +15,7 @@ import { PluginContext } from '../context'; ...@@ -15,6 +15,7 @@ import { PluginContext } from '../context';
import Expression from '../../mol-script/language/expression'; import Expression from '../../mol-script/language/expression';
import { BondType, ProteinBackboneAtoms, NucleicBackboneAtoms, SecondaryStructureType } from '../../mol-model/structure/model/types'; import { BondType, ProteinBackboneAtoms, NucleicBackboneAtoms, SecondaryStructureType } from '../../mol-model/structure/model/types';
import { StateTransforms } from '../state/transforms'; import { StateTransforms } from '../state/transforms';
import { SetUtils } from '../../mol-util/set';
export interface StructureSelectionQuery { export interface StructureSelectionQuery {
label: string label: string
...@@ -68,7 +69,7 @@ const backbone = StructureSelectionQuery('Backbone', MS.struct.modifier.union([ ...@@ -68,7 +69,7 @@ const backbone = StructureSelectionQuery('Backbone', MS.struct.modifier.union([
]) ])
]), ]),
'chain-test': MS.core.rel.eq([MS.ammp('objectPrimitive'), 'atomistic']), 'chain-test': MS.core.rel.eq([MS.ammp('objectPrimitive'), 'atomistic']),
'atom-test': MS.core.set.has([MS.set(...Array.from(ProteinBackboneAtoms.values())), MS.ammp('label_atom_id')]) 'atom-test': MS.core.set.has([MS.set(...SetUtils.toArray(ProteinBackboneAtoms)), MS.ammp('label_atom_id')])
}) })
]), ]),
MS.struct.modifier.union([ MS.struct.modifier.union([
...@@ -81,7 +82,7 @@ const backbone = StructureSelectionQuery('Backbone', MS.struct.modifier.union([ ...@@ -81,7 +82,7 @@ const backbone = StructureSelectionQuery('Backbone', MS.struct.modifier.union([
]) ])
]), ]),
'chain-test': MS.core.rel.eq([MS.ammp('objectPrimitive'), 'atomistic']), 'chain-test': MS.core.rel.eq([MS.ammp('objectPrimitive'), 'atomistic']),
'atom-test': MS.core.set.has([MS.set(...Array.from(NucleicBackboneAtoms.values())), MS.ammp('label_atom_id')]) 'atom-test': MS.core.set.has([MS.set(...SetUtils.toArray(NucleicBackboneAtoms)), MS.ammp('label_atom_id')])
}) })
]) ])
]) ])
......
...@@ -4,9 +4,15 @@ ...@@ -4,9 +4,15 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
*/ */
import { iterableToArray } from '../mol-data/util/array';
// TODO use set@@iterator when targeting es6 // TODO use set@@iterator when targeting es6
export namespace SetUtils { export namespace SetUtils {
export function toArray<T>(set: ReadonlySet<T>) {
return iterableToArray(set.values())
}
/** Test if set a contains all elements of set b. */ /** Test if set a contains all elements of set b. */
export function isSuperset<T>(setA: ReadonlySet<T>, setB: ReadonlySet<T>) { export function isSuperset<T>(setA: ReadonlySet<T>, setB: ReadonlySet<T>) {
let flag = true let flag = true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment