remove unused SkXRay functions

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1016263002
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp
index 5331bb7..b4d12db 100644
--- a/src/core/SkGeometry.cpp
+++ b/src/core/SkGeometry.cpp
@@ -8,61 +8,6 @@
 #include "SkGeometry.h"
 #include "SkMatrix.h"
 
-bool SkXRayCrossesLine(const SkXRay& pt,
-                       const SkPoint pts[2],
-                       bool* ambiguous) {
-    if (ambiguous) {
-        *ambiguous = false;
-    }
-    // Determine quick discards.
-    // Consider query line going exactly through point 0 to not
-    // intersect, for symmetry with SkXRayCrossesMonotonicCubic.
-    if (pt.fY == pts[0].fY) {
-        if (ambiguous) {
-            *ambiguous = true;
-        }
-        return false;
-    }
-    if (pt.fY < pts[0].fY && pt.fY < pts[1].fY)
-        return false;
-    if (pt.fY > pts[0].fY && pt.fY > pts[1].fY)
-        return false;
-    if (pt.fX > pts[0].fX && pt.fX > pts[1].fX)
-        return false;
-    // Determine degenerate cases
-    if (SkScalarNearlyZero(pts[0].fY - pts[1].fY))
-        return false;
-    if (SkScalarNearlyZero(pts[0].fX - pts[1].fX)) {
-        // We've already determined the query point lies within the
-        // vertical range of the line segment.
-        if (pt.fX <= pts[0].fX) {
-            if (ambiguous) {
-                *ambiguous = (pt.fY == pts[1].fY);
-            }
-            return true;
-        }
-        return false;
-    }
-    // Ambiguity check
-    if (pt.fY == pts[1].fY) {
-        if (pt.fX <= pts[1].fX) {
-            if (ambiguous) {
-                *ambiguous = true;
-            }
-            return true;
-        }
-        return false;
-    }
-    // Full line segment evaluation
-    SkScalar delta_y = pts[1].fY - pts[0].fY;
-    SkScalar delta_x = pts[1].fX - pts[0].fX;
-    SkScalar slope = SkScalarDiv(delta_y, delta_x);
-    SkScalar b = pts[0].fY - SkScalarMul(slope, pts[0].fX);
-    // Solve for x coordinate at y = pt.fY
-    SkScalar x = SkScalarDiv(pt.fY - b, slope);
-    return pt.fX <= x;
-}
-
 /** If defined, this makes eval_quad and eval_cubic do more setup (sometimes
     involving integer multiplies by 2 or 3, but fewer calls to SkScalarMul.
     May also introduce overflow of fixed when we compute our setup.
@@ -949,130 +894,6 @@
     return count + 1;
 }
 
-bool SkXRayCrossesMonotonicCubic(const SkXRay& pt, const SkPoint cubic[4],
-                                 bool* ambiguous) {
-    if (ambiguous) {
-        *ambiguous = false;
-    }
-
-    // Find the minimum and maximum y of the extrema, which are the
-    // first and last points since this cubic is monotonic
-    SkScalar min_y = SkMinScalar(cubic[0].fY, cubic[3].fY);
-    SkScalar max_y = SkMaxScalar(cubic[0].fY, cubic[3].fY);
-
-    if (pt.fY == cubic[0].fY
-        || pt.fY < min_y
-        || pt.fY > max_y) {
-        // The query line definitely does not cross the curve
-        if (ambiguous) {
-            *ambiguous = (pt.fY == cubic[0].fY);
-        }
-        return false;
-    }
-
-    bool pt_at_extremum = (pt.fY == cubic[3].fY);
-
-    SkScalar min_x =
-        SkMinScalar(
-            SkMinScalar(
-                SkMinScalar(cubic[0].fX, cubic[1].fX),
-                cubic[2].fX),
-            cubic[3].fX);
-    if (pt.fX < min_x) {
-        // The query line definitely crosses the curve
-        if (ambiguous) {
-            *ambiguous = pt_at_extremum;
-        }
-        return true;
-    }
-
-    SkScalar max_x =
-        SkMaxScalar(
-            SkMaxScalar(
-                SkMaxScalar(cubic[0].fX, cubic[1].fX),
-                cubic[2].fX),
-            cubic[3].fX);
-    if (pt.fX > max_x) {
-        // The query line definitely does not cross the curve
-        return false;
-    }
-
-    // Do a binary search to find the parameter value which makes y as
-    // close as possible to the query point. See whether the query
-    // line's origin is to the left of the associated x coordinate.
-
-    // kMaxIter is chosen as the number of mantissa bits for a float,
-    // since there's no way we are going to get more precision by
-    // iterating more times than that.
-    const int kMaxIter = 23;
-    SkPoint eval;
-    int iter = 0;
-    SkScalar upper_t;
-    SkScalar lower_t;
-    // Need to invert direction of t parameter if cubic goes up
-    // instead of down
-    if (cubic[3].fY > cubic[0].fY) {
-        upper_t = SK_Scalar1;
-        lower_t = 0;
-    } else {
-        upper_t = 0;
-        lower_t = SK_Scalar1;
-    }
-    do {
-        SkScalar t = SkScalarAve(upper_t, lower_t);
-        SkEvalCubicAt(cubic, t, &eval, NULL, NULL);
-        if (pt.fY > eval.fY) {
-            lower_t = t;
-        } else {
-            upper_t = t;
-        }
-    } while (++iter < kMaxIter
-             && !SkScalarNearlyZero(eval.fY - pt.fY));
-    if (pt.fX <= eval.fX) {
-        if (ambiguous) {
-            *ambiguous = pt_at_extremum;
-        }
-        return true;
-    }
-    return false;
-}
-
-int SkNumXRayCrossingsForCubic(const SkXRay& pt,
-                               const SkPoint cubic[4],
-                               bool* ambiguous) {
-    int num_crossings = 0;
-    SkPoint monotonic_cubics[10];
-    int num_monotonic_cubics = SkChopCubicAtYExtrema(cubic, monotonic_cubics);
-    if (ambiguous) {
-        *ambiguous = false;
-    }
-    bool locally_ambiguous;
-    if (SkXRayCrossesMonotonicCubic(pt,
-                                    &monotonic_cubics[0],
-                                    &locally_ambiguous))
-        ++num_crossings;
-    if (ambiguous) {
-        *ambiguous |= locally_ambiguous;
-    }
-    if (num_monotonic_cubics > 0)
-        if (SkXRayCrossesMonotonicCubic(pt,
-                                        &monotonic_cubics[3],
-                                        &locally_ambiguous))
-            ++num_crossings;
-    if (ambiguous) {
-        *ambiguous |= locally_ambiguous;
-    }
-    if (num_monotonic_cubics > 1)
-        if (SkXRayCrossesMonotonicCubic(pt,
-                                        &monotonic_cubics[6],
-                                        &locally_ambiguous))
-            ++num_crossings;
-    if (ambiguous) {
-        *ambiguous |= locally_ambiguous;
-    }
-    return num_crossings;
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 
 /*  Find t value for quadratic [a, b, c] = d.
diff --git a/src/core/SkGeometry.h b/src/core/SkGeometry.h
index 0b23685..4da74f2 100644
--- a/src/core/SkGeometry.h
+++ b/src/core/SkGeometry.h
@@ -10,21 +10,6 @@
 
 #include "SkMatrix.h"
 
-/** An XRay is a half-line that runs from the specific point/origin to
-    +infinity in the X direction. e.g. XRay(3,5) is the half-line
-    (3,5)....(infinity, 5)
- */
-typedef SkPoint SkXRay;
-
-/** Given a line segment from pts[0] to pts[1], and an xray, return true if
-    they intersect. Optional outgoing "ambiguous" argument indicates
-    whether the answer is ambiguous because the query occurred exactly at
-    one of the endpoints' y coordinates, indicating that another query y
-    coordinate is preferred for robustness.
-*/
-bool SkXRayCrossesLine(const SkXRay& pt, const SkPoint pts[2],
-                       bool* ambiguous = NULL);
-
 /** Given a quadratic equation Ax^2 + Bx + C = 0, return 0, 1, 2 roots for the
     equation.
 */
@@ -159,36 +144,6 @@
 int SkChopCubicAtMaxCurvature(const SkPoint src[4], SkPoint dst[13],
                               SkScalar tValues[3] = NULL);
 
-/** Given a monotonic cubic bezier, determine whether an xray intersects the
-    cubic.
-    By definition the cubic is open at the starting point; in other
-    words, if pt.fY is equivalent to cubic[0].fY, and pt.fX is to the
-    left of the curve, the line is not considered to cross the curve,
-    but if it is equal to cubic[3].fY then it is considered to
-    cross.
-    Optional outgoing "ambiguous" argument indicates whether the answer is
-    ambiguous because the query occurred exactly at one of the endpoints' y
-    coordinates, indicating that another query y coordinate is preferred
-    for robustness.
- */
-bool SkXRayCrossesMonotonicCubic(const SkXRay& pt, const SkPoint cubic[4],
-                                 bool* ambiguous = NULL);
-
-/** Given an arbitrary cubic bezier, return the number of times an xray crosses
-    the cubic. Valid return values are [0..3]
-    By definition the cubic is open at the starting point; in other
-    words, if pt.fY is equivalent to cubic[0].fY, and pt.fX is to the
-    left of the curve, the line is not considered to cross the curve,
-    but if it is equal to cubic[3].fY then it is considered to
-    cross.
-    Optional outgoing "ambiguous" argument indicates whether the answer is
-    ambiguous because the query occurred exactly at one of the endpoints' y
-    coordinates or at a tangent point, indicating that another query y
-    coordinate is preferred for robustness.
- */
-int SkNumXRayCrossingsForCubic(const SkXRay& pt, const SkPoint cubic[4],
-                               bool* ambiguous = NULL);
-
 enum SkCubicType {
     kSerpentine_SkCubicType,
     kCusp_SkCubicType,