Example #1
0
        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);
                }
            }
        }
Example #3
0
 static ITrajectory GetTrajectory(MarkupLine line, bool?mustIntersect)
 => mustIntersect == true && line.Trajectory is StraightTrajectory straight ? new StraightTrajectory(straight.Trajectory, false) : line.Trajectory;
Example #4
0
 public static MarkupLinesIntersect Calculate(MarkupLine first, MarkupLine second) => Calculate(new MarkupLinePair(first, second));
Example #5
0
        public void EditLine(MarkupLine line)
        {
            var editor = SelectEditor <LinesEditor>();

            editor?.UpdateEditor(line);
        }
Example #6
0
 static bool IsBorder(MarkupLine line1, MarkupLine line2) => line1 is MarkupCrosswalkLine crosswalkLine && crosswalkLine.Crosswalk.IsBorder(line2);
Example #7
0
 public void EditLine(MarkupLine line) => Edit <LinesEditor, MarkupLine>(line);
Example #8
0
 private void OnDelete(MarkupLine line)
 {
     Panel.DeleteCrosswalk((line as MarkupCrosswalkLine).Crosswalk);
     Panel.DeleteLine(line);
     Tool.Markup.RemoveLine(line);
 }
Example #9
0
 public float this[MarkupLine line] => Pair.First == line ? FirstT : (Pair.Second == line ? SecondT : -1);
Example #10
0
 private void OnDelete(MarkupLine line)
 {
     Tool.Markup.RemoveLine(line);
     Panel.DeleteLine(line);
 }