示例#1
0
        /// <inheritdoc/>
        public IRenderingElement Generate(IReaction reaction, RendererModel model)
        {
            if (!model.GetShowAtomAtomMapping())
            {
                return(null);
            }
            var elementGroup = new ElementGroup();
            var mappingColor = model.GetAtomAtomMappingLineColor();

            foreach (var mapping in reaction.Mappings)
            {
                // XXX assume that there are only 2 endpoints!
                // XXX assume that the ChemObjects are actually IAtoms...
                var endPointA = (IAtom)mapping[0];
                var endPointB = (IAtom)mapping[1];
                var pointA    = ToPoint(endPointA.Point2D.Value);
                var pointB    = ToPoint(endPointB.Point2D.Value);
                elementGroup.Add(new LineElement(pointA, pointB, GetWidthForMappingLine(model), mappingColor));
            }
            return(elementGroup);
        }