|
ViewDesignEngine
3.1.0
高性能 CAD 计算几何引擎
|
空间索引抽象基类 更多...
#include <spatial_index.h>

Public 成员函数 | |
| virtual | ~SpatialIndex ()=default |
| virtual void | build (const std::vector< T > &items)=0 |
| 批量构建索引 更多... | |
| virtual void | insert (const T &item)=0 |
| 插入单个对象 更多... | |
| virtual bool | remove (const T &item)=0 |
| 删除单个对象 更多... | |
| virtual std::vector< T > | query_range (const AABB3D &range) const =0 |
| 范围查询:返回与 AABB 相交的所有对象 更多... | |
| virtual std::vector< T > | query_knn (const Point3D &point, size_t k) const =0 |
| K 近邻查询:返回距 point 最近的 k 个对象 更多... | |
| virtual std::vector< T > | query_ray (const Ray3Dd &ray) const =0 |
| 射线查询:返回与射线相交的所有对象 更多... | |
| virtual void | clear ()=0 |
| 清空索引中所有数据 更多... | |
| virtual size_t | size () const =0 |
| 当前索引中的对象数量 更多... | |
空间索引抽象基类
所有空间加速结构(BVH、Octree、KDTree、RTree)的公共接口。 模板参数 T 为被索引对象类型,需提供以下辅助函数:
| T | 被索引的空间对象类型 |
在文件 spatial_index.h 第 44 行定义.
|
virtualdefault |
|
pure virtual |
批量构建索引
清空已有数据,将 items 全部插入并重建索引结构。 各子类实现不同的构建策略:
| items | 待索引的对象数组 |
在 vde::spatial::BVH, vde::spatial::RTree< T >, vde::spatial::Octree< T > , 以及 vde::spatial::KDTree< T > 内被实现.
|
pure virtual |
清空索引中所有数据
在 vde::spatial::RTree< T >, vde::spatial::Octree< T >, vde::spatial::KDTree< T > , 以及 vde::spatial::BVH 内被实现.
|
pure virtual |
插入单个对象
将 item 加入索引。部分结构(如 BVH)仅支持一次性 build, 插入后可能需要重建。
| item | 待插入的空间对象 |
在 vde::spatial::BVH, vde::spatial::RTree< T >, vde::spatial::Octree< T > , 以及 vde::spatial::KDTree< T > 内被实现.
|
pure virtual |
K 近邻查询:返回距 point 最近的 k 个对象
| point | 查询点 |
| k | 需要返回的对象数量 |
在 vde::spatial::RTree< T >, vde::spatial::Octree< T >, vde::spatial::KDTree< T > , 以及 vde::spatial::BVH 内被实现.
|
pure virtual |
范围查询:返回与 AABB 相交的所有对象
| range | 查询的轴对齐包围盒 |
在 vde::spatial::RTree< T >, vde::spatial::Octree< T >, vde::spatial::KDTree< T > , 以及 vde::spatial::BVH 内被实现.
|
pure virtual |
射线查询:返回与射线相交的所有对象
| ray | 查询射线 |
在 vde::spatial::RTree< T >, vde::spatial::Octree< T >, vde::spatial::KDTree< T > , 以及 vde::spatial::BVH 内被实现.
|
pure virtual |
删除单个对象
| item | 待删除的空间对象 |
在 vde::spatial::BVH, vde::spatial::RTree< T >, vde::spatial::Octree< T > , 以及 vde::spatial::KDTree< T > 内被实现.
|
pure virtual |
当前索引中的对象数量
在 vde::spatial::RTree< T >, vde::spatial::Octree< T >, vde::spatial::KDTree< T > , 以及 vde::spatial::BVH 内被实现.