private void OnDelete(MarkupLine line) { var fillers = Markup.GetLineFillers(line).ToArray(); if (line is MarkupCrosswalkLine crosswalkLine) { Panel.DeleteCrosswalk(crosswalkLine.Crosswalk); } foreach (var filler in fillers) { Panel.DeleteFiller(filler); } Panel.DeleteLine(line); Tool.Markup.RemoveLine(line); }
public override IStyleData Calculate(MarkupLine line, ITrajectory trajectory, MarkupLOD lod) { if (!CheckDashedLod(lod, Height, Base)) { return(new MarkupStyleParts()); } var borders = line.Borders; return(new MarkupStyleParts(StyleHelper.CalculateDashed(trajectory, Base, Space, CalculateDashes))); IEnumerable <MarkupStylePart> CalculateDashes(ITrajectory trajectory, float startT, float endT) { if (StyleHelper.CalculateDashedParts(borders, trajectory, Invert ? endT : startT, Invert ? startT : endT, Base, Height / (Invert ? 2 : -2), Height, Color, out MarkupStylePart dash)) { dash.MaterialType = MaterialType.Triangle; yield return(dash); } } }
static ITrajectory GetTrajectory(MarkupLine line, bool?mustIntersect) => mustIntersect == true && line.Trajectory is StraightTrajectory straight ? new StraightTrajectory(straight.Trajectory, false) : line.Trajectory;
public static MarkupLinesIntersect Calculate(MarkupLine first, MarkupLine second) => Calculate(new MarkupLinePair(first, second));
public void EditLine(MarkupLine line) { var editor = SelectEditor <LinesEditor>(); editor?.UpdateEditor(line); }
static bool IsBorder(MarkupLine line1, MarkupLine line2) => line1 is MarkupCrosswalkLine crosswalkLine && crosswalkLine.Crosswalk.IsBorder(line2);
public void EditLine(MarkupLine line) => Edit <LinesEditor, MarkupLine>(line);
private void OnDelete(MarkupLine line) { Panel.DeleteCrosswalk((line as MarkupCrosswalkLine).Crosswalk); Panel.DeleteLine(line); Tool.Markup.RemoveLine(line); }
public float this[MarkupLine line] => Pair.First == line ? FirstT : (Pair.Second == line ? SecondT : -1);
private void OnDelete(MarkupLine line) { Tool.Markup.RemoveLine(line); Panel.DeleteLine(line); }