implot-rs/README.md

67 lines
2.1 KiB
Markdown
Raw Normal View History

2020-07-01 17:41:31 +00:00
# implot-rs
2020-08-08 14:01:51 +00:00
Rust bindings for [ImPlot](https://github.com/epezent/implot), built by running
[bindgen](https://github.com/rust-lang/rust-bindgen) on [cimplot](https://github.com/cimgui/cimplot).
2020-07-01 19:50:14 +00:00
2020-08-08 14:01:51 +00:00
![demo](demo.png)
2020-07-01 19:50:14 +00:00
2020-08-08 14:01:51 +00:00
## Requirements
imgui-rs requires minimum Rust version 1.40, so this project does as well by extension.
Currently the master branch of imgui-rs is used as a dependency until
https://github.com/Gekkio/imgui-rs/pull/339 makes it into a release.
2020-07-01 19:50:14 +00:00
2020-08-23 18:10:24 +00:00
The sys crate compiles implot, so a C++ compiler will also be required.
2020-08-08 14:01:51 +00:00
## Design approach
This repo tries to follow the approaches and style used in `imgui-rs` somewhat closely,
because implot is to be used within imgui programs, and hence keeping the interfaces
and design philosophies close should make it easier to do that.
If you spot any design inconsistencies or papercuts, feel free to open an issue.
2020-08-08 14:01:51 +00:00
## Status
Currently a work in progress. The author is open to collaboration, if you'd like to
help, feel free to reach out via a Github issue.
At this point, raw bindings are working in implot-sys, and more idiomatic interfaces
for plot creation as well a subset of the functionality for plots are implemented.
See below for an overview of the progress.
2020-08-23 18:10:24 +00:00
- [x] "BeginPlot"
- [x] Basic hello world
- [x] Plot flags
- [ ] Plotting functionality
2020-08-23 18:31:28 +00:00
- [x] Line plot
- [x] Text plot
2020-08-23 18:10:24 +00:00
- [ ] Scatter plot
- [ ] Bar plot
- [ ] Vertical
- [ ] Horizontal
- [ ] Error bar plot
- [ ] Vertical
- [ ] Horizontal
- [ ] Heatmap
- [ ] Pie chart
- [ ] Digital data
- [ ] Plot customization
- [x] Axis flags
- [x] Styling colors
- [ ] Markers
- [ ] Styling variables
- [ ] Colormaps
2020-08-23 18:10:24 +00:00
- [ ] Plot querying
- [x] is hovered
- [x] mouse position in plot
- [x] plot limits
2020-08-23 18:10:24 +00:00
- [ ] is queried
- [ ] GetPlotQuery
- [ ] Utils
- [x] Plot limit setting
- [ ] imgui-rs style safe push/pop stacks
2020-08-23 18:10:24 +00:00
- [ ] Plot tick setting
- [ ] Plot y axis setting for subsequent elements
- [ ] Plot position and size reading
2020-08-23 18:10:24 +00:00
- [ ] Pixel to plot position
- [ ] Plot to pixel position
- [ ] Push/pop plotclip rect (?)