SkillAgentSearch skills...

Clipper2

Polygon Clipping, Offsetting & Triangulation in C++, C# and Delphi

Install / Use

/learn @AngusJohnson/Clipper2

README

Clipper2

A Polygon <a href="https://en.wikipedia.org/wiki/Clipping_(computer_graphics)">Clipping</a>, <a href="https://en.wikipedia.org/wiki/Parallel_curve">Offsetting</a> and <a href="https://en.wikipedia.org/wiki/Constrained_Delaunay_triangulation">Triangulation</a> library (in C++, C# & Delphi)<br>

GitHub Actions C++ status C# License Nuget documentation

The <b>Clipper2</b> library performs intersection, union, difference and XOR boolean operations on both simple and complex polygons. It also performs polygon offsetting, and Constrained Delaunay Triangulation. This is a major update of my original <a href="https://sourceforge.net/projects/polyclipping/"><b>Clipper</b></a> library that was written about 15 years ago. That library I'm now calling <b>Clipper1</b>, and while it still works very well, Clipper2 is just better.

Compilers

<b>Clipper2</b> can be compiled using any one of three supported programming languages: C++, or C#, or Delphi Pascal. The library can also be accessed from other languages by dynamically linking to exported functions in the C++ compiled Clipper2 library. (The C++ compiled code is measurably faster so, where performance is critical, even C# and Delphi developers may prefer this approach in application development.) | Lang. | Requirements | | --- | --- | | C++: | Requires C++17, or| | C#: | The library uses Standard Library 2.0 but the sample code uses .NET6, or| | Delphi: | Compiles with any version of Delphi from version 7 to current.|

Documentation

<a href="https://www.angusj.com/clipper2/Docs/Overview.htm"><b>Extensive HTML documentation</b></a> <br><br>

Examples

Clipping

<details open> <summary><b>C++</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CPP/Examples/SimpleClipping/SimpleClipping.cpp#L29-L34 </details> <details> <summary><b>C#</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CSharp/Clipper2Lib.Examples/ConsoleDemo/Main.cs#L112-L116 </details> <details> <summary><b>Delphi</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/Delphi/Examples/Example1/Example1.dpr#L21-L26 </details>

clipperB

Inflating (aka Offsetting)

<details open> <summary><b>C++</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CPP/Examples/Inflate/Inflate.cpp#L36-L47 </details> <details> <summary><b>C#</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CSharp/Clipper2Lib.Examples/InflateDemo/Main.cs#L89-L100 </details> <details> <summary><b>Delphi</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/Delphi/Examples/Example2/Example2.dpr#L20-L31 </details>

rabbit rabbit_offset

Constrained Delaunay Triangulation<br>

<details open> <summary><b>C++</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CPP/Examples/Triangulation/Triangulation.cpp#L135-L138 </details> <details> <summary><b>C#</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/CSharp/Clipper2Lib.Examples/Triangulation/Main.cs#L110-L115 </details> <details> <summary><b>Delphi</b></summary> https://github.com/AngusJohnson/Clipper2/blob/fa7add77364eb3877dd1b8caf9b3cbd5486347f6/Delphi/Examples/Triangulation/ClipperTri.dpr#L28-L33 </details>

coral3 coral3t

<details open> <summary><b>C++</b></summary> https://github.com/AngusJohnson/Clipper2/blob/2970649befb89af85e2132e5242a7d6926cbfa11/CPP/Examples/UsingZ/UsingZ.cpp#L173-L184 </details>

coral3_t2

<hr>

Ports to other languages

| lang. | link | | ------ | ------ | | golang | https://github.com/epit3d/goclipper2 | | Haxe | https://github.com/jeremyfa/Clipper2/tree/main/Haxe | | Java | https://github.com/micycle1/Clipper2-java/ | | Kotlin | https://github.com/Monkey-Maestro/clipper2-kotlin | | Lua | https://github.com/Ark223/Clipper2-Lua | | Rust | https://github.com/larsbrubaker/clipper2-rust | | Swift | https://github.com/zyunlongz/clipper2-swift | | TypeScript | https://github.com/countertype/clipper2-ts | | WASM | https://github.com/ErikSom/Clipper2-WASM/ |

View on GitHub
GitHub Stars2.2k
CategoryDevelopment
Updated3m ago
Forks412

Languages

C++

Security Score

100/100

Audited on Mar 28, 2026

No findings