gpt4 book ai didi

c++ - boost 几何/空间查询形状

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:25 28 4
gpt4 key购买 nike

我目前正在使用 boost 几何/空间索引库,以便对 3d 边界框执行范围查询。例如,我能够获得与查询边界框重叠的所有边界框的列表。

文档 ( http://www.boost.org/doc/libs/1_54_0_beta1/libs/geometry/doc/html/geometry/spatial_indexes/queries.html ) 表明——至少在 2d 中——可以使用多边形代替边界框作为查询对象。是否也可以在 3d 中使用更高级的查询形状?我正在考虑诸如定向边界框、金字塔或相机平截头体之类的对象。如果是这样:我该怎么做/我在哪里可以找到一个例子?

谢谢

最佳答案

简而言之:它不受支持,因为目前在 Boost.Geometry OOB 中,金字塔和截锥体概念不可用/不支持。

但是,理论上应该可以执行这样的查询。在查询期间,bgi::rtree 调用在 boost::geometry 命名空间中定义的适当的 bool 算法,例如如果你打电话

rtree.query(bgi::intersects(my_geometry), out_it);

内部

bg::intersects(xxx, my_geometry);

被调用,其中 xxx 是节点的边界框或值的可索引(从用户传递到 bgi::rtreeValueType 中提取的几何图形>,例如也是一个盒子或一个点)。因此,如果您实现了例如

namespace boost { namespace geometry {

template <typename Box> inline
bool intersects(Box const& b, MyFrustum const& f)
{
// your implementation
}

}}

理论上应该可以。虽然没有测试它。

以上:

namespace bg = boost::geometry;
namespace bgi = boost::geometry::index;

此外,如果您想直接联系开发人员,您可以考虑订阅 Boost.Geometry 邮件列表:http://lists.boost.org/mailman/listinfo.cgi/geometry

关于c++ - boost 几何/空间查询形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490435/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com