#bindings #github #api-bindings #version #long #change #com-epezent-implot

implot

Rust 对 https://github.com/epezent/implot 的绑定

6 个版本 (重大更改)

0.6.0 2021 年 9 月 19 日
0.5.0 2021 年 9 月 7 日
0.4.0 2021 年 2 月 10 日
0.3.0 2020 年 11 月 29 日
0.1.0 2020 年 10 月 12 日

#799GUI

MIT/Apache

1.5MB
25K SLoC

Lua 12K SLoC // 0.0% comments C++ 8K SLoC // 0.1% comments Rust 5K SLoC // 0.0% comments Batch 2 SLoC // 0.9% comments

implot-rs

Rust 对 ImPlot 的绑定,通过在 cimplot 上运行 bindgen 构建。

绑定目前基于 ImPlot 版本 0.9-WIP(有关当前指向的确切提交,请参阅 implot-sys/third-party)。下面的状态部分提供了实施状态的详细信息。

Docs.rs documentation Tests

重要说明:只要代码是 1.0 版本之前的,API 在小版本之间可能会出现破坏性更改。补丁版本应该是向后兼容的。在 1.0 之后,将更严格地遵循 semver。

demo

需求

imgui-rs 需要 Rust 最小版本 1.40,因此此项目至少需要这个版本。sys crate 编译 implot,因此还需要一个 C++ 编译器。

示例

示例正在构建在这个仓库中的 implot-examples crate 中。要尝试它们,克隆仓库,切换到 implot-examples 目录,然后尝试例如

  cargo run --example line_plots

文档

对于已发布版本,请参阅 Docs.rs 文档。确保查看正确的版本,因为 API 仍在更改。对于 master 分支,可以通过克隆此仓库然后运行来构建文档

  cargo doc --open

努力在添加时记录所有内容。如果您发现文档不清晰或缺乏,请随时提出问题。请注意,现在正在添加文档别名,这意味着应该能够用它们在 C++ 代码中的名称查找事物,rustdoc 应该显示相应命名的项。有时这仅仅是将驼峰式命名法改为蛇形命名法的问题,有时惯例绑定会以不同的方式做事。这些别名仅与 Rust 1.48 或更高版本一起使用。

实施状态

当前处于开发中,C++ API 的覆盖范围正在稳步增加。作者欢迎合作,如果您想帮忙,请通过 Github 的问题反馈。

到目前为止,在 implot-sys 中实现了原始绑定,并实现了创建图表的更直观的接口以及图表功能的一个子集。

虽然原始绑定提供了大多数函数的 32 位或 64 位浮点数和各种整数的版本,但高级绑定目前只为 64 位浮点数创建。

  • “开始绘图”
    • 基本的“Hello World”
    • 绘图标志
  • 绘图功能
    • 线形图
    • 文本图
    • 散点图
    • 条形图
      • 垂直
      • 水平
    • 阶梯图
    • 热图
    • 阴影图
    • 茎叶图
    • 图像
    • 误差线图
      • 垂直
      • 水平
    • 饼图
    • 数字数据
    • 注释
    • 拖动线
    • 拖动点
  • 绘图定制
    • 轴标志
    • 样式颜色
    • 样式变量
    • 颜色图
    • 图例位置
  • 绘图查询
    • 是否悬停
    • 鼠标在图中的位置
    • 绘图限制
    • 是否查询
    • 获取绘图查询
    • 轴是否悬停
    • Y 轴选择
    • 图例条目是否悬停
  • 实用工具
    • 设置绘图限制
    • imgui-rs 样式安全推/弹出栈
    • 设置绘图刻度
    • 像素到绘图位置
    • 绘图到像素位置
    • 设置后续元素的 Y 轴设置
    • 输入重映射
    • 设置非默认 Y 轴刻度和标签
    • 读取绘图位置和大小
    • 推/弹出绘图剪裁矩形

开发者文档

设计方法

此仓库试图尽可能紧密地遵循 imgui-rs 中使用的方法和风格,因为 implot 旨在在 imgui 程序中使用,因此保持接口和设计哲学的紧密性应该使其更容易实现。

如果您发现任何设计不一致或瑕疵,请随时创建一个问题。

依赖关系

~13MB
~242K SLoC