CGAL, похоже, делает все, что мне нужно, и немного больше для моего предстоящего проекта. Он может создавать многоугольники из сегментов линии дуги и выполнять на них логические операции. У него уже есть пакеты пространственной сортировки, которые бы сэкономили бы много времени на нескольких вещах, и вся библиотека кажется вполне стандартизированной и хорошо спланированной.
Просто проблема с лицензией QPL (GPL для предстоящей версии 4.0) для большинства пакетов (кроме самых простых). У меня скудный бюджет и, вероятно, не собирайте средства для покупки коммерческих лицензий для тех конкретных пакетов в CGAL, которые этого требуют.
Мои специфические потребности такой библиотеки:
- Точная точность 2D-евклидова пространства
- Сложные полигоны
- Многоугольники, имеющие кривые сегменты линии (дуги)
- Булевы операции над этими многоугольниками
- Перемещение многоугольников
- Разделение многоугольника или эффективная триангуляция
- Алгоритмы вписанных областей и полигонов
- Возможно, некоторые пространственные структуры сортировки с поиском круглого диапазона
В целом, Я ищу хорошо свернутую 2D-геометрию библиотеки С++ с точной точностью. Предпочтительнее использовать MIT, LGPL на растяжке или недорогую одноразовую лицензионную лицензию ниже 500 долларов США.
Boost получил некоторые базовые структуры, но из того, что я могу сказать, им не хватает функциональности более высокого уровня. Любые библиотеки, которые расширились? Я бы подумал о том, чтобы сделать это сам, но мне не хватает опыта, чтобы сделать это хорошо, и это продлит мой проект совсем немного.
Просто, чтобы быть ясным, я не ищу 2D-графическую библиотеку, просто чистые геометрические структуры.