use dear_implot_sys as sys;
#[allow(non_snake_case)]
pub(crate) mod compat_ffi {
use super::sys;
use std::os::raw::c_char;
unsafe extern "C" {
pub fn ImPlot_GetPlotPos() -> sys::ImVec2;
pub fn ImPlot_GetPlotSize() -> sys::ImVec2;
}
#[cfg(target_arch = "wasm32")]
#[link(wasm_import_module = "imgui-sys-v0")]
unsafe extern "C" {
pub fn ImPlot_Annotation_Str0(
x: f64,
y: f64,
col: sys::ImVec4_c,
pix_offset: sys::ImVec2_c,
clamp: bool,
fmt: *const c_char,
);
pub fn ImPlot_TagX_Str0(x: f64, col: sys::ImVec4_c, fmt: *const c_char);
pub fn ImPlot_TagY_Str0(y: f64, col: sys::ImVec4_c, fmt: *const c_char);
}
#[cfg(not(target_arch = "wasm32"))]
unsafe extern "C" {
pub fn ImPlot_Annotation_Str0(
x: f64,
y: f64,
col: sys::ImVec4_c,
pix_offset: sys::ImVec2_c,
clamp: bool,
fmt: *const c_char,
);
pub fn ImPlot_TagX_Str0(x: f64, col: sys::ImVec4_c, fmt: *const c_char);
pub fn ImPlot_TagY_Str0(y: f64, col: sys::ImVec4_c, fmt: *const c_char);
}
}
pub use dear_imgui_rs::{Context, Ui};
pub use sys::{ImPlotPoint, ImPlotRange, ImPlotRect};
pub use sys::{ImTextureID, ImVec2, ImVec4};
mod advanced;
mod axis_types;
mod colormap;
mod colors;
mod context;
mod flags;
mod histogram_bins;
mod markers;
mod plot_types;
mod style;
mod ui_ext;
mod utils;
pub mod plots;
pub use axis_types::{Axis, XAxis, YAxis, YAxisChoice};
pub(crate) use axis_types::{IMPLOT_AUTO, y_axis_choice_option_to_i32};
pub use colormap::Colormap;
pub use colors::PlotColorElement;
pub use context::*;
pub use flags::*;
pub use histogram_bins::{BinMethod, HistogramBins};
pub use markers::Marker;
pub use plot_types::{PlotCond, PlotLocation, PlotOrientation};
pub use style::*;
pub use ui_ext::ImPlotExt;
pub use utils::*;
pub use plots::{
Plot, PlotData, PlotDataLayout, PlotDataOffset, PlotDataStride, PlotError,
bar::{BarPlot, PositionalBarPlot},
error_bars::{AsymmetricErrorBarsPlot, ErrorBarsPlot, SimpleErrorBarsPlot},
heatmap::{HeatmapPlot, HeatmapPlotF32},
histogram::{Histogram2DPlot, HistogramPlot},
line::{LinePlot, SimpleLinePlot},
pie::{PieChartPlot, PieChartPlotF32},
polygon::PolygonPlot,
scatter::{ScatterPlot, SimpleScatterPlot},
shaded::{ShadedBetweenPlot, ShadedPlot, SimpleShadedPlot},
stems::{SimpleStemPlot, StemPlot},
};
pub use plots::*;
pub use advanced::{
LegendFlags, LegendLocation, LegendManager, LegendToken, MultiAxisPlot, MultiAxisToken,
SubplotFlags, SubplotGrid, SubplotToken, YAxisConfig,
};