/// <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); }