3个稳定版本
使用旧Rust 2015
1.1.0 | 2015年5月28日 |
---|---|
1.0.1 | 2015年5月26日 |
#1716 在 数学
380KB
3K SLoC
rust-gml
图形数学库。一个针对Rust底层图形操作的向量和矩阵库。类似于C++库glm、cml、MathGeoLib、Eigen、CGGeometry from Cocoa等。对于在Rust中进行底层图形操作的人来说可能很有用。
创建这个库是为了确定像在Boost、glm.g-truc.net等地方可以找到的仅包含头文件的通用模板C++库是否可以在Rust中以更简单的方式实现,同时减少样板代码,同时保持性能。经过几次迭代,我们对结果相当满意。这个库(gml)的第1.0版实现了完整且经过测试的完全通用向量和矩阵库,其功能模仿了OpenGL着色语言、C++库GLM以及Unity游戏引擎中的数学部分。有了OpenGL或DirectX绑定(不包括在此处)和这个库,你可以在很短的时间内用Rust编写旋转的3D几何图形代码。
文档
文档可以在 CreekWare/OpenSource/gml 找到。
或者,可以通过在安装了Rust 1.xx的机器上克隆此项目的本地副本来生成文档,使用 cargo doc
来生成文档,最后使用 cargo doc --open
在你的网络浏览器中查看文档。
版本
版本1.0.0代表一个稳定和经过测试的API。第三位数字(例如,从1.0.0到1.0.1)代表小修订、错误修复等。第二位数字(例如,从1.0.23到1.1.0)代表向后兼容的重大功能添加。第一位数字(例如,从1.3.43到2.0.0)代表API的重大更改。1.0.0之前的开发是在私有仓库中进行的。
使用
要使用从crates.io发布的当前版本(推荐),将以下内容添加到你的 Cargo.toml
[dependencies]
gml = "*"
或者要使用从github仓库的最新版本,将以下内容添加到你的 Cargo.toml
[dependencies.gml]
git = "https://github.com/creekware/rust-gml.git"
并将此添加到你的crate根目录
extern crate gml;
向量示例
extern crate gml;
fn main() {
let a = gml::Vector3::new(2.0, 5.0, 7.0);
let b = gml::Vector3::new(11.0, -32.0, 14.0);
let c = a + b;
println!("Hello from gml. c={:?}", c);
}
贡献
欢迎讨论如何使用Rust以更简单或可能更高效的方式实现这些功能,同样也欢迎在库的范围内修复bug或添加功能。如果时间允许,将添加从C++参考库中精选的各种附加功能。
依赖项
~470KB