Увеличить полигон с индексированной геометрией - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно сделать несколько расчетов полигонов на 2D плане. Обычно это внутренняя операция.

Я нашел boost :: Polygon API, но мои точки находятся внутри одного большого массива. Это я называю индексированной геометрией. См. http://www.opengl -tutorial.org / промежуточные руководства / tutorial-9-vbo-indexing /

Так что мой лучший способ - это просто увеличить :: Polygon и дать ему мой массив + индексы точек для использования.

Цель состоит в том, чтобы просто не копировать мой миллион точек (потому что они разделены как минимум двумя полигонами).

Я не знаю, позволяет ли это API (или мне нужно наследовать мой собственный класс :-(). Может быть, кто-то знает другой API (внутри Boost или другой).

Спасибо

Документация

1 Ответ

0 голосов
/ 05 сентября 2018

Boost Geometry допускает адаптированные пользовательские типы данных.

В частности, здесь адаптированы массивы C: https://www.boost.org/doc/libs/1_68_0/boost/geometry/geometries/adapted/c_array.hpp

У меня есть еще один ответ, где я показываю, как использовать алгоритмы Boost Geometry для прямого массива структур C (в этом случае я набираю punned с использованием кортежа в качестве типа точки): Как вычислить выпуклую оболочку с надстройкой из массивов вместо установки каждой точки отдельно? (другие ответы показывают альтернативы, которые могут быть проще, если вы можете позволить себе копировать некоторые данные).

Соответствующие алгоритмы будут:

...