예제 #1
0
        public void Record()
        {
            uturnAllowed_         = JRMan.GetUturnAllowed(SegmentId, StartNode);
            nearTurnOnRedAllowed_ = JRMan.GetNearTurnOnRedAllowed(SegmentId, StartNode);
            farTurnOnRedAllowed_  = JRMan.GetFarTurnOnRedAllowed(SegmentId, StartNode);
            laneChangingAllowedWhenGoingStraight_ = JRMan.GetLaneChangingAllowedWhenGoingStraight(SegmentId, StartNode);
            enteringBlockedJunctionAllowed_       = JRMan.GetEnteringBlockedJunctionAllowed(SegmentId, StartNode);
            pedestrianCrossingAllowed_            = JRMan.GetPedestrianCrossingAllowed(SegmentId, StartNode);

            prioirtySign_ = priorityMan.GetPrioritySign(SegmentId, StartNode);

            lanes_ = LaneArrowsRecord.GetLanes(SegmentId, StartNode);
            foreach (IRecordable lane in lanes_)
            {
                lane.Record();
            }
        }
예제 #2
0
        public static List <LaneArrowsRecord> GetLanes(ushort segmentId, bool startNode)
        {
            var ret   = new List <LaneArrowsRecord>();
            var lanes = netService.GetSortedLanes(
                segmentId,
                ref segmentId.ToSegment(),
                startNode,
                LaneArrowManager.LANE_TYPES,
                LaneArrowManager.VEHICLE_TYPES,
                sort: false);

            foreach (var lane in lanes)
            {
                LaneArrowsRecord laneData = new LaneArrowsRecord {
                    LaneId = lane.laneId,
                };
                ret.Add(laneData);
            }
            return(ret);
        }
예제 #3
0
        public static List <LaneArrowsRecord> GetLanes(ushort segmentId, bool startNode)
        {
            int maxLaneCount = segmentId.ToSegment().Info.m_lanes.Length;
            var ret          = new List <LaneArrowsRecord>(maxLaneCount);
            ExtSegmentManager extSegmentManager = ExtSegmentManager.Instance;
            var lanes = extSegmentManager.GetSortedLanes(
                segmentId,
                ref segmentId.ToSegment(),
                startNode,
                LaneArrowManager.LANE_TYPES,
                LaneArrowManager.VEHICLE_TYPES,
                sort: false);

            foreach (var lane in lanes)
            {
                LaneArrowsRecord laneData = new LaneArrowsRecord {
                    LaneId = lane.laneId,
                };
                ret.Add(laneData);
            }
            ret.TrimExcess();
            return(ret);
        }