60 virtual void build(
const std::vector<T>& items) = 0;
70 virtual void insert(
const T& item) = 0;
78 virtual bool remove(
const T& item) = 0;
115 virtual size_t size()
const = 0;
virtual bool remove(const T &item)=0
删除单个对象
virtual void build(const std::vector< T > &items)=0
批量构建索引
virtual void clear()=0
清空索引中所有数据
virtual ~SpatialIndex()=default
virtual std::vector< T > query_ray(const Ray3Dd &ray) const =0
射线查询:返回与射线相交的所有对象
virtual std::vector< T > query_range(const AABB3D &range) const =0
范围查询:返回与 AABB 相交的所有对象
virtual void insert(const T &item)=0
插入单个对象
virtual size_t size() const =0
当前索引中的对象数量
virtual std::vector< T > query_knn(const Point3D &point, size_t k) const =0
K 近邻查询:返回距 point 最近的 k 个对象
Ray3D< double > Ray3Dd
双精度三维射线
Triangle< double > Triangle3D
双精度三维三角形
AABB< double > AABB3D
双精度三维包围盒
foundation::Point3D Point3D
双精度三维点(重新导出)