コード例 #1
0
        public RouteProperty Get(Type routePropertyType, RouteLocations locations)
        {
            if (!cache.ContainsKey(routePropertyType))
            {
                return(null);
            }
            var cacheSection = cache[routePropertyType];

            if (!cacheSection.ContainsKey(locations))
            {
                return(null);
            }
            var item = cacheSection[locations];

            return(item);
        }
コード例 #2
0
        public RouteProperty GetClosest(Type routePropertyType, RouteLocations locations, ParameterizedLocation.Direction direction)
        {
            if (!cache.ContainsKey(routePropertyType))
            {
                return(null);
            }
            var                   cacheSection         = cache[routePropertyType];
            RouteProperty         closestRouteProperty = null;
            ParameterizedLocation closestPL            = null;

            if (locations.IsSpan)
            {
                foreach (var item in cacheSection)
                {
                    if (item.Key.Start == locations.Start // need to have same start
                        &&
                        (closestPL == null ||
                         (direction == ParameterizedLocation.Direction.Forward && item.Key.End >= locations.End && item.Key.End < closestPL) ||
                         (direction == ParameterizedLocation.Direction.Backward && item.Key.End <= locations.End && item.Key.End > closestPL)
                        ))
                    {
                        closestPL            = item.Key.End;
                        closestRouteProperty = item.Value;
                    }
                }
            }
            else
            {
                foreach (var item in cacheSection)
                {
                    if (closestPL == null ||
                        (direction == ParameterizedLocation.Direction.Forward && item.Key.Location >= locations.Location && item.Key.Location < closestPL) ||
                        (direction == ParameterizedLocation.Direction.Backward && item.Key.Location <= locations.Location && item.Key.Location > closestPL)
                        )
                    {
                        closestPL            = item.Key.End;
                        closestRouteProperty = item.Value;
                    }
                }
            }
            return(closestRouteProperty);
        }
コード例 #3
0
        public RouteProperty GetLastAdded(Type routePropertyType, RouteLocations desiredLocations)
        {
            if (!lastAddedCache.ContainsKey(routePropertyType))
            {
                return(null);
            }
            var items = lastAddedCache[routePropertyType];

            if (desiredLocations.IsSpan)
            {
                for (int i = items.Count - 1; i >= 0; i--)
                {
                    if (items[i].Locations.Start == desiredLocations.Start)
                    {
                        return(items[i]);
                    }
                }
                return(null);
            }
            else
            {
                return(items[items.Count - 1]);
            }
        }
コード例 #4
0
 protected RouteProperty(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
 {
     Session   = session;
     Locations = locations;
     RetrieveExternalProperty = retrieveExternalProperty;
 }
コード例 #5
0
 protected RouteSpanProperty(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #6
0
 public AltitudeDifferenceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #7
0
 public RouteToStraightLine(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #8
0
ファイル: Speed.cs プロジェクト: gabbe/quickroute
 public Speed(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #9
0
 public MinHeartRateFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #10
0
 public AveragePaceWhenReadingMap(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #11
0
 public MapReadingPercentageFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #12
0
 public AverageStraightLineSpeedFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #13
0
 public MapReadingDurationInSpan(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #14
0
 public AverageTimeBetweenMapReadings(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #15
0
 public AverageDirectionDeviationToNextLapFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #16
0
 public NumberOfMapReadingsFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #17
0
 public StraightLineDistanceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #18
0
 public CircleTimeForward(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #19
0
 public PreviousMapReadingEnd(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #20
0
 public AverageHeartRate(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #21
0
 public CircleTimeAtEndOfSpanFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #22
0
ファイル: AverageCadence.cs プロジェクト: gabbe/quickroute
 public AverageCadenceFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }
コード例 #23
0
ファイル: ElapsedTime.cs プロジェクト: gabbe/quickroute
 public ElapsedTimeFromStart(Session session, RouteLocations locations, RetrieveExternalPropertyDelegate retrieveExternalProperty)
     : base(session, locations, retrieveExternalProperty)
 {
 }