Crate egui_nodes[−][src]
Expand description
egui_nodes: A Egui port of imnodes
Using egui_nodes
There are some simple examples here
Here is the basic usage:
pub fn example_graph(ctx: &mut Context, links: &mut Vec<(usize, usize)>, ui: &mut Ui) {
// add nodes with attributes
let nodes = vec![
NodeConstructor::new(0, Default::default())
.with_title(|ui| ui.label("Example Node A"))
.with_input_attribute(0, Default::default(), |ui| ui.label("Input"))
.with_static_attribute(1, |ui| ui.label("Can't Connect to Me"))
.with_output_attribute(2, Default::default(), |ui| ui.label("Output")),
NodeConstructor::new(1, Default::default())
.with_title(|ui| ui.label("Example Node B"))
.with_static_attribute(3, |ui| ui.label("Can't Connect to Me"))
.with_output_attribute(4, Default::default(), |ui| ui.label("Output"))
.with_input_attribute(5, Default::default(), |ui| ui.label("Input"))
];
// add them to the ui
ctx.show(
nodes,
links.iter().enumerate().map(|(i, (start, end))| (i, *start, *end, LinkArgs::default())),
ui
);
// remove destroyed links
if let Some(idx) = ctx.link_destroyed() {
links.remove(idx);
}
// add created links
if let Some((start, end, _)) = ctx.link_created() {
links.push((start, end))
}
}
Structs
The Context that tracks the state of the node editor
This controls the modifers needed for certain mouse interactions
The Color Style of a Link. If feilds are None then the Context style is used
The Style of a Node. If feilds are None then the Context style is used
Used to construct a node and stores the relevant ui code for its title and attributes This is used so that the nodes can be rendered in the context depth order
The Visual Style of a Link. If feilds are None then the Context style is used. shape defualts to CircleFilled
The style used by a context Example:
Enums
Controls the way that attribute pins behave
Represents different color style values used by a Context
Used to track which Egui Modifier needs to be pressed for certain IO actions
Controls the shape of an attribut pin. Triangle and TriangleFilled are not currently implemented and will not be drawn
Controls some style aspects
Represents different style values used by a Context