Skip to content

ClipType

Seth Hillbrand edited this page Oct 29, 2026 · 2 revisions

Home › clipper.h › ClipType

ClipType

enum ClipType { Intersection, Union, Difference, Xor };

There are four boolean operations:

  • AND (intersection) - regions covered by both subject and clip polygons
  • OR (union) - regions covered by subject or clip polygons, or both polygons
  • NOT (difference) - regions covered by subject, but not clip polygons
  • XOR (exclusive or) - regions covered by subject or clip polygons, but not both

Of these four operations, only difference is non-commutative. This means that subject and clip paths are interchangeable except when performing difference operations (and as long as subject paths are closed).

All polygon clipping is performed with a Clipper object with the specific boolean operation indicated by the ClipType parameter passed in its Execute method.

With regard to open paths (polylines), clipping rules generally match those of closed paths (polygons).
However, when there are both polyline and polygon subjects, the following clipping rules apply:

  • union operations - polylines will be clipped by any overlapping polygons so that only non-overlapped portions will be returned in the solution, together with solution polygons
  • intersection, difference and xor operations - polylines will be clipped by 'clip' polygons, and there will be not interaction between polylines and any subject polygons.

Example of clipping behaviour when mixing polyline and polygon subjects:
   

See Also

Overview, Clipper64, Clipper64.Execute

Clone this wiki locally