Index: include/core/SkPath.h |
diff --git a/include/core/SkPath.h b/include/core/SkPath.h |
index dd7a672cdd4456862fa3d2715177c18a20c35668..f4dd377d618d9aea952e3441dae35746a38d6d79 100644 |
--- a/include/core/SkPath.h |
+++ b/include/core/SkPath.h |
@@ -702,25 +702,41 @@ public: |
*/ |
void addPoly(const SkPoint pts[], int count, bool close); |
+ enum AddPathMode { |
+ /** Source path contours are added as new contours. |
+ */ |
+ kAppend_AddPathMode, |
+ /** Path is added by extending the last contour of the destination path |
+ with the first contour of the source path. If the last contour of |
+ the destination path is closed, then it will not be extended. |
+ Instead, the start of source path will be extended by a straight |
+ line to the end point of the destination path. |
+ */ |
+ kExtend_AddPathMode |
+ }; |
+ |
/** Add a copy of src to the path, offset by (dx,dy) |
@param src The path to add as a new contour |
@param dx The amount to translate the path in X as it is added |
@param dx The amount to translate the path in Y as it is added |
*/ |
- void addPath(const SkPath& src, SkScalar dx, SkScalar dy); |
+ void addPath(const SkPath& src, SkScalar dx, SkScalar dy, |
+ AddPathMode mode = kAppend_AddPathMode); |
/** Add a copy of src to the path |
*/ |
- void addPath(const SkPath& src) { |
+ void addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode) { |
SkMatrix m; |
m.reset(); |
- this->addPath(src, m); |
+ this->addPath(src, m, mode); |
} |
/** Add a copy of src to the path, transformed by matrix |
@param src The path to add as a new contour |
+ @param matrix Transform applied to src |
+ @param mode Determines how path is added |
*/ |
- void addPath(const SkPath& src, const SkMatrix& matrix); |
+ void addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode); |
/** |
* Same as addPath(), but reverses the src input |