From 9bd60f8e8e65c18872d27ac82b003a7c438e7726 Mon Sep 17 00:00:00 2001 From: dsehnal <david.sehnal@gmail.com> Date: Tue, 11 Jan 2022 17:34:43 +0100 Subject: [PATCH] Fix getOperatorsForIndex --- CHANGELOG.md | 2 ++ src/mol-model/structure/structure/symmetry.ts | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fbde5f22f..4c25ca8f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ Note that since we don't clearly distinguish between a public and private interf ## [Unreleased] +- Fix ``getOperatorsForIndex`` + ## [v3.0.0-dev.9] - 2022-01-09 - Add PDBj as a ``pdb-provider`` option diff --git a/src/mol-model/structure/structure/symmetry.ts b/src/mol-model/structure/structure/symmetry.ts index 2358788f9..57a2136af 100644 --- a/src/mol-model/structure/structure/symmetry.ts +++ b/src/mol-model/structure/structure/symmetry.ts @@ -184,16 +184,13 @@ function getOperatorsForRange(symmetry: Symmetry, ijkMin: Vec3, ijkMax: Vec3, mo operators[0] = Spacegroup.getSymmetryOperator(spacegroup, 0, 0, 0, 0); } - const { toFractional } = spacegroup.cell; - const ref = Vec3.transformMat4(Vec3(), modelCenter, toFractional); - for (let op = 0; op < spacegroup.operators.length; op++) { for (let i = ijkMin[0]; i <= ijkMax[0]; i++) { for (let j = ijkMin[1]; j <= ijkMax[1]; j++) { for (let k = ijkMin[2]; k <= ijkMax[2]; k++) { // check if we have added identity as the 1st operator. if (!ncsCount && op === 0 && i === 0 && j === 0 && k === 0) continue; - operators.push(...getOperatorsForIndex(symmetry, op, i, j, k, ref)); + operators.push(...getOperatorsForIndex(symmetry, op, i, j, k, modelCenter)); } } } -- GitLab