diff --git a/src/mol-script/transpilers/rasmol/operators.ts b/src/mol-script/transpilers/rasmol/operators.ts index 0074a7625d8ffc5d89b27b922b4cac14ae8aa963..8c228ccfbd37a7a8c41ab9059063a2021da91b15 100644 --- a/src/mol-script/transpilers/rasmol/operators.ts +++ b/src/mol-script/transpilers/rasmol/operators.ts @@ -41,5 +41,15 @@ export const operators: OperatorList = [ rule: h.infixOp(/OR|\||\|\|/i), map: (op, s1, s2) => B.struct.combinator.merge([s1, s2]) } + { + '@desc': 'Selects atoms within a specified distance of a selection', + '@examples': ['within 5 of name FE'], + name: 'within', + type: h.prefix, + rule: h.prefixOp(/WITHIN\s+([-+]?[0-9]*\.?[0-9]+)\s+OF/i, 1).map((x: any) => parseFloat(x)), + map: (radius: number, selection: Expression) => { + return B.struct.modifier.includeSurroundings({ 0: selection, radius }); + } + }, ];