Index: include/pathops/SkPathOps.h |
=================================================================== |
--- include/pathops/SkPathOps.h (revision 0) |
+++ include/pathops/SkPathOps.h (revision 0) |
@@ -0,0 +1,39 @@ |
+/* |
+ * Copyright 2012 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+#ifndef SkPathOps_DEFINED |
+#define SkPathOps_DEFINED |
+ |
+class SkPath; |
+ |
+// FIXME: move this into SkPaths.h or just use the equivalent in SkRegion.h |
+enum SkPathOp { |
+ kDifference_PathOp, //!< subtract the op path from the first path |
+ kIntersect_PathOp, //!< intersect the two paths |
+ kUnion_PathOp, //!< union (inclusive-or) the two paths |
+ kXOR_PathOp, //!< exclusive-or the two paths |
+ /** subtract the first path from the op path */ |
+ kReverseDifference_PathOp, // FIXME: unsupported |
+ kReplace_PathOp //!< replace the dst path with the op FIXME: unsupported: should it be? |
+}; |
+ |
+// FIXME: these functions become members of SkPath |
+/** |
+ * Set this path to the result of applying the Op to this path and the |
+ * specified path: this = (this op operand). The resulting path will be constructed |
+ * from non-overlapping contours. The curve order is reduced where possible so that cubics may |
+ * be turned into quadratics, and quadratics maybe turned into lines. |
+ */ |
+void Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result); |
+ |
+/** |
+ * Set this path to a set of non-overlapping contours that describe the same |
+ * area as the original path. The curve order is reduced where possible so that cubics may |
+ * be turned into quadratics, and quadratics maybe turned into lines. |
+ */ |
+void Simplify(const SkPath& path, SkPath* result); |
+ |
+#endif |