Exemple #1
0
        private bool CheckPDContained(TMG.IZone origin, TMG.IZone destination)
        {
            var containsOrigin      = ValidPlanningDistricts.Contains(origin.PlanningDistrict);
            var containsDestination = ValidPlanningDistricts.Contains(destination.PlanningDistrict);

            if (this.OriginDestinationPDSame)
            {
                if (origin.PlanningDistrict != destination.PlanningDistrict)
                {
                    return(false);
                }
                return(containsOrigin);
            }

            if (this.ExclusiveOrPD)
            {
                return(containsOrigin ^ containsDestination);
            }
            else if (this.ContainsOnePD)
            {
                return(containsOrigin | containsDestination);
            }
            else if (this.ContainsBothPD)
            {
                return(containsOrigin & containsDestination);
            }
            else
            {
                return(!(containsOrigin | containsDestination));
            }
        }
        private float StraightLineDistance(TMG.IZone zone1, TMG.IZone zone2)
        {
            if (zone1 == zone2)
            {
                return(zone1.InternalDistance);
            }
            var deltaX = zone1.X - zone2.X;
            var deltaY = zone1.Y - zone2.Y;

            return((float)Math.Sqrt(deltaX * deltaX + deltaY * deltaY));
        }
        private float ManhattanDistance(TMG.IZone zone1, TMG.IZone zone2)
        {
            if (zone1 == zone2)
            {
                return(zone1.InternalDistance);
            }
            var deltaX = zone1.X - zone2.X;
            var deltaY = zone1.Y - zone2.Y;

            return(Math.Abs(deltaX) + Math.Abs(deltaY));
        }
Exemple #4
0
 protected override bool IsContained(TMG.IZone origin, TMG.IZone destination)
 {
     return(CheckPDContained(origin, destination) && base.IsContained(origin, destination));
 }