Skip to main content

dear_node_editor/
lib.rs

1//! Safe bindings for `imgui-node-editor`.
2//!
3//! This crate is a richer node-editor companion to `dear-imnodes`. It is backed
4//! by `cimnodes_editor` / `imgui-node-editor`, but exposes Rust-side IDs as
5//! pointer-sized newtypes instead of upstream C++ ID helper objects.
6
7mod config;
8mod context;
9mod frame;
10mod style;
11mod types;
12mod ui_ext;
13
14pub use config::*;
15pub use context::*;
16pub use frame::*;
17pub use style::*;
18pub use types::*;
19pub use ui_ext::*;
20
21pub(crate) use dear_node_editor_sys as sys;
22
23#[inline]
24pub(crate) fn vec2(value: [f32; 2]) -> sys::ImVec2_c {
25    sys::ImVec2_c {
26        x: value[0],
27        y: value[1],
28    }
29}
30
31#[inline]
32pub(crate) fn vec4(value: [f32; 4]) -> sys::ImVec4_c {
33    sys::ImVec4_c {
34        x: value[0],
35        y: value[1],
36        z: value[2],
37        w: value[3],
38    }
39}
40
41#[inline]
42pub(crate) fn from_vec2(value: sys::ImVec2_c) -> [f32; 2] {
43    [value.x, value.y]
44}