Exemplo n.º 1
0
        private void CreatePoints(NetSegment segment)
        {
            var info           = segment.Info;
            var lanes          = segment.GetLanesId().ToArray();
            var driveLanesIdxs = info.m_sortedLanes.Where(s => Utilities.IsDriveLane(info.m_lanes[s]));

            if (!IsLaneInvert)
            {
                driveLanesIdxs = driveLanesIdxs.Reverse();
            }

            DriveLanes = driveLanesIdxs.Select(d => new DriveLane(this, lanes[d], info.m_lanes[d])).ToArray();
            if (!DriveLanes.Any())
            {
                return;
            }

            Lines = new SegmentMarkupLine[DriveLanes.Length + 1];

            for (int i = 0; i < Lines.Length; i += 1)
            {
                var left       = i - 1 >= 0 ? DriveLanes[i - 1] : null;
                var right      = i < DriveLanes.Length ? DriveLanes[i] : null;
                var markupLine = new SegmentMarkupLine(this, left, right);
                Lines[i] = markupLine;
            }

            foreach (var markupLine in Lines)
            {
                PointsList.AddRange(markupLine.GetMarkupPoints());
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Add new points in curent points list.
 /// Update bounding box.
 /// </summary>
 /// <param name="data">New data that might be add</param>
 public void AddPoints(Data data)
 {
     PointsList.AddRange(data.PointsList);
     Update();
 }