No description
Find a file
4bb4 a43a58d819 Added plot style colors and some misc utils. See comments.
- Also exposed the sys crate's ImPlotRange, ImPlotLimits and ImPlotPoint
  to the user as well as changing the limit-setting interface to using
  those. I'm not super sure about doing this yet though, because it is
  more verbose for no real reason to the user and for the purposes of
  the abstraction it may be better to add facade types anyway.

- There is no protection against calling things like `is_hovered` from
  outside a plot. Will need to think about how to make this impossible
  by design - we could for example pass an object to Plot's closure
  that has these methods, and that object is not created anywhere
  else.
2020-08-23 21:26:27 +02:00
implot-examples Added plot style colors and some misc utils. See comments. 2020-08-23 21:26:27 +02:00
implot-sys Refactored Plot building, various example updates 2020-08-08 14:42:22 +02:00
implot-sys-bindgen Added a separate bindgen building crate and pre-generated bindings 2020-08-03 21:50:03 +02:00
src Added plot style colors and some misc utils. See comments. 2020-08-23 21:26:27 +02:00
.gitattributes Found linguist-generated, using that instead 2020-08-04 22:15:41 +02:00
.gitignore Initial commit 2020-07-01 19:40:18 +02:00
.gitmodules Added submodule for cimplot and some build code 2020-07-02 21:15:22 +02:00
Cargo.toml Added axis and plot flag support 2020-08-23 20:10:24 +02:00
demo.png Updated readme, renamed example 2020-08-08 16:01:51 +02:00
LICENSE Initial commit 2020-07-01 19:40:18 +02:00
README.md Added plot style colors and some misc utils. See comments. 2020-08-23 21:26:27 +02:00

implot-rs

Rust bindings for ImPlot, built by running bindgen on cimplot.

demo

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.

The sys crate compiles implot, so a C++ compiler will also be required.

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.

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.

  • "BeginPlot"
    • Basic hello world
    • Plot flags
  • Plotting functionality
    • Line plot
    • Text plot
    • Scatter plot
    • Bar plot
      • Vertical
      • Horizontal
    • Error bar plot
      • Vertical
      • Horizontal
    • Heatmap
    • Pie chart
    • Digital data
  • Plot customization
    • Axis flags
    • Styling colors
    • Markers
    • Styling variables
    • Colormaps
  • Plot querying
    • is hovered
    • mouse position in plot
    • plot limits
    • is queried
    • GetPlotQuery
  • Utils
    • Plot limit setting
    • imgui-rs style safe push/pop stacks
    • Plot tick setting
    • Plot y axis setting for subsequent elements
    • Plot position and size reading
    • Pixel to plot position
    • Plot to pixel position
    • Push/pop plotclip rect (?)