7#ifndef SkPathOpsPoint_DEFINED
8#define SkPathOpsPoint_DEFINED
60 return fX *
a.fY -
fY *
a.fX;
66 double xy =
fX *
a.fY;
67 double yx =
fY *
a.fX;
73 double xy =
fX *
a.fY;
74 double yx =
fY *
a.fX;
79 return fX *
a.fX +
fY *
a.fY;
112 return {
a.fX -
b.fX,
a.fY -
b.fY };
116 return a.fX ==
b.fX &&
a.fY ==
b.fY;
120 return a.fX !=
b.fX ||
a.fY !=
b.fY;
165 double tiniest = std::min(std::min(std::min(
fX,
a.fX),
fY),
a.fY);
166 double largest = std::max(std::max(std::max(
fX,
a.fX),
fY),
a.fY);
167 largest = std::max(largest, -tiniest);
185 double tiniest = std::min(std::min(std::min(
fX,
a.fX),
fY),
a.fY);
186 double largest = std::max(std::max(std::max(
fX,
a.fX),
fY),
a.fY);
187 largest = std::max(largest, -tiniest);
208 float tiniest = std::min(std::min(std::min(
a.fX,
b.fX),
a.fY),
b.fY);
209 float largest = std::max(std::max(std::max(
a.fX,
b.fX),
a.fY),
b.fY);
210 largest = std::max(largest, -tiniest);
246 double tiniest = std::min(std::min(std::min(
fX,
a.fX),
fY),
a.fY);
247 double largest = std::max(std::max(std::max(
fX,
a.fX),
fY),
a.fY);
248 largest = std::max(largest, -tiniest);
260 float tiniest = std::min(std::min(std::min(
a.fX,
b.fX),
a.fY),
b.fY);
261 float largest = std::max(std::max(std::max(
a.fX,
b.fX),
a.fY),
b.fY);
262 largest = std::max(largest, -tiniest);
268 float largestNumber = std::max(
SkTAbs(
a.fX), std::max(
SkTAbs(
a.fY),
271 float largestDiff = std::max(diffs.
fX, diffs.
fY);
static bool approximately_zero(double x)
static bool SkIsFinite(T x, Pack... values)
static constexpr double sk_ieee_double_divide(double numer, double denom)
bool AlmostEqualUlps(const SkPoint &pt1, const SkPoint &pt2)
bool RoughlyEqualUlps(float a, float b)
bool AlmostPequalUlps(float a, float b)
bool AlmostDequalUlps(float a, float b)
bool AlmostEqualUlpsNoNormalCheck(float a, float b)
bool roughly_zero_when_compared_to(double x, double y)
bool approximately_equal(double x, double y)
bool roughly_equal(double x, double y)
#define SkDoubleToScalar(x)
void set(const SkPoint &pt)
SkDPoint operator+(const SkDVector &v)
bool approximatelyEqual(const SkPoint &a) const
void operator+=(const SkDVector &v)
void operator=(const SkPoint &pt)
void operator-=(const SkDVector &v)
friend bool operator==(const SkDPoint &a, const SkDPoint &b)
double distanceSquared(const SkDPoint &a) const
SkDPoint operator-(const SkDVector &v)
static SkDPoint Mid(const SkDPoint &a, const SkDPoint &b)
bool approximatelyDEqual(const SkPoint &a) const
bool approximatelyEqual(const SkDPoint &a) const
SkPoint asSkPoint() const
static void Dump(const SkPoint &pt)
static bool ApproximatelyEqual(const SkPoint &a, const SkPoint &b)
friend SkDVector operator-(const SkDPoint &a, const SkDPoint &b)
static bool RoughlyEqual(const SkPoint &a, const SkPoint &b)
friend bool operator!=(const SkDPoint &a, const SkDPoint &b)
static void DumpHex(const SkPoint &pt)
bool approximatelyDEqual(const SkDPoint &a) const
static bool WayRoughlyEqual(const SkPoint &a, const SkPoint &b)
bool approximatelyZero() const
bool roughlyEqual(const SkDPoint &a) const
double distance(const SkDPoint &a) const
void operator/=(const double s)
SkDVector & set(const SkVector &pt)
double crossNoNormalCheck(const SkDVector &a) const
double cross(const SkDVector &a) const
SkVector asSkVector() const
void operator*=(const double s)
double dot(const SkDVector &a) const
void operator-=(const SkDVector &v)
void operator+=(const SkDVector &v)
double crossCheck(const SkDVector &a) const
double lengthSquared() const