SkPath Overview
===
Path contains Lines and Curves which can be stroked or filled. Contour is
composed of a series of connected Lines and Curves. Path may contain zero,
one, or more Contours.
Each Line and Curve are described by Verb, Points, and optional Path_Conic_Weight.
Each pair of connected Lines and Curves share common Point; for instance, Path
containing two connected Lines are described the Path_Verb sequence:
SkPath::kMove_Verb, SkPath::kLine_Verb, SkPath::kLine_Verb; and a Point sequence
with three entries, sharing
the middle entry as the end of the first Line and the start of the second Line.
Path components Arc, Rect, Round_Rect, Circle, and Oval are composed of
Lines and Curves with as many Verbs and Points required
for an exact description. Once added to Path, these components may lose their
identity; although Path can be inspected to determine if it describes a single
Rect, Oval, Round_Rect, and so on.
### Example
Path contains a Path_Fill_Type which determines whether overlapping Contours
form fills or holes. Path_Fill_Type also determines whether area inside or outside
Lines and Curves is filled.
### Example
Path is drawn filled, then stroked, then stroked and filled.
Path contents are never shared. Copying Path by value effectively creates
a new Path independent of the original. Internally, the copy does not duplicate
its contents until it is edited, to reduce memory use and improve performance.
---
Contour contains one or more Verbs, and as many Points as
are required to satisfy Path_Verb_Array. First Path_Verb in Path is always
SkPath::kMove_Verb; each SkPath::kMove_Verb that follows starts a new Contour.
### Example
If final Path_Verb in Contour is SkPath::kClose_Verb, Line connects Path_Last_Point in
Contour with first Point. A closed Contour, stroked, draws
Paint_Stroke_Join at Path_Last_Point and first Point. Without SkPath::kClose_Verb
as final Verb, Path_Last_Point and first Point are not connected; Contour
remains open. An open Contour, stroked, draws Paint_Stroke_Cap at
Path_Last_Point and first Point.
### Example
---
Contour length is distance traveled from first Point to Path_Last_Point,
plus, if Contour is closed, distance from Path_Last_Point to first Point.
Even if Contour length is zero, stroked Lines are drawn if Paint_Stroke_Cap
makes them visible.
### Example