@@ -146,7 +146,7 @@ private StandardBondGenerator(IAtomContainer container,
146146 // index atoms and rings
147147 for (int i = 0 ; i < container .getAtomCount (); i ++)
148148 atomIndexMap .put (container .getAtom (i ), i );
149- ringMap = ringPreferenceMap (container );
149+ ringMap = ringPreferenceMap (container , donutGenerator . smallest );
150150
151151 // set parameters
152152 this .scale = parameters .get (BasicSceneGenerator .Scale .class );
@@ -1588,12 +1588,16 @@ static int winding(IBond bond1, IBond bond2) {
15881588 * Creates a mapping of bonds to preferred rings (stored as IAtomContainers).
15891589 *
15901590 * @param container structure representation
1591+ * @param smallest smallest ring set to use (e.g. through each bond)
15911592 * @return bond to ring map
15921593 */
1593- static Map <IBond , IAtomContainer > ringPreferenceMap (IAtomContainer container ) {
1594+ static Map <IBond , IAtomContainer > ringPreferenceMap (IAtomContainer container ,
1595+ IRingSet smallest ) {
1596+
1597+ if (smallest == null )
1598+ smallest = Cycles .edgeShort (container ).toRingSet ();
15941599
1595- final IRingSet relevantRings = Cycles .edgeShort (container ).toRingSet ();
1596- final List <IAtomContainer > rings = AtomContainerSetManipulator .getAllAtomContainers (relevantRings );
1600+ final List <IAtomContainer > rings = AtomContainerSetManipulator .getAllAtomContainers (smallest );
15971601
15981602 Collections .sort (rings , new RingBondOffsetComparator ());
15991603
@@ -1611,6 +1615,16 @@ static Map<IBond, IAtomContainer> ringPreferenceMap(IAtomContainer container) {
16111615 return Collections .unmodifiableMap (ringMap );
16121616 }
16131617
1618+ /**
1619+ * Creates a mapping of bonds to preferred rings (stored as IAtomContainers).
1620+ *
1621+ * @param container structure representation
1622+ * @return bond to ring map
1623+ */
1624+ static Map <IBond , IAtomContainer > ringPreferenceMap (IAtomContainer container ) {
1625+ return ringPreferenceMap (container , Cycles .edgeShort (container ).toRingSet ());
1626+ }
1627+
16141628 /**
16151629 * Normalise the ring ordering in a ring such that the overall winding is anti clockwise.
16161630 * The normalisation exploits the fact that (most) rings will be drawn with more convex
0 commit comments