CounterClockwiseDecimal() private static method

private static CounterClockwiseDecimal ( System.Point pa, System.Point pb, System.Point pc ) : decimal
pa System.Point
pb System.Point
pc System.Point
return decimal
Ejemplo n.º 1
0
        public static double CounterClockwise(Point pa, Point pb, Point pc)
        {
            double num;

            Statistic.CounterClockwiseCount = Statistic.CounterClockwiseCount + (long)1;
            double num1 = (pa.x - pc.x) * (pb.y - pc.y);
            double num2 = (pa.y - pc.y) * (pb.x - pc.x);
            double num3 = num1 - num2;

            if (Behavior.NoExact)
            {
                return(num3);
            }
            if (num1 <= 0)
            {
                if (num1 >= 0)
                {
                    return(num3);
                }
                if (num2 >= 0)
                {
                    return(num3);
                }
                num = -num1 - num2;
            }
            else
            {
                if (num2 <= 0)
                {
                    return(num3);
                }
                num = num1 + num2;
            }
            double num4 = Primitives.ccwerrboundA * num;

            if (num3 >= num4 || -num3 >= num4)
            {
                return(num3);
            }
            return((double)((double)Primitives.CounterClockwiseDecimal(pa, pb, pc)));
        }