Ejemplo n.º 1
0
        public static bool FromXml(XElement config, Markup makrup, ObjectsMap map, out MarkupLine line, out bool invert)
        {
            var lineId = config.GetAttrValue <ulong>(nameof(Id));

            if (!MarkupPointPair.FromHash(lineId, makrup, map, out MarkupPointPair pointPair, out invert))
            {
                line = null;
                return(false);
            }

            if (!makrup.TryGetLine(pointPair, out line))
            {
                var type = (LineType)config.GetAttrValue("T", (int)pointPair.DefaultType);
                switch (type)
                {
                case LineType.Regular:
                    line = new MarkupRegularLine(makrup, pointPair);
                    break;

                case LineType.Stop:
                    line = new MarkupStopLine(makrup, pointPair);
                    break;

                case LineType.Crosswalk:
                    line = new MarkupCrosswalkLine(makrup, pointPair);
                    break;

                default:
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
 public bool TryGetLine <LineType>(ulong lineId, Dictionary <ObjectId, ObjectId> map, out LineType line)
     where LineType : MarkupLine
 {
     if (MarkupPointPair.FromHash(lineId, this, map, out MarkupPointPair pair))
     {
         return(TryGetLine(pair.Hash, out line));
     }
     else
     {
         line = null;
         return(false);
     }
 }
Ejemplo n.º 3
0
        public static bool FromXml(XElement config, Markup makrup, Dictionary <ObjectId, ObjectId> map, out MarkupLine line)
        {
            var lineId = config.GetAttrValue <ulong>(nameof(Id));

            MarkupPointPair.FromHash(lineId, makrup, map, out MarkupPointPair pointPair);
            if (!makrup.TryGetLine(pointPair.Hash, out line))
            {
                line = new MarkupLine(makrup, pointPair);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 4
0
        public static bool FromXml(XElement config, MarkupLine mainLine, Dictionary <ObjectId, ObjectId> map, out LinesIntersectEdge linePoint)
        {
            var lineId = config.GetAttrValue <ulong>(MarkupLine.XmlName);

            MarkupPointPair.FromHash(lineId, mainLine.Markup, map, out MarkupPointPair pair);
            if (mainLine.Markup.TryGetLine(pair.Hash, out MarkupLine line))
            {
                linePoint = new LinesIntersectEdge(mainLine, line);
                return(true);
            }
            else
            {
                linePoint = null;
                return(false);
            }
        }
Ejemplo n.º 5
0
        public static bool FromXml(XElement config, Markup markup, Dictionary<ObjectId, ObjectId> map, out IntersectFillerVertex linePoint)
        {
            var lineId1 = config.GetAttrValue<ulong>(MarkupPointPair.XmlName1);
            MarkupPointPair.FromHash(lineId1, markup, map, out MarkupPointPair pair1);
            var lineId2 = config.GetAttrValue<ulong>(MarkupPointPair.XmlName2);
            MarkupPointPair.FromHash(lineId2, markup, map, out MarkupPointPair pair2);

            if (markup.TryGetLine(pair1.Hash, out MarkupLine line1) && markup.TryGetLine(pair2.Hash, out MarkupLine line2))
            {
                linePoint = new IntersectFillerVertex(line1, line2);
                return true;
            }
            else
            {
                linePoint = null;
                return false;
            }
        }