pub struct GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState> {
pub graph: Graph<NodeData, DataType, ValueType>,
pub node_order: Vec<NodeId>,
pub connection_in_progress: Option<(NodeId, AnyParameterId)>,
pub selected_nodes: Vec<NodeId>,
pub ongoing_box_selection: Option<Pos2>,
pub node_positions: SecondaryMap<NodeId, Pos2>,
pub node_orientations: SecondaryMap<NodeId, NodeOrientation>,
pub node_finder: Option<NodeFinder<NodeTemplate>>,
pub pan_zoom: PanZoom,
pub _user_state: PhantomData<fn() -> UserState>,
}Fields§
§graph: Graph<NodeData, DataType, ValueType>§node_order: Vec<NodeId>Nodes are drawn in this order. Draw order is important because nodes that are drawn last are on top.
connection_in_progress: Option<(NodeId, AnyParameterId)>An ongoing connection interaction: The mouse has dragged away from a port and the user is holding the click
selected_nodes: Vec<NodeId>The currently selected node. Some interface actions depend on the currently selected node.
ongoing_box_selection: Option<Pos2>The mouse drag start position for an ongoing box selection.
node_positions: SecondaryMap<NodeId, Pos2>The position of each node.
node_orientations: SecondaryMap<NodeId, NodeOrientation>Orientation of each node
node_finder: Option<NodeFinder<NodeTemplate>>The node finder is used to create new nodes.
pan_zoom: PanZoomThe panning of the graph viewport.
_user_state: PhantomData<fn() -> UserState>Implementations§
Source§impl<NodeData, DataType: PartialEq, ValueType, NodeKind, UserState> GraphEditorState<NodeData, DataType, ValueType, NodeKind, UserState>
impl<NodeData, DataType: PartialEq, ValueType, NodeKind, UserState> GraphEditorState<NodeData, DataType, ValueType, NodeKind, UserState>
Source§impl<NodeData, DataType, ValueType, NodeTemplate, UserResponse, UserState, CategoryType> GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>where
NodeData: NodeDataTrait<Response = UserResponse, UserState = UserState, DataType = DataType, ValueType = ValueType>,
UserResponse: UserResponseTrait,
ValueType: WidgetValueTrait<Response = UserResponse, UserState = UserState, NodeData = NodeData>,
NodeTemplate: NodeTemplateTrait<NodeData = NodeData, DataType = DataType, ValueType = ValueType, UserState = UserState, CategoryType = CategoryType>,
DataType: DataTypeTrait<UserState>,
CategoryType: CategoryTrait,
impl<NodeData, DataType, ValueType, NodeTemplate, UserResponse, UserState, CategoryType> GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>where
NodeData: NodeDataTrait<Response = UserResponse, UserState = UserState, DataType = DataType, ValueType = ValueType>,
UserResponse: UserResponseTrait,
ValueType: WidgetValueTrait<Response = UserResponse, UserState = UserState, NodeData = NodeData>,
NodeTemplate: NodeTemplateTrait<NodeData = NodeData, DataType = DataType, ValueType = ValueType, UserState = UserState, CategoryType = CategoryType>,
DataType: DataTypeTrait<UserState>,
CategoryType: CategoryTrait,
pub fn draw_graph_editor( &mut self, ui: &mut Ui, all_kinds: impl NodeTemplateIter<Item = NodeTemplate>, user_state: &mut UserState, prepend_responses: Vec<NodeResponse<UserResponse, NodeData>>, ) -> GraphResponse<UserResponse, NodeData>
Sourcepub fn reset_zoom(&mut self, ui: &Ui)
pub fn reset_zoom(&mut self, ui: &Ui)
Reset zoom to 1.0
Trait Implementations§
Source§impl<NodeData: Clone, DataType: Clone, ValueType: Clone, NodeTemplate: Clone, UserState: Clone> Clone for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData: Clone, DataType: Clone, ValueType: Clone, NodeTemplate: Clone, UserState: Clone> Clone for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
Source§fn clone(
&self,
) -> GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
fn clone( &self, ) -> GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> Freeze for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> !RefUnwindSafe for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> Send for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> Sync for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> Unpin for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
impl<NodeData, DataType, ValueType, NodeTemplate, UserState> !UnwindSafe for GraphEditorState<NodeData, DataType, ValueType, NodeTemplate, UserState>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more