我需要在二维平面图上进行一些多边形计算。通常,isInside 操作。
我找到了 boost::Polygon API,但我的点在一个大数组中。 这就是我所说的索引几何。 参见 http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-9-vbo-indexing/
所以我最好的方法就是 boost::多边形并给它我的数组+要使用的点索引。
目标只是不要复制我的百万个点(因为它们至少由两个多边形共享)。
我不知道 API 是否允许它(或者我需要继承我自己的类 :-( )。 也许,有人知道另一个 API(在 boost 或其他内部)。
谢谢
文档
最佳答案
Boost Geometry 允许调整用户定义的数据类型。
具体来说,C 数组在这里进行了调整:https://www.boost.org/doc/libs/1_68_0/boost/geometry/geometries/adapted/c_array.hpp
我有另一个答案,其中展示了如何在直接 C 结构数组上使用 Boost Geometry 算法(在这种情况下,我使用元组作为点类型输入 punned):How to calculate the convex hull with boost from arrays instead of setting each point separately? (其他答案显示了替代方案,如果您有能力复制一些数据,这些替代方案可能会更容易)。
相关算法是:
关于c++ - 使用索引几何 boost 多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179514/