43 double denom = len.fX * len.fX + len.fY * len.fY;
45 double numer = len.fX * ab0.
fX + ab0.
fY * len.fY;
46 if (!
between(0, numer, denom)) {
52 double t = numer / denom;
56 double tiniest = std::min(std::min(std::min(
fPts[0].fX,
fPts[0].fY),
fPts[1].fX),
fPts[1].fY);
57 double largest = std::max(std::max(std::max(
fPts[0].fX,
fPts[0].fY),
fPts[1].fX),
fPts[1].fY);
58 largest = std::max(largest, -tiniest);
63 *unequal = (float) largest != (
float) (largest + dist);
73 double denom = len.fX * len.fX + len.fY * len.fY;
75 double numer = len.fX * ab0.
fX + ab0.
fY * len.fY;
76 double t = numer / denom;
80 double tiniest = std::min(std::min(std::min(
fPts[0].fX,
fPts[0].fY),
fPts[1].fX),
fPts[1].fY);
81 double largest = std::max(std::max(std::max(
fPts[0].fX,
fPts[0].fY),
fPts[1].fX),
fPts[1].fY);
82 largest = std::max(largest, -tiniest);
108 double realPtX = (1 - t) *
left + t *
right;
110 double distSq = distU.
fX * distU.
fX + distU.
fY * distU.
fY;
111 double dist = sqrt(distSq);
112 double tiniest = std::min(std::min(
y,
left),
right);
113 double largest = std::max(std::max(
y,
left),
right);
114 largest = std::max(largest, -tiniest);
126 if (xy.
fY == bottom) {
140 double t = (xy.
fY - top) / (bottom - top);
143 double realPtY = (1 - t) * top + t * bottom;
145 double distSq = distU.
fX * distU.
fX + distU.
fY * distU.
fY;
146 double dist = sqrt(distSq);
147 double tiniest = std::min(std::min(
x, top), bottom);
148 double largest = std::max(std::max(
x, top), bottom);
149 largest = std::max(largest, -tiniest);
static bool between(SkScalar a, SkScalar b, SkScalar c)
bool AlmostEqualUlps(const SkPoint &pt1, const SkPoint &pt2)
bool RoughlyEqualUlps(float a, float b)
bool AlmostEqualUlps_Pin(float a, float b)
bool AlmostBequalUlps(float a, float b)
bool AlmostBetweenUlps(float a, float b, float c)
static bool left(const SkPoint &p0, const SkPoint &p1)
static bool right(const SkPoint &p0, const SkPoint &p1)
double exactPoint(const SkDPoint &xy) const
static double ExactPointV(const SkDPoint &xy, double top, double bottom, double x)
bool nearRay(const SkDPoint &xy) const
SkDPoint ptAtT(double t) const
static double NearPointH(const SkDPoint &xy, double left, double right, double y)
static double NearPointV(const SkDPoint &xy, double top, double bottom, double x)
static double ExactPointH(const SkDPoint &xy, double left, double right, double y)
double nearPoint(const SkDPoint &xy, bool *unequal) const
double distance(const SkDPoint &a) const