# ClipPath class

Shape Clipping Path. When the object is serialized out as xml, its qualified name is o:clippath.

DocumentFormat.OpenXml.OpenXmlElement

DocumentFormat.OpenXml.OpenXmlLeafElement

DocumentFormat.OpenXml.Vml.Office.ClipPath

**Namespace:**DocumentFormat.OpenXml.Vml.Office

**Assembly:**DocumentFormat.OpenXml (in DocumentFormat.OpenXml.dll)

[ISO/IEC 29500-1 1st Edition]

**clippath (Shape Clipping Path)**

This element specifies the path of the clipping polygon for the shape.

[*Example*:

<v:rect … wrapcoords="-207 -433 -207 21925 21807 21925 21807 -433 -207 -433" o:clip="t" o:cliptowrap="t"> <o:clippath o:v="m-207,-433r,22358l21807,21925r,-22358l-207,-433xe"/> </v:rect>

*end example*]

Parent Elements |
---|

arc (§14.1.2.1); background (Part 1, §17.2.1); curve (§14.1.2.3); group (§14.1.2.7); hdrShapeDefaults (§9.7.2.1); image (§14.1.2.10); line (§14.1.2.12); object (Part 1, §17.3.3.19); oval (§14.1.2.13); pict (§9.2.2.2); pict (§9.5.1); polyline (§14.1.2.15); rect (§14.1.2.16); roundrect (§14.1.2.17); shape (§14.1.2.19); shapeDefaults (§9.7.2.2); shapetype (§14.1.2.20) |

Attributes | Description |
---|---|

v (Path Definition) | Specifies a string containing the commands that define the shape's path. This value consists of commands followed by zero or more parameters. Default is no value. The following rules apply to path strings: Commas or spaces delimit parameters for each command. Both "m 0,0" and "m0 0" are acceptable. A parameter that is omitted using commas is treated as having a value of zero. Thus, "c 10,10,0,0,25,13" and "c 10,10,,,25,13" are equivalent. Parameterized paths are also allowed. In this case, the shape shall also have a formulas element (§14.1.2.6) with a list of formulas that are substituted into the path using the @ symbol followed by the number of the formula. The adj property of the shape contains the input parameters for these formulas. For example, "moveto @1@4". The evaluations of the formulas are substituted into the appropriate positions. @ also serves as a delimiter.
The allowed commands are given below. An asterisk (*) indicates that the command is allowed to be repeated. For the Command Name Parameters Description
moveto 2 Start a new sub-path at the given (x,y) coordinate.
lineto 2* Draw a line from the current point to the given (x,y) coordinate which becomes the new current point. Specifying a number of coordinate pairs forms a polyline.
curveto 6* Draw a cubic bézier curve from the current point to the coordinate given by the final two parameters. The control points are given by the first four parameters.
close 0 Close the current sub-path by drawing a straight line from the current point to the original moveto point.
end 0 End the current set of sub-paths. A given set of sub-paths (as delimited by end) is filled. Subsequent sets of sub-paths are filled independently and superimposed on existing ones.
rmoveto 2* Start a new sub-path at a coordinate relative to the current point, cp (cpx+x, cpy+y).
rlineto 2* Draw a line from the current point to the given relative coordinate (cpx+x, cpy+y).
rcurveto 6* Cubic bézier curve using the given coordinate relative to the current point.
nofill 0 The current set of sub-paths (delimited by e) is not filled.
nostroke 0 The current set of sub-paths (delimited by e) is not stroked.
angleellipseto 6* Draws a segment of an ellipse as described using these parameters. A straight line is drawn from the current point to the start point of the segment. The parameters are: center (x,y), size(w,h), start angle, end angle.
angleellipse 6* Same as angleellipseto except that there is an implied moveto the starting point of the segment.
arcto 8* A segment of the ellipse is drawn which starts at the angle defined by the start radius vector and ends at the angle defined by the end vector. A straight line is drawn from the current point to the start of the arc. The arc is always drawn in a counterclockwise direction. The parameters are: left, top, right, bottom, start(x,y), end(x,y). The first four values define the bounding box of an ellipse. The last four define two radial vectors.
arc 8* Same as arcto except there is an implied moveto the start point of the arc.
clockwisearcto 8* Same as arcto but the arc is drawn in a clockwise direction.
clockwisearc 8* Same as arc but the arc is drawn in a clockwise direction
ellipticalqaudrantx 2* A quarter ellipse is drawn from the current point to the given end point. The elliptical segment is initially tangential to a line parallel to the x-axis. (i.e. the segment starts out horizontal). The parameters are: end(x,y).
ellipticalquadranty 2* Same as ellipticalquadrantx except that the elliptical segment is initially tangential to a line parallel to the y-axis (i.e. the segment starts out vertical).
quadraticbezier 2+2* Defines one or more quadratic bézier curves by means of control points and an end point. Intermediate (on-curve) points are obtained by interpolation between successive control points as in the OpenType font specification. The sub-path need not be started in which case the sub-path is closed. In this case the last point of the sub-path defines the start point of the quadratic bézier. The parameters are: controlpoint(x,y)*, end(x,y). The possible values for this attribute are defined by the W3C XML Schema |

[*Note*: The W3C XML Schema definition of this element’s content model (CT_ClipPath) is located in §A.6.2. *end note*]

© ISO/IEC29500: 2008.