Rewriting path writer
authorcaryclark <caryclark@google.com>
Wed, 14 Sep 2016 14:18:20 +0000 (07:18 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 14 Sep 2016 14:18:20 +0000 (07:18 -0700)
commiteed356d281adbf93ecbd89cb23913a7861cd8578
treee1f354471538f9484de7bd53eb9fafebd18f411a
parent8bbcd5aab81dc0742c3367479c0c9d97363b1203
Rewriting path writer

The path writer takes constructs the output path out of
curves that satisfy the pathop operation.

Curves contain lists of t/point pairs that may not be
comparable to each other. To match up curve ends in the
output path, look for adjacent curves to have a shared
membership rather than comparing point values.

Use path utilities to connect partial curve lists into
closed contours.

Share the angle code that determines if a curve has become
a degenerate line with the path writer.

Clean up some code on the way, and delete some unused
functions.

TBR=reed@google.com
BUG=5188
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321973005

Review-Url: https://codereview.chromium.org/2321973005
21 files changed:
src/pathops/SkOpAngle.cpp
src/pathops/SkOpAngle.h
src/pathops/SkOpBuilder.cpp
src/pathops/SkOpContour.cpp
src/pathops/SkOpContour.h
src/pathops/SkOpEdgeBuilder.cpp
src/pathops/SkOpEdgeBuilder.h
src/pathops/SkOpSegment.cpp
src/pathops/SkOpSegment.h
src/pathops/SkPathOpsCommon.cpp
src/pathops/SkPathOpsCommon.h
src/pathops/SkPathOpsCurve.cpp
src/pathops/SkPathOpsCurve.h
src/pathops/SkPathOpsDebug.cpp
src/pathops/SkPathOpsDebug.h
src/pathops/SkPathOpsOp.cpp
src/pathops/SkPathOpsSimplify.cpp
src/pathops/SkPathOpsTightBounds.cpp
src/pathops/SkPathWriter.cpp
src/pathops/SkPathWriter.h
tests/PathOpsDebug.cpp