# Clipper2
**Repository Path**: yongxinxd/Clipper2
## Basic Information
- **Project Name**: Clipper2
- **Description**: fork from github
- **Primary Language**: Unknown
- **License**: BSL-1.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2023-12-26
- **Last Updated**: 2023-12-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Clipper2
### A Polygon Clipping and Offsetting library (in C++, C# & Delphi)
[](https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_cpp.yml) [](https://github.com/AngusJohnson/Clipper2/actions/workflows/actions_csharp.yml) [](https://www.boost.org/LICENSE_1_0.txt)
[](https://www.nuget.org/packages/Clipper2)
[](http://www.angusj.com/clipper2/Docs/Overview.htm)
The Clipper2 library performs **intersection**, **union**, **difference** and **XOR** boolean operations on both simple and complex polygons. It also performs polygon offsetting. This is a major update of my original Clipper library that written over 10 years ago. That library I'm now calling Clipper1 and while it still works very well, Clipper2 is [better](http://www.angusj.com/clipper2/Docs/Changes.htm) in just about every way.
### Documentation
Extensive HTML documentation
### Examples
//C++ Paths64 subject, clip, solution; subject.push_back(MakePath("100, 50, 10, 79, 65, 2, 65, 98, 10, 21")); clip.push_back(MakePath("98, 63, 4, 68, 77, 8, 52, 100, 19, 12")); solution = Intersect(subject, clip, FillRule::NonZero);
//C# Paths64 subj = new Paths64(); Paths64 clip = new Paths64(); subj.Add(Clipper.MakePath(new int[] { 100, 50, 10, 79, 65, 2, 65, 98, 10, 21 })); clip.Add(Clipper.MakePath(new int[] { 98, 63, 4, 68, 77, 8, 52, 100, 19, 12 })); Paths64 solution = Clipper.Intersect(subj, clip, FillRule.NonZero);
//Delphi var subject, clip, solution: TPaths64; begin SetLength(subject, 1); subject[0] := MakePath([100, 50, 10, 79, 65, 2, 65, 98, 10, 21]); SetLength(clip, 1); clip[0] := MakePath([98, 63, 4, 68, 77, 8, 52, 100, 19, 12]); solution := Intersect( subject, clip, frNonZero);