37 size_t parent =
static_cast<size_t>(-1);
78 void build(
const std::vector<T>& items)
override;
143 size_t size()
const override {
return count_; }
160 void query_range_recursive(
size_t node_idx,
const AABB3D& range,
161 std::vector<T>& result)
const;
163 std::vector<T> items_;
164 std::vector<AABB3D> item_bounds_;
165 std::vector<RTreeNode<T>> nodes_;
166 size_t root_idx_ = 0;
void build(const std::vector< T > &items) override
批量构建 R 树
std::vector< T > query_knn(const Point3D &point, size_t k) const override
K 近邻查询
size_t size() const override
对象数量
bool remove(const T &item) override
删除对象
size_t node_count() const
R 树节点总数
std::vector< T > query_range(const AABB3D &range) const override
范围查询
void insert(const T &item) override
增量插入对象
void clear() override
清空 R 树
std::vector< T > query_ray(const Ray3Dd &ray) const override
射线查询
Ray3D< double > Ray3Dd
双精度三维射线
Triangle< double > Triangle3D
双精度三维三角形
AABB< double > AABB3D
双精度三维包围盒
foundation::Vector3D Vector3D
双精度三维向量(重新导出)
foundation::Point3D Point3D
双精度三维点(重新导出)
std::vector< size_t > children
std::vector< size_t > item_indices