Browse Source

fix computeIntraUnitBonds from IndexPairBonds

David Sehnal 4 years ago
parent
commit
23b1426567

+ 1 - 1
src/mol-model/structure/structure/unit/bonds/inter-compute.ts

@@ -72,7 +72,7 @@ function findPairBonds(unitA: Unit.Atomic, unitB: Unit.Atomic, props: BondComput
             const { order, symmetryA, symmetryB } = indexPairs.edgeProps;
             for (let i = indexPairs.offset[aI], il = indexPairs.offset[aI + 1]; i < il; ++i) {
                 const bI = indexPairs.b[i];
-                if (aI >=  bI) continue;
+                if (aI >= bI) continue;
 
                 const _bI = SortedArray.indexOf(unitA.elements, bI) as StructureElement.UnitIndex;
                 if (_bI < 0) continue;

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

@@ -64,7 +64,10 @@ function _computeBonds(unit: Unit.Atomic, props: BondComputationProps): IntraUni
         if (!props.forceCompute && indexPairs) {
             const { edgeProps } = indexPairs;
             for (let i = indexPairs.offset[aI], il = indexPairs.offset[aI + 1]; i < il; ++i) {
-                const _bI = SortedArray.indexOf(unit.elements, indexPairs.b[i]) as StructureElement.UnitIndex;
+                const bI = indexPairs.b[i];
+                if (aI >= bI) continue;
+
+                const _bI = SortedArray.indexOf(unit.elements, bI) as StructureElement.UnitIndex;
                 if (_bI < 0) continue;
                 if (edgeProps.symmetryA[i] !== edgeProps.symmetryB[i]) continue;
                 if (type_symbol.value(aI) === 'H' && type_symbol.value(indexPairs.b[i]) === 'H') continue;