/// <inheritdoc/> public virtual IRenderingElement Generate(IAtomContainer container, RendererModel model) { ElementGroup group = new ElementGroup(); this.ringSet = this.GetRingSet(container); //Sort the ringSet consistently to ensure consistent rendering. //If this is omitted, the bonds may 'tremble'. ringSet.Sort(new AtomContainerComparatorBy2DCenter <IRing>()); foreach (var bond in container.Bonds) { var bondElement = this.Generate(bond, model); if (bondElement != null) { group.Add(MarkedElement.MarkupBond(bondElement, bond)); } } return(group); }