void ResolveMarkers(VgVisualElement vgVisElem, IMayHaveMarkers mayHasMarkers) { //TODO: review here again*** //assume marker link by id VgPathVisualMarkers pathRenderMarkers = vgVisElem._pathMarkers; if (mayHasMarkers.MarkerStart != null) { if (pathRenderMarkers == null) { vgVisElem._pathMarkers = pathRenderMarkers = new VgPathVisualMarkers(); } BuildDefinitionNodes(); if (_registeredElemsById.TryGetValue(mayHasMarkers.MarkerStart.Value, out VgVisualElement marker)) { pathRenderMarkers.StartMarker = marker; } } if (mayHasMarkers.MarkerMid != null) { if (pathRenderMarkers == null) { vgVisElem._pathMarkers = pathRenderMarkers = new VgPathVisualMarkers(); } BuildDefinitionNodes(); if (_registeredElemsById.TryGetValue(mayHasMarkers.MarkerMid.Value, out VgVisualElement marker)) { pathRenderMarkers.MidMarker = marker; } } if (mayHasMarkers.MarkerEnd != null) { if (pathRenderMarkers == null) { vgVisElem._pathMarkers = pathRenderMarkers = new VgPathVisualMarkers(); } BuildDefinitionNodes(); if (_registeredElemsById.TryGetValue(mayHasMarkers.MarkerEnd.Value, out VgVisualElement marker)) { pathRenderMarkers.EndMarker = marker; } } }
public static bool AssignMarker(IMayHaveMarkers mayHasMarker, string attrName, string attrValue) { switch (attrName) { case "marker-start": mayHasMarker.MarkerStart = VgElemCreator.ParseAttributeLink(attrValue); return(true); case "marker-mid": mayHasMarker.MarkerMid = VgElemCreator.ParseAttributeLink(attrValue); return(true); case "marker-end": mayHasMarker.MarkerEnd = VgElemCreator.ParseAttributeLink(attrValue); return(true); } return(false); }