#bindings #minor #github #implot #im-plot

sys implot-sys

对 implot 的原始 FFI 绑定

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 日

#1034 in GUI


implot 中使用

MIT/Apache

1.5MB
24K SLoC

Lua 12K SLoC // 0.0% comments C++ 8K SLoC // 0.1% comments Rust 4K SLoC // 0.0% comments Batch 3 SLoC // 0.8% comments Shell 1 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位浮点数创建。

  • "BeginPlot"
    • 基本“你好,世界”
    • 图形标志
  • 图形功能
    • 线形图
    • 文本图形
    • 散点图
    • 条形图
      • 垂直
      • 水平
    • 阶梯图
    • 热图
    • 阴影图
    • 茎图
    • 图像
    • 误差线图
      • 垂直
      • 水平
    • 饼图
    • 数字数据
    • 注释
    • 拖动线
    • 拖动点
  • 图形定制
    • 轴标志
    • 样式颜色
    • 样式变量
    • 颜色图
    • 图例位置
  • 图形查询
    • 鼠标悬停
    • 鼠标在图形中的位置
    • 图形限制
    • 被查询
    • 获取图形查询
    • 轴是否被悬停
    • 选择y轴
    • 图例条目是否被悬停
  • 工具
    • 设置图形限制
    • imgui-rs 风格安全推/出栈
    • 设置图形刻度
    • 像素到图形位置
    • 图形到像素位置
    • 为后续元素设置Y轴设置
    • 输入重映射
    • 设置非默认Y轴刻度和标签
    • 读取图形位置和大小
    • 推/出图形剪辑矩形(?)

开发者文档

设计方法

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

如果您发现任何设计不一致或边缘情况,请随时提交问题。

依赖关系

约12MB
约215K SLoC