**General Polygon Clipper**, çokgenlerde kırpma uygulamaları yapmayı sağlayan bir yazılım kütüphanesidir. Bu uygulama bilgisayar grafiklerindeki çokgenlerin çokgenler ile kesiştirilmesi sorununu genelleştirerek çözmeye odaklanır.

İlk tasarımı ve uygulaması 1997 yılında Manchester Üniversitesi'nde Alan Murta tarafından yapılmıştır. 2009 yılının ağustos ayında uygulamanın 2.32 sürümü çıkmıştır.

**GPC** ticari olmayan uygulamalarda ücretsiz kullanılabilen açık kaynak kodlu bir yazılımdır. Yazılımın üreticisi akademik çalışmalarda, araştırmalarda ve öğrenim programlarında uygulamanın kullanılmasını desteklemektedir. Ticari olarak yazılımı kullanabilmek için Manchester Üniversitesi'nin lisansına ihtiyaç duyulur.

Yazılım özünde C programlama dili ile yazılmıştır. Ancak farklı programlama dillerine çevrilmiş sürümleri de mevcuttur.

GPC'nin özellikleri
-------------------

Aşağıdaki maddeler GPC'nin çokgenler üzerinde uygulayabileceği işlemlerin özetidir;

* Fark, kesişim, ayrışım ve birleşim işlemleri gerçekleştirebilir
* Kontur köşeleri saat yönünde veya saat yönünün tersi yönünde olarak belirtilebilir.
* Çokgenler birden çok ayrık şekil içerebilir.
* Şekiller içbükey , dışbükey veya kendini kesen alanlar olabilir.
* Delikli çokgenler işlenebilir.
* Kesişim operasyonunun çıktısı olarak programdan bir kontur veya tristrip alınabilir.
* Tesadüf kenarları ve dejenere bölgeler doğru şekilde işlenir.

GPC'nin uygulama örnekleri
--------------------------

İlk başta belirttiğimiz 4 ana işlemin uygulanmasına dair örnekler şunlardır:

İki veri seti arasındaki **fark** işlemi;

Example of GPC DifferenceExample of GPC **Difference**
İki veri seti arasındaki **kesişim** işlemi;

Example of GPC IntersectionExample of GPC **Intersection**
İki veri setinin **birleşim** işlemi;

Example of GPC UnionExample of GPC **Union**
İki veri setinin**fark ve birleşim beraber** işlemi;

Example of GPC Exclusive-orExample of GPC **Exclusive-or**

Diğer programlara dillerinde GPC
--------------------------------

GPC temelde C ile yazılsa da kullanıcılar programı birçok başka dillerde de yazmaya çalışmıştır ancak bazı geçişlerde orijinal özelliklerin tamamen taşınamaması gibi bir sorunla karşılaşılmıştır. Örneğin Java diline geçişte gerçekleşmiş bilinen geçişler şunlardır ;

1. Çokgen Farkları- Algoritma destekleniyor ancak public method bulunmuyor ve test edilmedi
2. Çıktı- Tristirp yok
3. Çıktı-Çoklu arayüz yok
4. Çıktı sıralamasında delikler hep listenin sonunda
5. Her şey daha fazla obje tabanlı özellikle çıktılar.

Çevirilen tüm diller;
(Action Script 3, Borland Delphi, C#, GNU Octave, Haxe, Haskell, Java, Lua, Pascal, Perl, Python, VB.Net). Diğer dillerdeki çevrimlerde tamamen ücretsizdir.

Lisans anlaşmaları
------------------

GPC kaynak kodu ile diğer tüm dillerdeki versiyonlar , örnek uygulamalar ücretsiz biçimde ,hiçbir zaman kısıtlaması olmadan ve hiçbir şirkete bağlı kalmadan indirilebilir. Ancak uygulamanın ticari kullanıp kullanılmamasına göre bazı kullanım şartları vardır. Bunlar;

* **Ticari Olmayan Kullanım:** GPC kesinlikle ticari olmayan ( örneğin; hobi, akademik araştırma, öğrenme) maksatlarla tamamen ücretsiz olarak kullanılabilir.
* **Ticari Kullanım:** GPC'yi kâr amaçlı herhangi bir işte kullanabilmek için Manchester Ünivetsitesi'nden resmi olan **GPC Commercial Use Licence** temin edilmelidir.

Dış bağlantılar
---------------

* Official website27 Şubat 2011 tarihinde Wayback Machine sitesinde arşivlendi.
* Maintained Java version 8 Ekim 2014 tarihinde Wayback Machine sitesinde arşivlendi.