SleepHunter.Models.SpellTarget.ComparePolar C# (CSharp) Method

ComparePolar() private method

private ComparePolar ( Point a, Point b, bool isDescending = false ) : int
a Point
b Point
isDescending bool
return int
        int ComparePolar(Point a, Point b, bool isDescending = false)
        {
            var polarA = RectToPolar(a);
              var polarB = RectToPolar(b);
              var center = RectToPolar(location);

              var radiusADist = polarA.X - location.X;
              var radiusBDist = polarB.X - location.X;

              var angleA = (180 * (polarA.Y - location.Y)) / Math.PI;
              var angleB = (180 * (polarB.Y - location.Y)) / Math.PI;

              if (angleA < 0)
            angleA += 360;

              if (angleB < 0)
            angleB += 360;

              if (radiusADist > radiusBDist)
            return isDescending ? -1 : 1;
              else if (radiusADist < radiusBDist)
            return isDescending ? 1 : -1;

              if (angleA > angleB)
            return isDescending ? -1 : 1;
              else if (angleA < angleB)
            return isDescending ? 1 : -1;

              return 0;
        }