Operações booleanas de objetos gráficos SVG / vetoriais (união, interseção, subtração)

Eu tenho caminhos vetoriais 2D fechados, especificados emSintaxe semelhante a caminhos SVG - ou seja, esses caminhos incluem linhas retas e várias curvas de Bezier. Existe algo como uma biblioteca pequena, agradável e discreta (de preferência em C, Java ou Ruby, mas qualquer linguagem serve se essa biblioteca é limpa e fácil de usar) que permite realizar operações booleanas como união, interseção e subtração com esses caminhos ?

O que encontrei até agora inclui:

Produtos gráficos comerciais de vetor enormes e caros (como Autodesk AutoCAD ou Adobe Illustrator) que podem ser chamados usando algum tipo de API ou com script para fazer operações booleanas de caminhos 2D - o que é claramente um exagero para meus propósitos.Inkscape desenvolvido internamentelib2geom Uma biblioteca que não possui documentação, ligações, tem alguns problemas de compilação, parece não ser usada em nenhum projeto além do próprio Inkscape e parece bastante complexa.CGAL é uma biblioteca de geometria computacional enorme e bastante complexa, que funciona em um espaço bastante estranho para objetos (ou seja, você tem uma mistura louca de modelos, funções imperativas de estilo para executar operações nessas estruturas de dados modeladas, etc, etc) e não parece ter ligações sãs com outros idiomas ao lado de C ++. As ligações Python à CGAL parecem abandonadas e não me parecem muito amigáveis.JTS parece estar centrado no GIS e lida apenas com linhas retas, enquanto eu preciso lidar com curvas de Bezier do tipo SVG.

Então, a pergunta é: existem outras bibliotecas pequenas, agradáveis e fáceis flutuando para lidar com operações booleanas em caminhos semelhantes a SVG?

questionAnswers(2)

yourAnswerToTheQuestion