#vector #traits #2d-vector #scalar #2d-3d #type #different

vector-traits

Rust 2D 和 3D 向量类型 traits

7 个版本

0.3.4 2023 年 12 月 8 日
0.3.3 2023 年 12 月 8 日
0.3.2 2023 年 11 月 17 日
0.2.0 2023 年 10 月 27 日
0.1.0 2023 年 10 月 22 日

#5 in #scalar

21 每月下载量
用于 5 crates

MIT/Apache

55KB
1.5K SLoC

crates.io Documentation Workflow dependency status license

Vector-Traits 包

vector-traits 是一个 Rust 包,旨在提供一套 traits,用于抽象不同的向量实现和标量类型,提供一组基本向量操作的统一接口。此包便于在不同向量库和标量精度(例如,f32f64)之间无缝过渡,而无需进行大量代码修改。

功能

  • 使用 GenericVector2GenericVector3 traits 抽象二维和三维向量。
  • 通用的标量 trait GenericScalar 用于灵活处理标量类型。
  • 基本的向量 traits HasXYHasXYZ 用于自定义向量存储类型,例如 FFI 类型。
  • 在不同向量库(如 cgmathglam)之间无缝切换。
  • 能够轻松地在不同的标量类型(f32f64)之间切换。

支持的向量实现

目前,以下来自 cgmathglam 库的向量类型得到支持

  • glam::Vec2glam::DVec2glam::Vec3glam::Vec3Aglam::DVec3
  • cgmath::Vector2cgmath::Vector3(用于 f32f64

使用方法

vector-traits 添加到您的 Cargo.toml 依赖项中,并包括所需的功能

[dependencies]
vector-traits = { version = "0.3.4", features = ["glam", "cgmath"] }  # only use what you need

文档

要深入了解 vector-traits 功能,请查看由 cargo doc 生成的文档或在此处在线浏览。

贡献

我们欢迎社区贡献。请随意在我们的GitHub仓库提交拉取请求或报告问题。除非你明确说明,否则根据Apache-2.0许可证定义,你提交的任何有意包含在工作中的贡献,将按照上述方式双授权,没有任何额外的条款或条件。

许可证

许可以下任一许可证

任选其一。

依赖项

~0.1–1MB
~27K SLoC