#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 11/week @ 2023-10-22 25/week @ 2023-10-29 9/week @ 2023-11-05 17/week @ 2023-11-12 11/week @ 2023-11-19 34/week @ 2023-11-26 19/week @ 2023-12-03 18/week @ 2023-12-10 11/week @ 2023-12-17 23/week @ 2023-12-24 6/week @ 2023-12-31 16/week @ 2024-01-07 10/week @ 2024-01-14 14/week @ 2024-01-21 19/week @ 2024-01-28 14/week @ 2024-02-04

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