28 {{{{2.1883804947719909e-05, 3.6366123822517693e-05 },
29 {2.9145950975362211e-05, 2.9117207304807380e-05 },
30 {2.9113532946212217e-05, 2.9173743314458989e-05 },
31 {0.00000000000000000, 5.8282588724978268e-05 }}},
32 {{{{0.00000000000000000, 5.8282581449020654e-05 },
33 {0.00000000000000000, 5.8282563259126619e-05 },
34 {5.8282588724978268e-05, 0.00000000000000000 }}}, 53684.6563f}},
37 {{{{188.60000610351562, 2041.5999755859375}, {188.60000610351562, 2065.39990234375},
38 {208, 2084.800048828125}, {231.80000305175781, 2084.800048828125}}},
39 {{{{231.80000305175781, 2084.800048828125}, {188.60000610351562, 2084.800048828125},
40 {188.60000610351562, 2041.5999755859375}}}, 0.707107008f}},
42 {{{{231.80000305175781, 2084.800048828125}, {255.60000610351562, 2084.800048828125},
43 {275, 2065.39990234375}, {275, 2041.5999755859375}}},
44 {{{{275, 2041.5999755859375}, {275, 2084.800048828125},
45 {231.80000305175781, 2084.800048828125}}}, 0.707107008f}},
53 cubic.debugSet(cu.
fPts);
62 int order2 = reduce2.
reduce(conic.fPts);
64 SkDebugf(
"[%d] cubic order=%d\n", index, order1);
68 SkDebugf(
"[%d] conic order=%d\n", index, order2);
73 for (
int pt = 0; pt < roots; ++pt) {
74 double tt1 = i[0][pt];
76 double tt2 = i[1][pt];
79 SkDebugf(
"%s [%d,%d] x!= t1=%g (%g,%g) t2=%g (%g,%g)\n",
80 __FUNCTION__, index, pt, tt1, xy1.
fX, xy1.
fY, tt2, xy2.
fX, xy2.
fY);
static const int cubicConicTests_count
static struct cubicConic cubicConicTests[]
static void cubicConicIntersection(skiatest::Reporter *reporter, int index)
bool ValidCubic(const SkDCubic &cubic)
bool ValidConic(const SkDConic &conic)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
Type::kYUV Type::kRGBA() int(0.7 *637)
int intersect(const SkDLine &, const SkDLine &)
SkDPoint fPts[kPointCount]
SkDPoint fPts[kPointCount]
bool approximatelyEqual(const SkDPoint &a) const
int reduce(const SkDCubic &cubic, Quadratics)