public override IEnumerable <MarkupStylePart> Calculate(MarkupCrosswalk crosswalk, MarkupLOD lod) { StyleHelper.GetParts(Width, 0, lod, out int count, out float partWidth); var partOffset = GetVisibleWidth(crosswalk) / count; var startOffset = partOffset / 2; for (var i = 0; i < count; i += 1) { var trajectory = crosswalk.GetTrajectory(startOffset + partOffset * i + OffsetBefore); yield return(new MarkupStylePart(trajectory.StartPosition, trajectory.EndPosition, trajectory.Direction, partWidth, Color)); } }