{"id":60,"date":"2013-08-21T09:29:53","date_gmt":"2013-08-21T14:29:53","guid":{"rendered":"http:\/\/coherentpdf.com\/blog\/?p=60"},"modified":"2013-08-21T09:29:53","modified_gmt":"2013-08-21T14:29:53","slug":"camlgpc-an-interface-to-alan-murtas-gpc-polygon-clipper","status":"publish","type":"post","link":"https:\/\/coherentpdf.com\/blog\/?p=60","title":{"rendered":"CamlGPC: An interface to Alan Murta&#8217;s GPC Polygon Clipper"},"content":{"rendered":"<p>Some of our coherence 2D graphics renderer examples used to rely on being able to robustly intersect and union polygons.<\/p>\n<p>For this, we used an interface to the <a href=\"http:\/\/www.cs.man.ac.uk\/~toby\/gpc\/\">General Polygon Clipper<\/a>, which is a fast C library for such operations. Unfortunately, it&#8217;s only free for non-commercial use. And so, to use our OCaml interface in commercial applications, you need to obtain a license from the University of Manchester.<\/p>\n<p>Our interface is up at <a href=\"https:\/\/github.com\/johnwhitington\/camlgpc\">github<\/a>.<\/p>\n<p>The easiest way to install is through OPAM:<\/p>\n<p>opam install camlgpc<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some of our coherence 2D graphics renderer examples used to rely on being able to robustly intersect and union polygons. For this, we used an interface to the General Polygon Clipper, which is a fast C library for such operations. &hellip; <a href=\"https:\/\/coherentpdf.com\/blog\/?p=60\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[28,30,29,5],"class_list":["post-60","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-camlgpc","tag-clipping","tag-gpc","tag-ocaml"],"_links":{"self":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/60","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=60"}],"version-history":[{"count":0,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/60\/revisions"}],"wp:attachment":[{"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=60"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=60"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coherentpdf.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=60"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}