/external/chromium_org/third_party/skia/experimental/Intersection/ |
TestUtilities.cpp | 12 void quad_to_cubic(const Quadratic& quad, Cubic& cubic) { 13 cubic[0] = quad[0]; 14 cubic[1].x = quad[0].x / 3 + quad[1].x * 2 / 3; 15 cubic[1].y = quad[0].y / 3 + quad[1].y * 2 / 3; 16 cubic[2].x = quad[2].x / 3 + quad[1].x * 2 / 3; 17 cubic[2].y = quad[2].y / 3 + quad[1].y * 2 / 3; 18 cubic[3] = quad[2]; 21 static bool tiny(const Cubic& cubic) { [all...] |
CubicBounds.cpp | 16 double leftMostT(const Cubic& cubic, double startT, double endT) { 19 int results = findExtrema(cubic[0].x, cubic[1].x, cubic[2].x, cubic[3].x, leftTs); 29 xy_at_t(cubic, leftTs[0], pt[0].x, pt[0].y); 30 xy_at_t(cubic, leftTs[1], pt[1].x, pt[1].y); 38 xy_at_t(cubic, startT, pt[0].x, pt[0].y); 39 xy_at_t(cubic, endT, pt[1].x, pt[1].y) [all...] |
CubicReduceOrder.cpp | 22 static int coincident_line(const Cubic& cubic, Cubic& reduction) { 23 reduction[0] = reduction[1] = cubic[0]; 27 static int vertical_line(const Cubic& cubic, ReduceOrder_Styles reduceStyle, Cubic& reduction) { 29 reduction[0] = cubic[0]; 30 reduction[1] = cubic[3]; 36 int roots = findExtrema(cubic[0].y, cubic[1].y, cubic[2].y, cubic[3].y, tValues) [all...] |
CubicLineSegments.cpp | 12 void hodograph(const Cubic& cubic, Quadratic& hodo) { 13 hodo[0].x = 3 * (cubic[1].x - cubic[0].x); 14 hodo[0].y = 3 * (cubic[1].y - cubic[0].y); 15 hodo[1].x = 3 * (cubic[2].x - cubic[1].x); 16 hodo[1].y = 3 * (cubic[2].y - cubic[1].y) [all...] |
CubicToQuadratics_Test.cpp | 8 static void test(const Cubic* cubics, const char* name, int firstTest, size_t testCount) { 11 const Cubic& cubic = cubics[index]; local 12 double precision = calcPrecision(cubic); 13 (void) cubic_to_quadratics(cubic, precision, quads); 15 printf("%s [%d] cubic to quadratics failed count=%d\n", name, (int) index, 25 Cubic cubic; local 26 quad_to_cubic(quad, cubic); 27 double precision = calcPrecision(cubic); 40 const Cubic& cubic = cubics[index]; local 63 const Cubic& cubic = cubics[index][idx2]; local 159 const Cubic& cubic = locals[x]; local 193 Cubic cubic; local 233 const Cubic& cubic = samples[x][y]; local [all...] |
CubicToQuadratics.cpp | 2 http://stackoverflow.com/questions/2009160/how-do-i-convert-the-2-control-points-of-a-cubic-curve-to-the-single-control-poi 6 Let's call the control points of the cubic Q0..Q3 and the control points of the quadratic P0..P2. 18 If this is a degree-elevated cubic, then both equations will give the same answer for P1. Since 24 Cubic defined by: P1/2 - anchor points, C1/C2 control points 26 mid-point approx of cubic: a quad that shares the same anchors with the cubic and has the 32 Compute the Tdiv as the root of (cubic) equation 34 if Tdiv < 0.5 divide the cubic at Tdiv. First segment [0..Tdiv] can be approximated with by a 37 0.5<=Tdiv<1 - simply divide the cubic in two. The two halves can be approximated by the mid-point 39 Tdiv>=1 - the entire cubic can be approximated by the mid-point approximatio [all...] |
CubicParameterization_TestUtility.cpp | 6 static void parameter_coeffs(const Cubic& cubic, double coeffs[coeff_count]) { 10 alt_set_abcd(&cubic[0].x, ax, bx, cx, dx); 12 set_abcd(&cubic[0].x, ax, bx, cx, dx); 15 alt_set_abcd(&cubic[0].y, ay, by, cy, dy); 17 set_abcd(&cubic[0].y, ay, by, cy, dy); 22 double ax = cubic[0].x; 23 double bx = cubic[1].x; 24 double cx = cubic[2].x; 25 double dx = cubic[3].x [all...] |
CubicReduceOrder_Test.cpp | 15 Cubic reduce; 48 const Cubic& cubic = pointDegenerates[index]; local 49 order = reduceOrder(cubic, reduce, kReduceOrder_QuadraticsAllowed, 56 const Cubic& cubic = notPointDegenerates[index]; local 57 order = reduceOrder(cubic, reduce, kReduceOrder_QuadraticsAllowed, 64 const Cubic& cubic = lines[index]; local 65 order = reduceOrder(cubic, reduce, kReduceOrder_QuadraticsAllowed 72 const Cubic& cubic = notLines[index]; local 80 const Cubic& cubic = modEpsilonLines[index]; local 88 const Cubic& cubic = lessEpsilonLines[index]; local 96 const Cubic& cubic = negEpsilonLines[index]; local 105 Cubic cubic; local 115 Cubic cubic; local 126 const Cubic& cubic = lines[index]; local [all...] |
CubicUtilities.h | 13 double calcPrecision(const Cubic& cubic); 15 double calcPrecision(const Cubic& cubic, double t, double scale); 17 void chop_at(const Cubic& src, CubicPair& dst, double t); 18 bool clockwise(const Cubic& c); 20 int cubic_to_quadratics(const Cubic& cubic, double precision, 22 void cubic_to_quadratics(const Cubic& cubic, double precision, SkTDArray<double>& ts) [all...] |
CubicUtilities_Test.cpp | 10 const Cubic tests[] = { 21 const Cubic& cubic = tests[index]; local 22 bool result = clockwise(cubic);
|
Parameterization_Test.h | 10 bool point_on_parameterized_curve(const Cubic& cubic, const _Point& point);
|
ConvexHull.cpp | 11 /* Given a cubic, find the convex hull described by the end and control points. 22 int convex_hull(const Cubic& cubic, char order[4]) { 27 if (cubic[yMin].y > cubic[index].y || (cubic[yMin].y == cubic[index].y 28 && cubic[yMin].x > cubic[index].x)) { 46 Cubic rotPath [all...] |
LineCubicIntersection.cpp | 13 Find the interection of a line and cubic by solving for valid t values. 15 Analogous to line-quadratic intersection, solve line-cubic intersection by 16 representing the cubic as: 24 Then using Mathematica, solve for the values of t where the cubic intersects the 54 instead, use Numeric Solutions recipe to solve the cubic. 76 So the cubic coefficients are: 83 LineCubicIntersections(const Cubic& c, const _Line& l, Intersections& i) 84 : cubic(c) 93 Cubic r; 95 r[n].x = (cubic[n].y - line[0].y) * adj - (cubic[n].x - line[0].x) * opp 254 const Cubic& cubic; member in class:LineCubicIntersections [all...] |
LineParameteters_Test.cpp | 12 const Cubic tests[] = { 45 const Cubic& cubic = tests[index]; local 46 lineParameters.cubicEndPoints(cubic); 48 denormalizedDistance[0] = lineParameters.controlPtDistance(cubic, 1); 49 denormalizedDistance[1] = lineParameters.controlPtDistance(cubic, 2); 68 normalizedDistance[0] = lineParameters.controlPtDistance(cubic, 1); 69 normalizedDistance[1] = lineParameters.controlPtDistance(cubic, 2);
|
LineCubicIntersection_Test.cpp | 14 Cubic cubic; member in struct:lineCubic 26 const Cubic& cubic = lineCubicTests[index].cubic; local 28 Cubic reduce1; 30 int order1 = reduceOrder(cubic, reduce1, kReduceOrder_NoQuadraticsAllowed, 34 printf("[%d] cubic order=%d\n", (int) index, order1); 47 xy_at_t(cubic, tt1, tx1, ty1);
|
/external/chromium_org/third_party/skia/tests/ |
PathOpsCubicReduceOrderTest.cpp | 16 static bool controls_inside(const SkDCubic& cubic) { 17 return between(cubic[0].fX, cubic[1].fX, cubic[3].fX) 18 && between(cubic[0].fX, cubic[2].fX, cubic[3].fX) 19 && between(cubic[0].fY, cubic[1].fY, cubic[3].fY 108 const SkDCubic& cubic = pointDegenerates[index]; local 117 const SkDCubic& cubic = notPointDegenerates[index]; local 127 const SkDCubic& cubic = lines[index]; local 136 const SkDCubic& cubic = notLines[index]; local 145 const SkDCubic& cubic = modEpsilonLines[index]; local 154 const SkDCubic& cubic = lessEpsilonLines[index]; local 164 const SkDCubic& cubic = negEpsilonLines[index]; local 175 SkDCubic cubic = quad.toCubic(); local 185 SkDCubic cubic = quad.toCubic(); local 195 SkDCubic cubic = quad.toCubic(); local [all...] |
PathOpsDCubicTest.cpp | 21 const SkDCubic& cubic = tests[index]; local 22 SkASSERT(ValidCubic(cubic)); 23 bool result = cubic.clockwise();
|
PathOpsCubicToQuadsTest.cpp | 19 const SkDCubic& cubic = cubics[index]; local 20 SkASSERT(ValidCubic(cubic)); 21 double precision = cubic.calcPrecision(); 23 CubicToQuads(cubic, precision, quads); 25 SkDebugf("%s [%d] cubic to quadratics failed count=%d\n", name, static_cast<int>(index), 37 SkDCubic cubic = quad.toCubic(); local 38 double precision = cubic.calcPrecision(); 40 CubicToQuads(cubic, precision, quads); 42 SkDebugf("%s [%d] cubic to quadratics failed count=%d\n", name, static_cast<int>(index), 53 const SkDCubic& cubic = cubics[index] local 76 const SkDCubic& cubic = cubics[index][idx2]; local 174 const SkDCubic& cubic = locals[x]; local [all...] |
PathOpsDRectTest.cpp | 82 const SkDCubic& cubic = cubicTests[index]; local 83 SkASSERT(ValidCubic(cubic)); 84 rect.setRawBounds(cubic); 85 REPORTER_ASSERT(reporter, rect.fLeft == SkTMin(cubic[0].fX, 86 SkTMin(cubic[1].fX, SkTMin(cubic[2].fX, cubic[3].fX)))); 87 REPORTER_ASSERT(reporter, rect.fTop == SkTMin(cubic[0].fY, 88 SkTMin(cubic[1].fY, SkTMin(cubic[2].fY, cubic[3].fY)))) [all...] |
PathOpsLineParametetersTest.cpp | 43 const SkDCubic& cubic = tests[index]; local 44 SkASSERT(ValidCubic(cubic)); 45 lineParameters.cubicEndPoints(cubic, 0, 3); 47 denormalizedDistance[0] = lineParameters.controlPtDistance(cubic, 1); 48 denormalizedDistance[1] = lineParameters.controlPtDistance(cubic, 2); 67 normalizedDistance[0] = lineParameters.controlPtDistance(cubic, 1); 68 normalizedDistance[1] = lineParameters.controlPtDistance(cubic, 2);
|
PathOpsCubicLineIntersectionTest.cpp | 15 SkDCubic cubic; member in struct:lineCubic 28 const SkDCubic& cubic = failLineCubicTests[iIndex].cubic; local 29 SkASSERT(ValidCubic(cubic)); 34 int order1 = reduce1.reduce(cubic, SkReduceOrder::kNo_Quadratics); 37 SkDebugf("[%d] cubic order=%d\n", iIndex, order1); 46 int roots = i.intersect(cubic, line); 93 static int doIntersect(SkIntersections& intersections, const SkDCubic& cubic, const SkDLine& line) { 103 result = intersections.vertical(cubic, top, bottom, line[0].fX, flipped); 111 result = intersections.horizontal(cubic, left, right, line[0].fY, flipped) 120 const SkDCubic& cubic = lineCubicTests[iIndex].cubic; local 187 const SkDCubic& cubic = lineCubicTests[iIndex].cubic; local [all...] |
PathOpsCubicQuadIntersectionTest.cpp | 16 SkDCubic cubic; member in struct:quadCubic 62 const SkDCubic& cubic = quadCubicTests[index].cubic; local 63 SkASSERT(ValidCubic(cubic)); 68 int order1 = reduce1.reduce(cubic, SkReduceOrder::kNo_Quadratics); 71 SkDebugf("[%d] cubic order=%d\n", iIndex, order1); 79 int roots = i.intersect(cubic, quad); 83 SkDPoint xy1 = cubic.ptAtT(tt1); 116 static const int kCubicToQuadSubdivisionDepth = 8; // slots reserved for cubic to quads subdivision 121 // create a random non-selfintersecting cubic 140 SkDCubic cubic = {{ local [all...] |
/external/chromium_org/third_party/skia/src/pathops/ |
SkReduceOrder.cpp | 60 // note that three points in a line doesn't simplify a cubic 109 static int coincident_line(const SkDCubic& cubic, SkDCubic& reduction) { 110 reduction[0] = reduction[1] = cubic[0]; 118 static int vertical_line(const SkDCubic& cubic, SkDCubic& reduction) { 119 reduction[0] = cubic[0]; 120 reduction[1] = cubic[3]; 124 static int horizontal_line(const SkDCubic& cubic, SkDCubic& reduction) { 125 reduction[0] = cubic[0]; 126 reduction[1] = cubic[3]; 131 static int check_quadratic(const SkDCubic& cubic, SkDCubic& reduction) 275 SkDCubic cubic; local [all...] |
SkPathOpsCubic.h | 35 static void Coefficients(const double* cubic, double* A, double* B, double* C, double* D); 43 SkDCubic cubic; local 44 cubic.set(a); 45 return cubic.findInflections(tValues); 69 SkDCubic cubic; local 70 cubic.set(a); 71 return cubic.subDivide(t1, t2); 78 SkDCubic cubic; local 79 cubic.set(pts); 80 cubic.subDivide(a, d, t1, t2, p) [all...] |
/external/chromium_org/third_party/skia/src/utils/win/ |
SkDWriteGeometrySink.cpp | 88 } Cubic[4], Quadratic[3]; 90 static bool check_quadratic(const Cubic& cubic, Quadratic& reduction) { 91 float dx10 = cubic[1].x - cubic[0].x; 92 float dx23 = cubic[2].x - cubic[3].x; 93 float midX = cubic[0].x + dx10 * 3 / 2; 94 //NOTE: !approximately_equal(midX - cubic[3].x, dx23 * 3 / 2) 96 if (!approximately_equal(midX, (dx23 * 3 / 2) + cubic[3].x)) 118 Cubic cubic = { { prevPt.x, prevPt.y }, local [all...] |