Exemple #1
0
 public NetInfoPointSource(Enter enter, DriveLane leftLane, DriveLane rightLane, MarkupPoint.LocationType location)
 {
     Enter     = enter;
     LeftLane  = leftLane;
     RightLane = rightLane;
     Location  = location;
 }
Exemple #2
0
 public NetInfoPointSource(Enter enter, DriveLane leftLane, DriveLane rightLane, MarkupPoint.LocationType location)
 {
     Enter       = enter;
     LeftLane    = leftLane;
     RightLane   = rightLane;
     Location    = location;
     NetworkType = (LeftLane == null ? NetworkType.None : leftLane.NetworkType) | (RightLane == null ? NetworkType.None : RightLane.NetworkType);
 }
Exemple #3
0
        public static IEnumerable <NetInfoPointSource> GetSource(Enter enter, DriveLane leftLane, DriveLane rightLane)
        {
            if (GetIsEdge(leftLane, rightLane))
            {
                yield return(new NetInfoPointSource(enter, leftLane, rightLane, rightLane == null ? MarkupPoint.LocationType.RightEdge : MarkupPoint.LocationType.LeftEdge));
            }
            else if (GetSideDelta(leftLane, rightLane) >= (leftLane.HalfWidth + rightLane.HalfWidth) / 2)
            {
                yield return(new NetInfoPointSource(enter, leftLane, rightLane, MarkupPoint.LocationType.RightEdge));

                yield return(new NetInfoPointSource(enter, leftLane, rightLane, MarkupPoint.LocationType.LeftEdge));
            }
            else
            {
                yield return(new NetInfoPointSource(enter, leftLane, rightLane, MarkupPoint.LocationType.Between));
            }
        }
Exemple #4
0
 public static float GetCenterDelte(DriveLane leftLane, DriveLane rightLane) => GetIsEdge(leftLane, rightLane) ? 0f : Mathf.Abs(rightLane.Position - leftLane.Position);
Exemple #5
0
 public static float GetSideDelta(DriveLane leftLane, DriveLane rightLane) => GetIsEdge(leftLane, rightLane) ? 0f : Mathf.Abs(rightLane.LeftSidePos - leftLane.RightSidePos);
Exemple #6
0
 public static bool GetIsEdge(DriveLane leftLane, DriveLane rightLane) => rightLane == null ^ leftLane == null;