From 267f3b67efe554d1ffbfb308514ef04141e9f0be Mon Sep 17 00:00:00 2001 From: John Mayfield Date: Fri, 15 Mar 2024 14:45:59 +0000 Subject: [PATCH] Fix a corner case when depicting cc(C)c --- .../generators/standard/StandardBondGenerator.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/display/renderbasic/src/main/java/org/openscience/cdk/renderer/generators/standard/StandardBondGenerator.java b/display/renderbasic/src/main/java/org/openscience/cdk/renderer/generators/standard/StandardBondGenerator.java index 6e36b3810fb..01be75fe3f3 100644 --- a/display/renderbasic/src/main/java/org/openscience/cdk/renderer/generators/standard/StandardBondGenerator.java +++ b/display/renderbasic/src/main/java/org/openscience/cdk/renderer/generators/standard/StandardBondGenerator.java @@ -697,6 +697,10 @@ else if (atom1Bonds.size() == 1) return generateOffsetDoubleBond(bond, atom1, atom2, atom1Bonds.get(0), atom2Bonds, arom); else if (atom2Bonds.size() == 1) return generateOffsetDoubleBond(bond, atom2, atom1, atom2Bonds.get(0), atom1Bonds, arom); + else if (selectUnsetAromBond(atom1Bonds) != null) + return generateOffsetDoubleBond(bond, atom1, atom2, selectUnsetAromBond(atom1Bonds), atom2Bonds, arom); + else if (selectUnsetAromBond(atom2Bonds) != null) + return generateOffsetDoubleBond(bond, atom2, atom1, selectUnsetAromBond(atom2Bonds), atom1Bonds, arom); else return generateCenteredDoubleBond(bond, atom1, atom2, atom1Bonds, atom2Bonds); } else { @@ -739,6 +743,13 @@ private IBond selectPlainSingleBond(List bonds) { return bonds.get(0); } + private IBond selectUnsetAromBond(List bonds) { + for (IBond bond : bonds) { + if (bond.isAromatic() && bond.getOrder() == UNSET) return bond; + } + return null; + } + /** * A plain bond is a single bond with no stereochemistry type. *