fix SkPath documentation
SkPath now returns reference to itself.
There's also a new addPoly() variant.
Update the docs to match.
TBR=reed@google.com,kjlubick@google.com
Docs-Preview: https://skia.org/?cl=147216
Bug: skia:6818
Change-Id: I0e40e942cc46a8994285dfea4c81e2042a4e689c
Reviewed-on: https://skia-review.googlesource.com/147216
Commit-Queue: Cary Clark <caryclark@skia.org>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkPath_Reference.bmh b/docs/SkPath_Reference.bmh
index 55cd01a..b41fe22 100644
--- a/docs/SkPath_Reference.bmh
+++ b/docs/SkPath_Reference.bmh
@@ -1221,13 +1221,15 @@
# ------------------------------------------------------------------------------
-#Method void reset()
+#Method SkPath& reset()
#In Constructor
#Line # removes Verb_Array, Point_Array, and Weights; frees memory ##
Sets Path to its initial state.
Removes Verb_Array, Point_Array, and Weights, and sets FillType to kWinding_FillType.
Internal storage associated with Path is released.
+#Return reference to Path ##
+
#Example
SkPath path1, path2;
path1.setFillType(SkPath::kInverseWinding_FillType);
@@ -1243,7 +1245,7 @@
# ------------------------------------------------------------------------------
-#Method void rewind()
+#Method SkPath& rewind()
#In Constructor
#Line # removes Verb_Array, Point_Array, and Weights, keeping memory ##
Sets Path to its initial state, preserving internal storage.
@@ -1253,6 +1255,8 @@
Use rewind() instead of reset() if Path storage will be reused and performance
is critical.
+#Return reference to Path ##
+
#Example
#Description
Although path1 retains its internal storage, it is indistinguishable from
@@ -2119,7 +2123,7 @@
#Line # adds points and verbs to path ##
##
-#Method void moveTo(SkScalar x, SkScalar y)
+#Method SkPath& moveTo(SkScalar x, SkScalar y)
#In Build
#Line # starts Contour ##
Adds beginning of Contour at Point (x, y).
@@ -2127,6 +2131,8 @@
#Param x x-axis value of Contour start ##
#Param y y-axis value of Contour start ##
+#Return reference to Path ##
+
#Example
#Width 140
#Height 100
@@ -2148,12 +2154,14 @@
##
-#Method void moveTo(const SkPoint& p)
+#Method SkPath& moveTo(const SkPoint& p)
Adds beginning of Contour at Point p.
#Param p contour start ##
+#Return reference to Path ##
+
#Example
#Width 128
#Height 128
@@ -2176,7 +2184,7 @@
##
-#Method void rMoveTo(SkScalar dx, SkScalar dy)
+#Method SkPath& rMoveTo(SkScalar dx, SkScalar dy)
#In Build
#Line # starts Contour relative to Last_Point ##
Adds beginning of Contour relative to Last_Point.
@@ -2187,6 +2195,8 @@
#Param dx offset from Last_Point to Contour start on x-axis ##
#Param dy offset from Last_Point to Contour start on y-axis ##
+#Return reference to Path ##
+
#Example
#Height 100
SkPath path;
@@ -2209,7 +2219,7 @@
# ------------------------------------------------------------------------------
-#Method void lineTo(SkScalar x, SkScalar y)
+#Method SkPath& lineTo(SkScalar x, SkScalar y)
#In Build
#Line # appends Line ##
Adds Line from Last_Point to (x, y). If Path is empty, or last Verb is
@@ -2221,6 +2231,8 @@
#Param x end of added Line in x ##
#Param y end of added Line in y ##
+#Return reference to Path ##
+
#Example
#Height 100
###$
@@ -2252,7 +2264,7 @@
# ------------------------------------------------------------------------------
-#Method void lineTo(const SkPoint& p)
+#Method SkPath& lineTo(const SkPoint& p)
Adds Line from Last_Point to Point p. If Path is empty, or last Verb is
kClose_Verb, Last_Point is set to (0, 0) before adding Line.
@@ -2262,6 +2274,8 @@
#Param p end Point of added Line ##
+#Return reference to Path ##
+
#Example
#Height 100
SkPath path;
@@ -2283,7 +2297,7 @@
# ------------------------------------------------------------------------------
-#Method void rLineTo(SkScalar dx, SkScalar dy)
+#Method SkPath& rLineTo(SkScalar dx, SkScalar dy)
#In Build
#Line # appends Line relative to Last_Point ##
Adds Line from Last_Point to Vector (dx, dy). If Path is empty, or last Verb is
@@ -2297,6 +2311,8 @@
#Param dx offset from Last_Point to Line end on x-axis ##
#Param dy offset from Last_Point to Line end on y-axis ##
+#Return reference to Path ##
+
#Example
#Height 128
void draw(SkCanvas* canvas) {
@@ -2379,7 +2395,7 @@
}
##
-#Method void quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2)
+#Method SkPath& quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2)
#In Quad
#Line # appends Quad ##
@@ -2396,6 +2412,8 @@
#Param x2 end Point of Quad in x ##
#Param y2 end Point of Quad in y ##
+ #Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2418,7 +2436,7 @@
##
-#Method void quadTo(const SkPoint& p1, const SkPoint& p2)
+#Method SkPath& quadTo(const SkPoint& p1, const SkPoint& p2)
#In Build
#In Quad
Adds Quad from Last_Point towards Point p1, to Point p2.
@@ -2432,6 +2450,8 @@
#Param p1 control Point of added Quad ##
#Param p2 end Point of added Quad ##
+ #Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2451,7 +2471,7 @@
##
-#Method void rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2)
+#Method SkPath& rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2)
#In Build
#In Quad
#Line # appends Quad relative to Last_Point ##
@@ -2471,6 +2491,8 @@
#Param dx2 offset from Last_Point to Quad end on x-axis ##
#Param dy2 offset from Last_Point to Quad end on y-axis ##
+ #Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2624,7 +2646,7 @@
#Subtopic Weight ##
-#Method void conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar w)
#In Conic
#In Build
@@ -2651,6 +2673,8 @@
#Param y2 end Point of Conic in y ##
#Param w weight of added Conic ##
+ #Return reference to Path ##
+
#Example
#Height 160
#Description
@@ -2683,7 +2707,7 @@
##
-#Method void conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
+#Method SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w)
#In Build
#In Conic
Adds Conic from Last_Point towards Point p1, to Point p2, weighted by w.
@@ -2705,6 +2729,8 @@
#Param p2 end Point of added Conic ##
#Param w weight of added Conic ##
+ #Return reference to Path ##
+
#Example
#Height 128
#Description
@@ -2740,7 +2766,7 @@
##
-#Method void rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
+#Method SkPath& rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
SkScalar w)
#In Build
#In Conic
@@ -2770,6 +2796,8 @@
#Param dy2 offset from Last_Point to Conic end on y-axis ##
#Param w weight of added Conic ##
+ #Return reference to Path ##
+
#Example
#Height 140
void draw(SkCanvas* canvas) {
@@ -2830,7 +2858,7 @@
}
##
-#Method void cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar x3, SkScalar y3)
#In Build
#In Cubic
@@ -2851,6 +2879,8 @@
#Param x3 end Point of Cubic in x ##
#Param y3 end Point of Cubic in y ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -2876,7 +2906,7 @@
# ------------------------------------------------------------------------------
-#Method void cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3)
+#Method SkPath& cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3)
#In Build
#In Cubic
@@ -2892,6 +2922,8 @@
#Param p2 second control Point of Cubic ##
#Param p3 end Point of Cubic ##
+#Return reference to Path ##
+
#Example
#Height 84
SkPaint paint;
@@ -2910,7 +2942,7 @@
# ------------------------------------------------------------------------------
-#Method void rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
+#Method SkPath& rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar x3, SkScalar y3)
#In Build
#In Cubic
@@ -2935,6 +2967,8 @@
#Param x3 offset from Last_Point to Cubic end on x-axis ##
#Param y3 offset from Last_Point to Cubic end on y-axis ##
+ #Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -3147,7 +3181,7 @@
#Example ##
-#Method void arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)
+#Method SkPath& arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo)
#In Build
#In Arc
#Line # appends Arc ##
@@ -3165,6 +3199,8 @@
#Param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360 ##
#Param forceMoveTo true to start a new contour with Arc ##
+#Return reference to Path ##
+
#Example
#Height 200
#Description
@@ -3195,7 +3231,7 @@
# ------------------------------------------------------------------------------
-#Method void arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
+#Method SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius)
#In Build
#In Arc
Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
@@ -3303,6 +3339,8 @@
#Param y2 y-axis value end of second tangent ##
#Param radius distance from Arc to Circle center ##
+#Return reference to Path ##
+
#Example
#Description
arcTo is represented by Line and circular Conic in Path.
@@ -3344,7 +3382,7 @@
# ------------------------------------------------------------------------------
-#Method void arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
+#Method SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius)
#In Build
#In Arc
Appends Arc to Path, after appending Line if needed. Arc is implemented by Conic
@@ -3365,6 +3403,8 @@
#Param p2 end of second tangent ##
#Param radius distance from Arc to Circle center ##
+#Return reference to Path ##
+
#Example
#Description
Because tangent lines are parallel, arcTo appends line from last Path Point to
@@ -3458,7 +3498,7 @@
# ------------------------------------------------------------------------------
-#Method void arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
+#Method SkPath& arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar x, SkScalar y)
#In Build
#In Arc
@@ -3486,6 +3526,8 @@
#Param x end of Arc ##
#Param y end of Arc ##
+#Return reference to Path ##
+
#Example
#Height 160
void draw(SkCanvas* canvas) {
@@ -3513,7 +3555,7 @@
# ------------------------------------------------------------------------------
-#Method void arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
+#Method SkPath& arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
const SkPoint xy)
#In Build
#In Arc
@@ -3538,6 +3580,8 @@
#Param sweep chooses clockwise or counterclockwise Arc ##
#Param xy end of Arc ##
+#Return reference to Path ##
+
#Example
#Height 108
void draw(SkCanvas* canvas) {
@@ -3558,7 +3602,7 @@
# ------------------------------------------------------------------------------
-#Method void rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
+#Method SkPath& rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar dx, SkScalar dy)
#In Build
#In Arc
@@ -3593,6 +3637,8 @@
#Param dx x-axis offset end of Arc from last Path Point ##
#Param dy y-axis offset end of Arc from last Path Point ##
+#Return reference to Path ##
+
#Example
#Height 108
void draw(SkCanvas* canvas) {
@@ -3615,7 +3661,7 @@
# ------------------------------------------------------------------------------
-#Method void close()
+#Method SkPath& close()
#In Build
#Line # makes last Contour a loop ##
Appends kClose_Verb to Path. A closed Contour connects the first and last Point
@@ -3626,6 +3672,8 @@
close() has no effect if Path is empty or last Path Verb is kClose_Verb.
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -3952,7 +4000,7 @@
# ------------------------------------------------------------------------------
-#Method void addRect(const SkRect& rect, Direction dir = kCW_Direction)
+#Method SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Rect ##
Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb,
@@ -3963,6 +4011,8 @@
#Param rect Rect to add as a closed contour ##
#Param dir Direction to wind added contour ##
+#Return reference to Path ##
+
#Example
#Description
The left Rect dashes starting at the top-left corner, to the right.
@@ -3991,7 +4041,7 @@
# ------------------------------------------------------------------------------
-#Method void addRect(const SkRect& rect, Direction dir, unsigned start)
+#Method SkPath& addRect(const SkRect& rect, Direction dir, unsigned start)
Adds Rect to Path, appending kMove_Verb, three kLine_Verb, and kClose_Verb.
If dir is kCW_Direction, Rect corners are added clockwise; if dir is
@@ -4012,6 +4062,8 @@
#Param dir Direction to wind added contour ##
#Param start initial corner of Rect to add ##
+#Return reference to Path ##
+
#Example
#Height 128
#Description
@@ -4048,7 +4100,7 @@
# ------------------------------------------------------------------------------
-#Method void addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
+#Method SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
Direction dir = kCW_Direction)
Adds Rect (left, top, right, bottom) to Path,
@@ -4063,6 +4115,8 @@
#Param bottom larger y-axis value of Rect ##
#Param dir Direction to wind added contour ##
+#Return reference to Path ##
+
#Example
#Description
The left Rect dashes start at the top-left corner, and continue to the right.
@@ -4091,7 +4145,7 @@
# ------------------------------------------------------------------------------
-#Method void addOval(const SkRect& oval, Direction dir = kCW_Direction)
+#Method SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Oval ##
Adds Oval to path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
@@ -4102,6 +4156,8 @@
#Param oval bounds of ellipse added ##
#Param dir Direction to wind ellipse ##
+#Return reference to Path ##
+
#Example
#Height 120
SkPaint paint;
@@ -4116,7 +4172,7 @@
# ------------------------------------------------------------------------------
-#Method void addOval(const SkRect& oval, Direction dir, unsigned start)
+#Method SkPath& addOval(const SkRect& oval, Direction dir, unsigned start)
Adds Oval to Path, appending kMove_Verb, four kConic_Verb, and kClose_Verb.
Oval is upright ellipse bounded by Rect oval with radii equal to half oval width
@@ -4137,6 +4193,8 @@
#Param dir Direction to wind ellipse ##
#Param start index of initial point of ellipse ##
+#Return reference to Path ##
+
#Example
#Height 160
void draw(SkCanvas* canvas) {
@@ -4174,7 +4232,7 @@
# ------------------------------------------------------------------------------
-#Method void addCircle(SkScalar x, SkScalar y, SkScalar radius,
+#Method SkPath& addCircle(SkScalar x, SkScalar y, SkScalar radius,
Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Circle ##
@@ -4194,6 +4252,8 @@
#Param radius distance from center to edge ##
#Param dir Direction to wind Circle ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4214,7 +4274,7 @@
# ------------------------------------------------------------------------------
-#Method void addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
+#Method SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle)
#In Build
#Line # adds one Contour containing Arc ##
Appends Arc to Path, as the start of new Contour. Arc added is part of ellipse
@@ -4230,6 +4290,8 @@
#Param startAngle starting angle of Arc in degrees ##
#Param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360 ##
+#Return reference to Path ##
+
#Example
#Description
The middle row of the left and right columns draw differently from the entries
@@ -4256,7 +4318,7 @@
# ------------------------------------------------------------------------------
-#Method void addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
+#Method SkPath& addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Round_Rect with common corner radii ##
@@ -4278,6 +4340,8 @@
#Param ry y-axis radius of rounded corners on the Round_Rect ##
#Param dir Direction to wind Round_Rect ##
+#Return reference to Path ##
+
#Example
#Description
If either radius is zero, path contains Rect and is drawn red.
@@ -4309,7 +4373,7 @@
# ------------------------------------------------------------------------------
-#Method void addRoundRect(const SkRect& rect, const SkScalar radii[],
+#Method SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
Direction dir = kCW_Direction)
Appends Round_Rect to Path, creating a new closed Contour. Round_Rect has bounds
@@ -4344,6 +4408,8 @@
#Param radii array of 8 SkScalar values, a radius pair for each corner ##
#Param dir Direction to wind Round_Rect ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4366,7 +4432,7 @@
# ------------------------------------------------------------------------------
-#Method void addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
+#Method SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction)
#In Build
#Line # adds one Contour containing Round_Rect ##
Adds rrect to Path, creating a new closed Contour. If
@@ -4379,6 +4445,8 @@
#Param rrect bounds and radii of rounded rectangle ##
#Param dir Direction to wind Round_Rect ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4403,7 +4471,7 @@
# ------------------------------------------------------------------------------
-#Method void addRRect(const SkRRect& rrect, Direction dir, unsigned start)
+#Method SkPath& addRRect(const SkRRect& rrect, Direction dir, unsigned start)
Adds rrect to Path, creating a new closed Contour. If dir is kCW_Direction, rrect
winds clockwise; if dir is kCCW_Direction, rrect winds counterclockwise.
@@ -4429,6 +4497,8 @@
#Param dir Direction to wind Round_Rect ##
#Param start index of initial point of Round_Rect ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4452,12 +4522,12 @@
# ------------------------------------------------------------------------------
-#Method void addPoly(const SkPoint pts[], int count, bool close)
+#Method SkPath& addPoly(const SkPoint pts[], int count, bool close)
#In Build
#Line # adds one Contour containing connected lines ##
Adds Contour created from Line array, adding (count - 1) Line segments.
Contour added starts at pts[0], then adds a line for every additional Point
-in pts array. If close is true,appends kClose_Verb to Path, connecting
+in pts array. If close is true, appends kClose_Verb to Path, connecting
pts[count - 1] and pts[0].
If count is zero, append kMove_Verb to path.
@@ -4467,6 +4537,8 @@
#Param count length of Point array ##
#Param close true to add Line connecting Contour end and start ##
+#Return reference to Path ##
+
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
@@ -4491,6 +4563,42 @@
##
+#Method SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close)
+
+Adds Contour created from list. Contour added starts at list[0], then adds a line
+for every additional Point in list. If close is true, appends kClose_Verb to Path,
+connecting last and first Point in list.
+
+If list is empty, append kMove_Verb to path.
+
+#Param list array of Points ##
+#Param close true to add Line connecting Contour end and start ##
+
+#Return reference to Path ##
+
+#Example
+void draw(SkCanvas* canvas) {
+ SkPaint paint;
+ paint.setStrokeWidth(15);
+ paint.setStrokeCap(SkPaint::kRound_Cap);
+ for (bool close : { false, true } ) {
+ SkPath path;
+ path.addPoly({{20, 20}, {70, 20}, {40, 90}}, close);
+ for (auto style : {SkPaint::kStroke_Style, SkPaint::kFill_Style,
+ SkPaint::kStrokeAndFill_Style} ) {
+ paint.setStyle(style);
+ canvas->drawPath(path, paint);
+ canvas->translate(85, 0);
+ }
+ canvas->translate(-255, 128);
+ }
+}
+##
+
+#SeeAlso SkCanvas::drawPoints
+
+##
+
# ------------------------------------------------------------------------------
#Enum AddPathMode
@@ -4553,7 +4661,7 @@
# ------------------------------------------------------------------------------
-#Method void addPath(const SkPath& src, SkScalar dx, SkScalar dy,
+#Method SkPath& addPath(const SkPath& src, SkScalar dx, SkScalar dy,
AddPathMode mode = kAppend_AddPathMode)
#In Build
#Line # adds contents of Path ##
@@ -4569,6 +4677,8 @@
#Param dy offset added to src Point_Array y-axis coordinates ##
#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
+#Return reference to Path ##
+
#Example
#Height 180
SkPaint paint;
@@ -4591,7 +4701,7 @@
# ------------------------------------------------------------------------------
-#Method void addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
+#Method SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode)
Appends src to Path.
@@ -4602,6 +4712,8 @@
#Param src Path Verbs, Points, and Conic_Weights to add ##
#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
+#Return reference to Path ##
+
#Example
#Height 80
SkPaint paint;
@@ -4621,7 +4733,7 @@
# ------------------------------------------------------------------------------
-#Method void addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
+#Method SkPath& addPath(const SkPath& src, const SkMatrix& matrix, AddPathMode mode = kAppend_AddPathMode)
Appends src to Path, transformed by matrix. Transformed curves may have different
Verbs, Points, and Conic_Weights.
@@ -4634,6 +4746,8 @@
#Param matrix transform applied to src ##
#Param mode kAppend_AddPathMode or kExtend_AddPathMode ##
+#Return reference to Path ##
+
#Example
#Height 160
SkPaint paint;
@@ -4655,7 +4769,7 @@
# ------------------------------------------------------------------------------
-#Method void reverseAddPath(const SkPath& src)
+#Method SkPath& reverseAddPath(const SkPath& src)
#In Build
#Line # adds contents of Path back to front ##
Appends src to Path, from back to front.
@@ -4663,6 +4777,8 @@
#Param src Path Verbs, Points, and Conic_Weights to add ##
+#Return reference to Path ##
+
#Example
#Height 200
SkPath path;
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 371097f..75331eb 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -6,7 +6,7 @@
*/
/* Generated by tools/bookmaker from include/core/SkPath.h and docs/SkPath_Reference.bmh
- on 2018-08-10 12:59:44. Additional documentation and examples can be found at:
+ on 2018-08-15 15:11:20. Additional documentation and examples can be found at:
https://skia.org/user/api/SkPath_Reference
You may edit either file directly. Structural changes to public interfaces require
@@ -301,6 +301,8 @@
/** Sets SkPath to its initial state.
Removes verb array, SkPoint array, and weights, and sets FillType to kWinding_FillType.
Internal storage associated with SkPath is released.
+
+ @return reference to SkPath
*/
SkPath& reset();
@@ -310,6 +312,8 @@
Use rewind() instead of reset() if SkPath storage will be reused and performance
is critical.
+
+ @return reference to SkPath
*/
SkPath& rewind();
@@ -549,13 +553,14 @@
@param x x-axis value of contour start
@param y y-axis value of contour start
- @return this path
+ @return reference to SkPath
*/
SkPath& moveTo(SkScalar x, SkScalar y);
/** Adds beginning of contour at SkPoint p.
@param p contour start
+ @return reference to SkPath
*/
SkPath& moveTo(const SkPoint& p) {
return this->moveTo(p.fX, p.fY);
@@ -568,6 +573,7 @@
@param dx offset from last point to contour start on x-axis
@param dy offset from last point to contour start on y-axis
+ @return reference to SkPath
*/
SkPath& rMoveTo(SkScalar dx, SkScalar dy);
@@ -579,6 +585,7 @@
@param x end of added line in x
@param y end of added line in y
+ @return reference to SkPath
*/
SkPath& lineTo(SkScalar x, SkScalar y);
@@ -589,6 +596,7 @@
lineTo() then appends kLine_Verb to verb array and SkPoint p to SkPoint array.
@param p end SkPoint of added line
+ @return reference to SkPath
*/
SkPath& lineTo(const SkPoint& p) {
return this->lineTo(p.fX, p.fY);
@@ -604,6 +612,7 @@
@param dx offset from last point to line end on x-axis
@param dy offset from last point to line end on y-axis
+ @return reference to SkPath
*/
SkPath& rLineTo(SkScalar dx, SkScalar dy);
@@ -619,6 +628,7 @@
@param y1 control SkPoint of quad in y
@param x2 end SkPoint of quad in x
@param y2 end SkPoint of quad in y
+ @return reference to SkPath
*/
SkPath& quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2);
@@ -632,6 +642,7 @@
@param p1 control SkPoint of added quad
@param p2 end SkPoint of added quad
+ @return reference to SkPath
*/
SkPath& quadTo(const SkPoint& p1, const SkPoint& p2) {
return this->quadTo(p1.fX, p1.fY, p2.fX, p2.fY);
@@ -652,6 +663,7 @@
@param dy1 offset from last point to quad control on y-axis
@param dx2 offset from last point to quad end on x-axis
@param dy2 offset from last point to quad end on y-axis
+ @return reference to SkPath
*/
SkPath& rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2);
@@ -675,6 +687,7 @@
@param x2 end SkPoint of conic in x
@param y2 end SkPoint of conic in y
@param w weight of added conic
+ @return reference to SkPath
*/
SkPath& conicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar w);
@@ -697,6 +710,7 @@
@param p1 control SkPoint of added conic
@param p2 end SkPoint of added conic
@param w weight of added conic
+ @return reference to SkPath
*/
SkPath& conicTo(const SkPoint& p1, const SkPoint& p2, SkScalar w) {
return this->conicTo(p1.fX, p1.fY, p2.fX, p2.fY, w);
@@ -725,6 +739,7 @@
@param dx2 offset from last point to conic end on x-axis
@param dy2 offset from last point to conic end on y-axis
@param w weight of added conic
+ @return reference to SkPath
*/
SkPath& rConicTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2,
SkScalar w);
@@ -743,6 +758,7 @@
@param y2 second control SkPoint of cubic in y
@param x3 end SkPoint of cubic in x
@param y3 end SkPoint of cubic in y
+ @return reference to SkPath
*/
SkPath& cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar x3, SkScalar y3);
@@ -758,6 +774,7 @@
@param p1 first control SkPoint of cubic
@param p2 second control SkPoint of cubic
@param p3 end SkPoint of cubic
+ @return reference to SkPath
*/
SkPath& cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3) {
return this->cubicTo(p1.fX, p1.fY, p2.fX, p2.fY, p3.fX, p3.fY);
@@ -781,6 +798,7 @@
@param y2 offset from last point to second cubic control on y-axis
@param x3 offset from last point to cubic end on x-axis
@param y3 offset from last point to cubic end on y-axis
+ @return reference to SkPath
*/
SkPath& rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
SkScalar x3, SkScalar y3);
@@ -798,6 +816,7 @@
@param startAngle starting angle of arc in degrees
@param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360
@param forceMoveTo true to start a new contour with arc
+ @return reference to SkPath
*/
SkPath& arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool forceMoveTo);
@@ -811,6 +830,7 @@
@param x2 x-axis value end of second tangent
@param y2 y-axis value end of second tangent
@param radius distance from arc to circle center
+ @return reference to SkPath
*/
SkPath& arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2, SkScalar radius);
@@ -831,6 +851,7 @@
@param p1 SkPoint common to pair of tangents
@param p2 end of second tangent
@param radius distance from arc to circle center
+ @return reference to SkPath
*/
SkPath& arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius) {
return this->arcTo(p1.fX, p1.fY, p2.fX, p2.fY, radius);
@@ -867,6 +888,7 @@
@param sweep chooses clockwise or counterclockwise arc
@param x end of arc
@param y end of arc
+ @return reference to SkPath
*/
SkPath& arcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar x, SkScalar y);
@@ -890,6 +912,7 @@
@param largeArc chooses smaller or larger arc
@param sweep chooses clockwise or counterclockwise arc
@param xy end of arc
+ @return reference to SkPath
*/
SkPath& arcTo(const SkPoint r, SkScalar xAxisRotate, ArcSize largeArc, Direction sweep,
const SkPoint xy) {
@@ -920,6 +943,7 @@
@param sweep chooses clockwise or counterclockwise arc
@param dx x-axis offset end of arc from last SkPath SkPoint
@param dy y-axis offset end of arc from last SkPath SkPoint
+ @return reference to SkPath
*/
SkPath& rArcTo(SkScalar rx, SkScalar ry, SkScalar xAxisRotate, ArcSize largeArc,
Direction sweep, SkScalar dx, SkScalar dy);
@@ -931,6 +955,8 @@
SkPaint::Join at contour start and end.
close() has no effect if SkPath is empty or last SkPath SkPath::Verb is kClose_Verb.
+
+ @return reference to SkPath
*/
SkPath& close();
@@ -1026,6 +1052,7 @@
@param rect SkRect to add as a closed contour
@param dir SkPath::Direction to wind added contour
+ @return reference to SkPath
*/
SkPath& addRect(const SkRect& rect, Direction dir = kCW_Direction);
@@ -1037,6 +1064,7 @@
@param rect SkRect to add as a closed contour
@param dir SkPath::Direction to wind added contour
@param start initial corner of SkRect to add
+ @return reference to SkPath
*/
SkPath& addRect(const SkRect& rect, Direction dir, unsigned start);
@@ -1051,6 +1079,7 @@
@param right larger x-axis value of SkRect
@param bottom larger y-axis value of SkRect
@param dir SkPath::Direction to wind added contour
+ @return reference to SkPath
*/
SkPath& addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
Direction dir = kCW_Direction);
@@ -1062,6 +1091,7 @@
@param oval bounds of ellipse added
@param dir SkPath::Direction to wind ellipse
+ @return reference to SkPath
*/
SkPath& addOval(const SkRect& oval, Direction dir = kCW_Direction);
@@ -1073,6 +1103,7 @@
@param oval bounds of ellipse added
@param dir SkPath::Direction to wind ellipse
@param start index of initial point of ellipse
+ @return reference to SkPath
*/
SkPath& addOval(const SkRect& oval, Direction dir, unsigned start);
@@ -1086,6 +1117,7 @@
@param y center of circle
@param radius distance from center to edge
@param dir SkPath::Direction to wind circle
+ @return reference to SkPath
*/
SkPath& addCircle(SkScalar x, SkScalar y, SkScalar radius,
Direction dir = kCW_Direction);
@@ -1102,6 +1134,7 @@
@param oval bounds of ellipse containing arc
@param startAngle starting angle of arc in degrees
@param sweepAngle sweep, in degrees. Positive is clockwise; treated modulo 360
+ @return reference to SkPath
*/
SkPath& addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle);
@@ -1121,6 +1154,7 @@
@param rx x-axis radius of rounded corners on the SkRRect
@param ry y-axis radius of rounded corners on the SkRRect
@param dir SkPath::Direction to wind SkRRect
+ @return reference to SkPath
*/
SkPath& addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
Direction dir = kCW_Direction);
@@ -1132,6 +1166,7 @@
@param rect bounds of SkRRect
@param radii array of 8 SkScalar values, a radius pair for each corner
@param dir SkPath::Direction to wind SkRRect
+ @return reference to SkPath
*/
SkPath& addRoundRect(const SkRect& rect, const SkScalar radii[],
Direction dir = kCW_Direction);
@@ -1145,6 +1180,7 @@
@param rrect bounds and radii of rounded rectangle
@param dir SkPath::Direction to wind SkRRect
+ @return reference to SkPath
*/
SkPath& addRRect(const SkRRect& rrect, Direction dir = kCW_Direction);
@@ -1155,12 +1191,13 @@
@param rrect bounds and radii of rounded rectangle
@param dir SkPath::Direction to wind SkRRect
@param start index of initial point of SkRRect
+ @return reference to SkPath
*/
SkPath& addRRect(const SkRRect& rrect, Direction dir, unsigned start);
/** Adds contour created from line array, adding (count - 1) line segments.
Contour added starts at pts[0], then adds a line for every additional SkPoint
- in pts array. If close is true,appends kClose_Verb to SkPath, connecting
+ in pts array. If close is true, appends kClose_Verb to SkPath, connecting
pts[count - 1] and pts[0].
If count is zero, append kMove_Verb to path.
@@ -1169,9 +1206,20 @@
@param pts array of line sharing end and start SkPoint
@param count length of SkPoint array
@param close true to add line connecting contour end and start
+ @return reference to SkPath
*/
SkPath& addPoly(const SkPoint pts[], int count, bool close);
+ /** Adds contour created from list. Contour added starts at list[0], then adds a line
+ for every additional SkPoint in list. If close is true, appends kClose_Verb to SkPath,
+ connecting last and first SkPoint in list.
+
+ If list is empty, append kMove_Verb to path.
+
+ @param list array of SkPoint
+ @param close true to add line connecting contour end and start
+ @return reference to SkPath
+ */
SkPath& addPoly(const std::initializer_list<SkPoint>& list, bool close) {
return this->addPoly(list.begin(), SkToInt(list.size()), close);
}
@@ -1195,6 +1243,7 @@
@param dx offset added to src SkPoint array x-axis coordinates
@param dy offset added to src SkPoint array y-axis coordinates
@param mode kAppend_AddPathMode or kExtend_AddPathMode
+ @return reference to SkPath
*/
SkPath& addPath(const SkPath& src, SkScalar dx, SkScalar dy,
AddPathMode mode = kAppend_AddPathMode);
@@ -1207,6 +1256,7 @@
@param src SkPath verbs, SkPoint, and conic weights to add
@param mode kAppend_AddPathMode or kExtend_AddPathMode
+ @return reference to SkPath
*/
SkPath& addPath(const SkPath& src, AddPathMode mode = kAppend_AddPathMode) {
SkMatrix m;
@@ -1224,6 +1274,7 @@
@param src SkPath verbs, SkPoint, and conic weights to add
@param matrix transform applied to src
@param mode kAppend_AddPathMode or kExtend_AddPathMode
+ @return reference to SkPath
*/
SkPath& addPath(const SkPath& src, const SkMatrix& matrix,
AddPathMode mode = kAppend_AddPathMode);
@@ -1232,6 +1283,7 @@
Reversed src always appends a new contour to SkPath.
@param src SkPath verbs, SkPoint, and conic weights to add
+ @return reference to SkPath
*/
SkPath& reverseAddPath(const SkPath& src);
diff --git a/site/user/api/SkPath_Reference.md b/site/user/api/SkPath_Reference.md
index 76ad5ec..d78cee9 100644
--- a/site/user/api/SkPath_Reference.md
+++ b/site/user/api/SkPath_Reference.md
@@ -1776,13 +1776,17 @@
## reset
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_reset'>reset</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reset'>reset</a>()
</pre>
Sets <a href='#Path'>Path</a> to its initial state.
Removes <a href='#Verb_Array'>Verb Array</a>, <a href='#Point_Array'>Point Array</a>, and <a href='#Conic_Weight'>Weights</a>, and sets <a href='#SkPath_FillType'>FillType</a> to <a href='#SkPath_kWinding_FillType'>kWinding FillType</a>.
Internal storage associated with <a href='#Path'>Path</a> is released.
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="8cdca35d2964bbbecb93d79a13f71c65"></fiddle-embed></div>
@@ -1797,7 +1801,7 @@
## rewind
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rewind'>rewind</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rewind'>rewind</a>()
</pre>
Sets <a href='#Path'>Path</a> to its initial state, preserving internal storage.
@@ -1807,6 +1811,10 @@
Use <a href='#SkPath_rewind'>rewind</a> instead of <a href='#SkPath_reset'>reset</a> if <a href='#Path'>Path</a> storage will be reused and performance
is critical.
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="f1fedbb89da9c2a33a91805175663012"><div>Although path1 retains its internal storage, it is indistinguishable from
@@ -2772,6 +2780,14 @@
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>adds one <a href='#Contour'>Contour</a> containing connected lines</td>
</tr>
<tr style='background-color: #f0f0f0; '>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addPoly'>addPoly(const SkPoint pts[], int count, bool close)</a></td>
+ </tr>
+ <tr>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
+ <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addPoly_2'>addPoly(const std::initializer list<SkPoint>& list, bool close)</a></td>
+ </tr>
+ <tr style='background-color: #f0f0f0; '>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPath_addRRect'>addRRect</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>adds one <a href='#Contour'>Contour</a> containing <a href='SkRRect_Reference#RRect'>Round Rect</a></td>
</tr>
@@ -2889,7 +2905,7 @@
## moveTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
Adds beginning of <a href='#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> (<a href='#SkPath_moveTo_x'>x</a>, <a href='#SkPath_moveTo_y'>y</a>).
@@ -2904,6 +2920,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="84101d341e934a535a41ad6cf42218ce"></fiddle-embed></div>
@@ -2917,7 +2937,7 @@
<a name='SkPath_moveTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_moveTo'>moveTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
Adds beginning of <a href='#Contour'>Contour</a> at <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_moveTo_2_p'>p</a>.
@@ -2929,6 +2949,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="cb8d37990f6e7df3bcc85e7240c81274"></fiddle-embed></div>
@@ -2943,7 +2967,7 @@
## rMoveTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rMoveTo'>rMoveTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
Adds beginning of <a href='#Contour'>Contour</a> relative to <a href='#Last_Point'>Last Point</a>.
@@ -2961,6 +2985,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="63e32dec4b2d8440b427f368bf8313a4"></fiddle-embed></div>
@@ -2975,7 +3003,7 @@
## lineTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to (<a href='#SkPath_lineTo_x'>x</a>, <a href='#SkPath_lineTo_y'>y</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -2994,6 +3022,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="e311cdd451edacec33b50cc22a4dd5dc"></fiddle-embed></div>
@@ -3007,7 +3039,7 @@
<a name='SkPath_lineTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_lineTo'>lineTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p)
</pre>
Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_lineTo_2_p'>p</a>. If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -3023,6 +3055,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="41001546a7f7927d08e5a818bcc304f5"></fiddle-embed></div>
@@ -3037,7 +3073,7 @@
## rLineTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rLineTo'>rLineTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
Adds <a href='undocumented#Line'>Line</a> from <a href='#Last_Point'>Last Point</a> to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rLineTo_dx'>dx</a>, <a href='#SkPath_rLineTo_dy'>dy</a>). If <a href='#Path'>Path</a> is empty, or last <a href='#SkPath_Verb'>Verb</a> is
@@ -3058,6 +3094,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="6e0be0766b8ca320da51640326e608b3"></fiddle-embed></div>
@@ -3092,7 +3132,7 @@
## quadTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2)
</pre>
Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_quadTo_x1'>x1</a>, <a href='#SkPath_quadTo_y1'>y1</a>), to (<a href='#SkPath_quadTo_x2'>x2</a>, <a href='#SkPath_quadTo_y2'>y2</a>).
@@ -3119,6 +3159,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="60ee3eb747474f5781b0f0dd3a17a866"></fiddle-embed></div>
@@ -3132,7 +3176,7 @@
<a name='SkPath_quadTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_quadTo'>quadTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2)
</pre>
Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_quadTo_2_p2'>p2</a>.
@@ -3153,6 +3197,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="82621c4df8da1e589d9e627494067826"></fiddle-embed></div>
@@ -3167,7 +3215,7 @@
## rQuadTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rQuadTo'>rQuadTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2)
</pre>
Adds <a href='#Quad'>Quad</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx1'>dx1</a>, <a href='#SkPath_rQuadTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rQuadTo_dx2'>dx2</a>, <a href='#SkPath_rQuadTo_dy2'>dy2</a>).
@@ -3197,6 +3245,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="1c1f4cdef1c572c9aa8fdf3e461191d0"></fiddle-embed></div>
@@ -3283,7 +3335,7 @@
## conicTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_conicTo_x1'>x1</a>, <a href='#SkPath_conicTo_y1'>y1</a>), to (<a href='#SkPath_conicTo_x2'>x2</a>, <a href='#SkPath_conicTo_y2'>y2</a>), weighted by <a href='#SkPath_conicTo_w'>w</a>.
@@ -3320,6 +3372,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="358d9b6060b528b0923c007420f09c13"><div>As weight increases, curve is pulled towards control point.
@@ -3336,7 +3392,7 @@
<a name='SkPath_conicTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_conicTo'>conicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p1'>p1</a>, to <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_conicTo_2_p2'>p2</a>, weighted by <a href='#SkPath_conicTo_2_w'>w</a>.
@@ -3367,6 +3423,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="22d25e03b19d5bae92118877e462361b"><div><a href='#Conic'>Conics</a> and arcs use identical representations. As the arc sweep increases
@@ -3383,7 +3443,7 @@
## rConicTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rConicTo'>rConicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx1, <a href='undocumented#SkScalar'>SkScalar</a> dy1, <a href='undocumented#SkScalar'>SkScalar</a> dx2, <a href='undocumented#SkScalar'>SkScalar</a> dy2, <a href='undocumented#SkScalar'>SkScalar</a> w)
</pre>
Adds <a href='#Conic'>Conic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx1'>dx1</a>, <a href='#SkPath_rConicTo_dy1'>dy1</a>), to <a href='SkPoint_Reference#Vector'>Vector</a> (<a href='#SkPath_rConicTo_dx2'>dx2</a>, <a href='#SkPath_rConicTo_dy2'>dy2</a>),
@@ -3423,6 +3483,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3d52763e7c0e20c0b1d484a0afa622d2"></fiddle-embed></div>
@@ -3447,7 +3511,7 @@
## cubicTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
</pre>
Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards (<a href='#SkPath_cubicTo_x1'>x1</a>, <a href='#SkPath_cubicTo_y1'>y1</a>), then towards (<a href='#SkPath_cubicTo_x2'>x2</a>, <a href='#SkPath_cubicTo_y2'>y2</a>), ending at
@@ -3480,6 +3544,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3e476378e3e0550ab134bbaf61112d98"></fiddle-embed></div>
@@ -3493,7 +3561,7 @@
<a name='SkPath_cubicTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_cubicTo'>cubicTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p2, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& p3)
</pre>
Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p1'>p1</a>, then towards <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPath_cubicTo_2_p2'>p2</a>, ending at
@@ -3517,6 +3585,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="d38aaf12c6ff5b8d901a2201bcee5476"></fiddle-embed></div>
@@ -3531,7 +3603,7 @@
## rCubicTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rCubicTo'>rCubicTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> x3, <a href='undocumented#SkScalar'>SkScalar</a> y3)
</pre>
Adds <a href='#Cubic'>Cubic</a> from <a href='#Last_Point'>Last Point</a> towards <a href='SkPoint_Reference#Vector'>Vector</a> (dx1, dy1), then towards
@@ -3568,6 +3640,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="19f0cfc7eeba8937fe19446ec0b5f932"></fiddle-embed></div>
@@ -3642,7 +3718,7 @@
## arcTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle, bool forceMoveTo)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> added is part of ellipse
@@ -3670,6 +3746,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="5f02890edaa10cb5e1a4243a82b6a382"><div><a href='#SkPath_arcTo'>arcTo</a> continues a previous contour when <a href='#SkPath_arcTo_forceMoveTo'>forceMoveTo</a> is false and when <a href='#Path'>Path</a>
@@ -3685,7 +3765,7 @@
<a name='SkPath_arcTo_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> x1, <a href='undocumented#SkScalar'>SkScalar</a> y1, <a href='undocumented#SkScalar'>SkScalar</a> x2, <a href='undocumented#SkScalar'>SkScalar</a> y2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
@@ -3729,6 +3809,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="498360fa0a201cc5db04b1c27256358f"><div><a href='#SkPath_arcTo'>arcTo</a> is represented by <a href='undocumented#Line'>Line</a> and circular <a href='#Conic'>Conic</a> in <a href='#Path'>Path</a>.
@@ -3753,7 +3837,7 @@
<a name='SkPath_arcTo_3'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p1, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> p2, <a href='undocumented#SkScalar'>SkScalar</a> radius)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, after appending <a href='undocumented#Line'>Line</a> if needed. <a href='#Arc'>Arc</a> is implemented by <a href='#Conic'>Conic</a>
@@ -3783,6 +3867,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="0c056264a361579c18e5d02d3172d4d4"><div>Because tangent lines are parallel, <a href='#SkPath_arcTo'>arcTo</a> appends line from last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a> to
@@ -3850,8 +3938,8 @@
<a name='SkPath_arcTo_4'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
- <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ <a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conics</a> weighted to
@@ -3894,6 +3982,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="6b6ea44f659b27918f3a6fa621bf6173"></fiddle-embed></div>
@@ -3907,7 +3999,8 @@
<a name='SkPath_arcTo_5'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_arcTo'>arcTo</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> r, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> xy)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>. <a href='#Arc'>Arc</a> is implemented by one or more <a href='#Conic'>Conic</a> weighted to describe part of <a href='undocumented#Oval'>Oval</a>
@@ -3943,6 +4036,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3f76a1007416181a4848c1a87fc81dbd"></fiddle-embed></div>
@@ -3957,8 +4054,8 @@
## rArcTo
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
- <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_rArcTo'>rArcTo</a>(<a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='undocumented#SkScalar'>SkScalar</a> xAxisRotate, <a href='#SkPath_ArcSize'>ArcSize</a> largeArc, <a href='#SkPath_Direction'>Direction</a> sweep,
+ <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, relative to last <a href='#Path'>Path</a> <a href='SkPoint_Reference#Point'>Point</a>. <a href='#Arc'>Arc</a> is implemented by one or
@@ -4006,6 +4103,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3f76a1007416181a4848c1a87fc81dbd"></fiddle-embed></div>
@@ -4020,7 +4121,7 @@
## close
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_close'>close</a>()
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_close'>close</a>()
</pre>
Appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>. A closed <a href='#Contour'>Contour</a> connects the first and last <a href='SkPoint_Reference#Point'>Point</a>
@@ -4031,6 +4132,10 @@
<a href='#SkPath_close'>close</a> has no effect if <a href='#Path'>Path</a> is empty or last <a href='#Path'>Path</a> <a href='#SkPath_Verb'>Verb</a> is <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="9235f6309271d6420fa5c45dc28664c5"></fiddle-embed></div>
@@ -4311,7 +4416,7 @@
## addRect
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>,
@@ -4329,6 +4434,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="0f841e4eaebb613b5069800567917c2d"><div>The left <a href='SkRect_Reference#Rect'>Rect</a> dashes starting at the top-left corner, to the right.
@@ -4344,7 +4453,7 @@
<a name='SkPath_addRect_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
Adds <a href='SkRect_Reference#Rect'>Rect</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, three <a href='#SkPath_kLine_Verb'>kLine Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4372,6 +4481,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="9202430b3f4f5275af8eec5cc9d7baa8"><div>The arrow is just after the initial corner and points towards the next
@@ -4387,8 +4500,8 @@
<a name='SkPath_addRect_3'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
- <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRect'>addRect</a>(<a href='undocumented#SkScalar'>SkScalar</a> left, <a href='undocumented#SkScalar'>SkScalar</a> top, <a href='undocumented#SkScalar'>SkScalar</a> right, <a href='undocumented#SkScalar'>SkScalar</a> bottom,
+ <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Adds <a href='SkRect_Reference#Rect'>Rect</a> (<a href='#SkPath_addRect_3_left'>left</a>, <a href='#SkPath_addRect_3_top'>top</a>, <a href='#SkPath_addRect_3_right'>right</a>, <a href='#SkPath_addRect_3_bottom'>bottom</a>) to <a href='#Path'>Path</a>,
@@ -4416,6 +4529,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3837827310e8b88b8c2e128ef9fbbd65"><div>The <a href='#SkPath_addRect_3_left'>left</a> <a href='SkRect_Reference#Rect'>Rect</a> dashes start at the <a href='#SkPath_addRect_3_top'>top</a>-<a href='#SkPath_addRect_3_left'>left</a> corner, and continue to the <a href='#SkPath_addRect_3_right'>right</a>.
@@ -4432,7 +4549,7 @@
## addOval
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Adds <a href='undocumented#Oval'>Oval</a> to path, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4450,6 +4567,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="cac84cf68e63a453c2a8b64c91537704"></fiddle-embed></div>
@@ -4463,7 +4584,7 @@
<a name='SkPath_addOval_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addOval'>addOval</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
Adds <a href='undocumented#Oval'>Oval</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>, four <a href='#SkPath_kConic_Verb'>kConic Verb</a>, and <a href='#SkPath_kClose_Verb'>kClose Verb</a>.
@@ -4491,6 +4612,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="ab9753174060e4a551727ef3af12924d"></fiddle-embed></div>
@@ -4505,7 +4630,7 @@
## addCircle
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addCircle'>addCircle</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> radius, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Adds <a href='undocumented#Circle'>Circle</a> centered at (<a href='#SkPath_addCircle_x'>x</a>, <a href='#SkPath_addCircle_y'>y</a>) of size <a href='#SkPath_addCircle_radius'>radius</a> to <a href='#Path'>Path</a>, appending <a href='#SkPath_kMove_Verb'>kMove Verb</a>,
@@ -4533,6 +4658,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="bd5286cb9a5e5c32cd980f72b8f400fb"></fiddle-embed></div>
@@ -4547,7 +4676,7 @@
## addArc
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addArc'>addArc</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& oval, <a href='undocumented#SkScalar'>SkScalar</a> startAngle, <a href='undocumented#SkScalar'>SkScalar</a> sweepAngle)
</pre>
Appends <a href='#Arc'>Arc</a> to <a href='#Path'>Path</a>, as the start of new <a href='#Contour'>Contour</a>. <a href='#Arc'>Arc</a> added is part of ellipse
@@ -4572,6 +4701,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="9cf5122475624e4cf39f06c698f80b1a"><div>The middle row of the left and right columns draw differently from the entries
@@ -4589,7 +4722,7 @@
## addRoundRect
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, <a href='undocumented#SkScalar'>SkScalar</a> rx, <a href='undocumented#SkScalar'>SkScalar</a> ry, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Appends <a href='SkRRect_Reference#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
@@ -4620,6 +4753,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="24736f685f265cf533f1700c042db353"><div>If either radius is zero, path contains <a href='SkRect_Reference#Rect'>Rect</a> and is drawn red.
@@ -4638,7 +4775,7 @@
<a name='SkPath_addRoundRect_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='undocumented#SkScalar'>SkScalar</a> radii[], <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRoundRect'>addRoundRect</a>(const <a href='SkRect_Reference#SkRect'>SkRect</a>& rect, const <a href='undocumented#SkScalar'>SkScalar</a> radii[], <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Appends <a href='SkRRect_Reference#RRect'>Round Rect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. <a href='SkRRect_Reference#RRect'>Round Rect</a> has bounds
@@ -4679,6 +4816,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="c43d70606b4ee464d2befbcf448c5e73"></fiddle-embed></div>
@@ -4693,7 +4834,7 @@
## addRRect
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir = <a href='#SkPath_kCW_Direction'>kCW Direction</a>)
</pre>
Adds <a href='#SkPath_addRRect_rrect'>rrect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. If
@@ -4713,6 +4854,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="d9ecd58081b5bc77a157636fcb345dc6"></fiddle-embed></div>
@@ -4726,7 +4871,7 @@
<a name='SkPath_addRRect_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addRRect'>addRRect</a>(const <a href='SkRRect_Reference#SkRRect'>SkRRect</a>& rrect, <a href='#SkPath_Direction'>Direction</a> dir, unsigned start)
</pre>
Adds <a href='#SkPath_addRRect_2_rrect'>rrect</a> to <a href='#Path'>Path</a>, creating a new closed <a href='#Contour'>Contour</a>. If <a href='#SkPath_addRRect_2_dir'>dir</a> is <a href='#SkPath_kCW_Direction'>kCW Direction</a>, <a href='#SkPath_addRRect_2_rrect'>rrect</a>
@@ -4759,6 +4904,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="f18740ffcb10a499007488948c2cd60d"></fiddle-embed></div>
@@ -4773,12 +4922,12 @@
## addPoly
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a> pts[], int count, bool close)
</pre>
Adds <a href='#Contour'>Contour</a> created from <a href='undocumented#Line'>Line</a> array, adding (<a href='#SkPath_addPoly_count'>count</a> - 1) <a href='undocumented#Line'>Line</a> segments.
<a href='#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_pts'>pts</a>[0], then adds a line for every additional <a href='SkPoint_Reference#Point'>Point</a>
-in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true,appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
+in <a href='#SkPath_addPoly_pts'>pts</a> array. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>, connecting
<a href='#SkPath_addPoly_pts'>pts</a>[<a href='#SkPath_addPoly_count'>count</a> - 1] and <a href='#SkPath_addPoly_pts'>pts</a>[0].
If <a href='#SkPath_addPoly_count'>count</a> is zero, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
@@ -4797,6 +4946,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="182b3999772f330f3b0b891b492634ae"></fiddle-embed></div>
@@ -4807,6 +4960,42 @@
---
+<a name='SkPath_addPoly_2'></a>
+
+<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPoly'>addPoly</a>(const std::initializer_list<<a href='SkPoint_Reference#SkPoint'>SkPoint</a>>& list, bool close)
+</pre>
+
+Adds <a href='#Contour'>Contour</a> created from <a href='#SkPath_addPoly_2_list'>list</a>. <a href='#Contour'>Contour</a> added starts at <a href='#SkPath_addPoly_2_list'>list</a>[0], then adds a line
+for every additional <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>. If close is true, appends <a href='#SkPath_kClose_Verb'>kClose Verb</a> to <a href='#Path'>Path</a>,
+connecting last and first <a href='SkPoint_Reference#Point'>Point</a> in <a href='#SkPath_addPoly_2_list'>list</a>.
+
+If <a href='#SkPath_addPoly_2_list'>list</a> is empty, append <a href='#SkPath_kMove_Verb'>kMove Verb</a> to path.
+
+### Parameters
+
+<table> <tr> <td><a name='SkPath_addPoly_2_list'><code><strong>list</strong></code></a></td>
+ <td>array of <a href='SkPoint_Reference#Point'>Points</a></td>
+ </tr>
+ <tr> <td><a name='SkPath_addPoly_2_close'><code><strong>close</strong></code></a></td>
+ <td>true to add <a href='undocumented#Line'>Line</a> connecting <a href='#Contour'>Contour</a> end and start</td>
+ </tr>
+</table>
+
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
+### Example
+
+<div><fiddle-embed name="1a6b69acad5ceafede3c5984ec6634cb"></fiddle-embed></div>
+
+### See Also
+
+<a href='SkCanvas_Reference#SkCanvas_drawPoints'>SkCanvas::drawPoints</a>
+
+---
+
## <a name='SkPath_AddPathMode'>Enum SkPath::AddPathMode</a>
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
@@ -4860,7 +5049,7 @@
## addPath
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
Appends <a href='#SkPath_addPath_src'>src</a> to <a href='#Path'>Path</a>, offset by (<a href='#SkPath_addPath_dx'>dx</a>, <a href='#SkPath_addPath_dy'>dy</a>).
@@ -4885,6 +5074,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="c416bddfe286628974e1c7f0fd66f3f4"></fiddle-embed></div>
@@ -4898,7 +5091,7 @@
<a name='SkPath_addPath_2'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
Appends <a href='#SkPath_addPath_2_src'>src</a> to <a href='#Path'>Path</a>.
@@ -4917,6 +5110,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="84b2d1c0fc29f1b35e855b6fc6672f9e"></fiddle-embed></div>
@@ -4930,7 +5127,7 @@
<a name='SkPath_addPath_3'></a>
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_addPath'>addPath</a>(const <a href='#SkPath'>SkPath</a>& src, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& matrix, <a href='#SkPath_AddPathMode'>AddPathMode</a> mode = <a href='#SkPath_kAppend_AddPathMode'>kAppend AddPathMode</a>)
</pre>
Appends <a href='#SkPath_addPath_3_src'>src</a> to <a href='#Path'>Path</a>, transformed by <a href='#SkPath_addPath_3_matrix'>matrix</a>. Transformed curves may have different
@@ -4953,6 +5150,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="3a90a91030f7289d5df0671d342dbbad"></fiddle-embed></div>
@@ -4967,7 +5168,7 @@
## reverseAddPath
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
-void <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
+<a href='#SkPath'>SkPath</a>& <a href='#SkPath_reverseAddPath'>reverseAddPath</a>(const <a href='#SkPath'>SkPath</a>& src)
</pre>
Appends <a href='#SkPath_reverseAddPath_src'>src</a> to <a href='#Path'>Path</a>, from back to front.
@@ -4980,6 +5181,10 @@
</tr>
</table>
+### Return Value
+
+reference to <a href='#Path'>Path</a>
+
### Example
<div><fiddle-embed name="5e8513f073db09acde3ff616f6426e3d"></fiddle-embed></div>
diff --git a/site/user/api/SkRect_Reference.md b/site/user/api/SkRect_Reference.md
index 0259ab0..488866d 100644
--- a/site/user/api/SkRect_Reference.md
+++ b/site/user/api/SkRect_Reference.md
@@ -1530,7 +1530,7 @@
### See Also
-<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
---
@@ -1580,7 +1580,7 @@
### See Also
-<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBounds'>setBounds</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_set'>set</a><sup><a href='#SkRect_set_2'>[2]</a></sup><sup><a href='#SkRect_set_3'>[3]</a></sup><sup><a href='#SkRect_set_4'>[4]</a></sup> <a href='#SkRect_setBounds'>setBounds</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
---
@@ -1849,7 +1849,7 @@
### See Also
-<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a>
+<a href='#SkRect_setBounds'>setBounds</a> <a href='#SkRect_setBoundsCheck'>setBoundsCheck</a> <a href='SkPath_Reference#SkPath_addPoly'>SkPath::addPoly</a><sup><a href='SkPath_Reference#SkPath_addPoly_2'>[2]</a></sup>
---
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 5b9aea5..2313cfd 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -7498,6 +7498,14 @@
"file": "SkPath_Reference",
"name": "SkPath::addPoly"
},
+ "SkPath_addPoly_2": {
+ "code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setStrokeWidth(15);\n paint.setStrokeCap(SkPaint::kRound_Cap);\n for (bool close : { false, true } ) {\n SkPath path;\n path.addPoly({{20, 20}, {70, 20}, {40, 90}}, close);\n for (auto style : {SkPaint::kStroke_Style, SkPaint::kFill_Style,\n SkPaint::kStrokeAndFill_Style} ) {\n paint.setStyle(style);\n canvas->drawPath(path, paint);\n canvas->translate(85, 0);\n }\n canvas->translate(-255, 128);\n }\n}\n",
+ "width": 256,
+ "height": 256,
+ "hash": "1a6b69acad5ceafede3c5984ec6634cb",
+ "file": "SkPath_Reference",
+ "name": "SkPath::addPoly_2"
+},
"SkPath_addRRect": {
"code": "void draw(SkCanvas* canvas) {\n SkPaint paint;\n paint.setAntiAlias(true);\n SkRRect rrect;\n SkVector radii[] = {{50, 50}, {0, 0}, {0, 0}, {50, 50}};\n rrect.setRectRadii({10, 10, 110, 110}, radii);\n SkPath path;\n SkMatrix rotate90;\n rotate90.setRotate(90, 128, 128);\n for (int i = 0; i < 4; ++i) {\n path.addRRect(rrect);\n path.transform(rotate90);\n }\n canvas->drawPath(path, paint);\n}\n",
"width": 256,