#half #edge #mesh #graphics #graph

half_edge_mesh

半边网格数据结构的基本实现。它包含您可能在半边网格中想要的一些函数,但可能不是全部。我打算根据需要或想到的方法添加更多方法和变异技术。欢迎提交拉取请求!

7个稳定版本

使用旧的Rust 2015

1.1.8 2018年8月30日
1.0.8 2016年9月27日
1.0.7 2016年8月3日
1.0.6 2016年6月10日
1.0.3 2016年3月27日

393 in 图形API

Download history · Rust 包仓库 11/week @ 2023-10-22 · Rust 包仓库 25/week @ 2023-10-29 · Rust 包仓库 9/week @ 2023-11-05 · Rust 包仓库 17/week @ 2023-11-12 · Rust 包仓库 11/week @ 2023-11-19 · Rust 包仓库 34/week @ 2023-11-26 · Rust 包仓库 19/week @ 2023-12-03 · Rust 包仓库 18/week @ 2023-12-10 · Rust 包仓库 11/week @ 2023-12-17 · Rust 包仓库 23/week @ 2023-12-24 · Rust 包仓库 6/week @ 2023-12-31 · Rust 包仓库 16/week @ 2024-01-07 · Rust 包仓库 10/week @ 2024-01-14 · Rust 包仓库 14/week @ 2024-01-21 · Rust 包仓库 19/week @ 2024-01-28 · Rust 包仓库 14/week @ 2024-02-04 · Rust 包仓库

60 每月下载次数
用于 convex_hull

MIT 许可证

58KB
1K SLoC

半边网格

这是Rust中半边网格数据结构的实现。欢迎提出建议和提交拉取请求!

最显著的实现细节是,与其他网格部分的链接(其中有很多)是 Option<Weak<RefCell<T>>>。这是为了允许在变异方法中稍后设置引用。由于半边网格是一个具有许多循环和某些循环引用的图,实体在初始化过程中需要某些时间点的null引用(由于循环引用)。我相信这是在Rust的借用系统中构建此类结构的唯一方法,除非使用原始指针和unsafe代码。我想,在遥远的未来,我可能可以将这个项目重构为使用原始指针以提高性能。

目前,此数据结构使用cgmath的数学原语构建。向量是 cgmath::Vector3<f32>,而点是 cgmath::Point3<f32>。这使得API相对简单,因为它不需要为原始类型进行类型参数化。将来有可能重构以消除此依赖。

依赖项

~1MB
~16K SLoC