#oct-tree #voxel #array #dynamic #3d #storing #cubic-octree

octarr

Octarr 是一个动态立方八叉树,能够存储类数据,并通过索引器访问。

1 个不稳定版本

0.1.0 2024年6月23日

#7 in #oct-tree

MIT 许可协议

14KB
326

Octarr

代表基于八叉树的3D数组。

Octarr 是一个动态立方八叉树,能够存储类数据,并通过索引器访问。它是 https://github.com/swift502/Octarr 的 Rust 版本,并受到了 https://github.com/marknefedov/cubic-octree 的启发。

改编自 swift502/Octarr

“基本上是一个通用的几乎无限的3D数组,可以像常规数组一样访问,并根据需要分配的空间增长和缩小。位置索引可以是任何方向的正数或负数。Octarr 以零坐标 (0, 0, 0) 为中心,从这个零坐标开始增长和缩小。

与多维或锯齿状数组不同,octarr 对内存友好。你可以在 [i128::MAX, i128::MAX, i128::MAX] 位置写入数据块而不会耗尽内存。八叉树节点查找具有对数复杂度。Octarr 内部使用 i128 数据类型以允许无限制的数据位置。”

用法

[dependencies]
octarr = "0.1"

依赖项

~0.5–1.3MB
~30K SLoC