#图形 #数值

gml

图形数学库。针对图形应用的通用向量和矩阵数学库。

3个稳定版本

使用旧Rust 2015

1.1.0 2015年5月28日
1.0.1 2015年5月26日

#1716数学

MIT/Apache

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