| #include "CurveIntersection.h" |
| #include "LineIntersection.h" |
| #include "SkPath.h" |
| #include "SkRect.h" |
| #include "SkTArray.h" |
| #include "SkTDArray.h" |
| #include "TSearch.h" |
| |
| namespace UnitTest { |
| |
| #include "EdgeWalker.cpp" |
| |
| } // end of UnitTest namespace |
| |
| #include "Intersection_Tests.h" |
| |
| SkPoint leftRight[][4] = { |
| // equal length |
| {{10, 10}, {10, 50}, {20, 10}, {20, 50}}, |
| {{10, 10}, {10, 50}, {10, 10}, {20, 50}}, |
| {{10, 10}, {10, 50}, {20, 10}, {10, 50}}, |
| // left top higher |
| {{10, 0}, {10, 50}, {20, 10}, {20, 50}}, |
| {{10, 0}, {10, 50}, {10, 10}, {20, 50}}, |
| {{10, 0}, {10, 50}, {20, 10}, {10, 50}}, |
| {{10, 0}, {10, 50}, {20, 10}, {10 + 0.000001, 40}}, |
| // left top lower |
| {{10, 20}, {10, 50}, {20, 10}, {20, 50}}, |
| {{10, 20}, {10, 50}, {10, 10}, {20, 50}}, |
| {{10, 20}, {10, 50}, {20, 10}, {10, 50}}, |
| {{10, 20}, {10, 50}, {20, 10}, {10 + 0.000001, 40}}, |
| {{10, 20}, {10, 50}, { 0, 0}, {50, 50}}, |
| // left bottom higher |
| {{10, 10}, {10, 40}, {20, 10}, {20, 50}}, |
| {{10, 10}, {10, 40}, {10, 10}, {20, 50}}, |
| {{10, 10}, {10, 40}, {20, 10}, {10, 50}}, |
| {{10, 10}, {10, 40}, {20, 10}, { 0 + 0.000001, 70}}, |
| // left bottom lower |
| {{10, 10}, {10, 60}, {20, 10}, {20, 50}}, |
| {{10, 10}, {10, 60}, {10, 10}, {20, 50}}, |
| {{10, 10}, {10, 60}, {20, 10}, {10 + 0.000001, 50}}, |
| {{10, 10}, {10, 60}, {20, 10}, {10 + 0.000001, 40}}, |
| {{10, 10}, {10, 60}, { 0, 0}, {20 + 0.000001, 20}}, |
| }; |
| |
| size_t leftRightCount = sizeof(leftRight) / sizeof(leftRight[0]); |
| |
| void ActiveEdge_Test() { |
| UnitTest::InEdge leftIn, rightIn; |
| UnitTest::ActiveEdge left, right; |
| left.fWorkEdge.fEdge = &leftIn; |
| right.fWorkEdge.fEdge = &rightIn; |
| for (size_t x = 0; x < leftRightCount; ++x) { |
| left.fAbove = leftRight[x][0]; |
| left.fBelow = leftRight[x][1]; |
| right.fAbove = leftRight[x][2]; |
| right.fBelow = leftRight[x][3]; |
| SkASSERT(left < right); |
| SkASSERT(left.operator_less_than(right)); |
| SkASSERT(!(right < left)); |
| SkASSERT(!right.operator_less_than(left)); |
| } |
| } |
| |
| |
| |
| |