Exemple #1
0
        /// <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);
        }