offset angle check edge in common
authorCary Clark <caryclark@google.com>
Wed, 18 Jan 2017 16:00:57 +0000 (11:00 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Fri, 20 Jan 2017 17:35:30 +0000 (17:35 +0000)
commitd2eb581ebc8f8009e80cccccd74d5b341ef5bd5b
treeb7e839cf44743ce6d8119ad527ebaae5e2c1ea6d
parentf833215420847565b4c9945aebdc2e7ae182937f
offset angle check edge in common

When curves cross, their intersection points may be nearby, but not exactly the same.
Sort the angles formed by the crossing curves when all angles don't have the same
origin.

This sets up the framework to solve test case that currently fail (e.g., joel6) but
does not fix all related test cases (e.g., joel9).

All older existing test cases, including extended tests, pass.

Rework the test framework to better report when tests expected to produce failing
results now pass.

Add new point and vector operations to support offset angles.

TBR=reed@google.com
BUG=skia:6041

Change-Id: I67c651ded0a25e99ad93d55d6a35109b3ee3698e
Reviewed-on: https://skia-review.googlesource.com/6624
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
17 files changed:
src/pathops/SkOpAngle.cpp
src/pathops/SkOpAngle.h
src/pathops/SkPathOpsDebug.cpp
src/pathops/SkPathOpsDebug.h
src/pathops/SkPathOpsPoint.h
src/pathops/SkPathOpsTypes.h
tests/PathOpsAngleTest.cpp
tests/PathOpsChalkboardTest.cpp
tests/PathOpsExtendedTest.cpp
tests/PathOpsExtendedTest.h
tests/PathOpsFuzz763Test.cpp
tests/PathOpsIssue3651.cpp
tests/PathOpsSimplifyFailTest.cpp
tests/PathOpsSimplifyTest.cpp
tests/skia_test.cpp
tools/pathops_sorter.htm
tools/pathops_visualizer.htm