public final class NodeEditor
extends java.lang.Object
An implementation of node editor with ImGui-like API. Project purpose is to serve as a basis for more complex solutions like blueprint editors.
Refer to the library's Github page for examples and support
Before you can start drawing editor you have to create ImNodeEditorContext (either by invoking constructor directly or using ImNodeEditor.createEditor()) and switch current editor via ImNodeEditor.setCurrentEditor(NodeEditorContext)
Binding notice: instead of special types for ids of nodes, links and pins which used in native library we use longs to reduce boilerplate and garbage production
Modifier and Type | Method and Description |
---|---|
static boolean |
acceptCopy() |
static boolean |
acceptCreateNode() |
static boolean |
acceptCut() |
static boolean |
acceptDeletedItem() |
static boolean |
acceptDeletedItem(boolean deleteDependencies) |
static boolean |
acceptDuplicate() |
static boolean |
acceptNewItem() |
static boolean |
acceptNewItem(float colorX,
float colorY,
float colorZ,
float colorW) |
static boolean |
acceptNewItem(float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static boolean |
acceptNewItem(ImVec4 color) |
static boolean |
acceptNewItem(ImVec4 color,
float thickness) |
static boolean |
acceptPaste() |
static boolean |
areShortcutsEnabled() |
static void |
begin(java.lang.String id) |
static void |
begin(java.lang.String id,
float sizeX,
float sizeY) |
static void |
begin(java.lang.String id,
ImVec2 size) |
static boolean |
beginCreate() |
static boolean |
beginCreate(float thickness) |
static boolean |
beginCreate(float colorX,
float colorY,
float colorZ,
float colorW) |
static boolean |
beginCreate(float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static boolean |
beginCreate(ImVec4 color) |
static boolean |
beginCreate(ImVec4 color,
float thickness) |
static boolean |
beginDelete() |
static boolean |
beginGroupHint(long nodeId) |
static void |
beginNode(long id) |
static void |
beginPin(long id,
int kind) |
static boolean |
beginShortcut() |
static int |
breakLinksNode(long nodeId) |
static int |
breakLinksPin(long pinId) |
static ImVec2 |
canvasToScreen(float posX,
float posY) |
static ImVec2 |
canvasToScreen(ImVec2 pos) |
static void |
canvasToScreen(ImVec2 dst,
float posX,
float posY) |
static void |
canvasToScreen(ImVec2 dst,
ImVec2 pos) |
static float |
canvasToScreenX(ImVec2 pos) |
static float |
canvasToScreenY(ImVec2 pos) |
static void |
centerNodeOnScreen(long nodeId) |
static void |
clearSelection() |
static NodeEditorContext |
createEditor() |
static NodeEditorContext |
createEditor(NodeEditorConfig config) |
static boolean |
deleteLink(long linkId) |
static boolean |
deleteNode(long nodeId) |
static void |
deselectLink(long linkId) |
static void |
deselectNode(long nodeId) |
static void |
destroyEditor(NodeEditorContext ctx) |
static void |
enableShortcuts(boolean enable) |
static void |
end() |
static void |
endCreate() |
static void |
endDelete() |
static void |
endGroupHint() |
static void |
endNode() |
static void |
endPin() |
static void |
endShortcut() |
static void |
flow(long linkId) |
static void |
flow(long linkId,
int direction) |
static int |
getActionContextLinks(long[] links,
int size) |
static int |
getActionContextNodes(long[] nodes,
int size) |
static int |
getActionContextSize() |
static NodeEditorContext |
getCurrentEditor() |
static float |
getCurrentZoom() |
static long |
getDoubleClickedLink() |
static long |
getDoubleClickedNode() |
static long |
getDoubleClickedPin() |
static ImVec2 |
getGroupMax() |
static void |
getGroupMax(ImVec2 dst) |
static float |
getGroupMaxX() |
static float |
getGroupMaxY() |
static ImVec2 |
getGroupMin() |
static void |
getGroupMin(ImVec2 dst) |
static float |
getGroupMinX() |
static float |
getGroupMinY() |
static ImDrawList |
getHintBackgroundDrawList() |
static ImDrawList |
getHintForegroundDrawList() |
static long |
getHoveredLink() |
static long |
getHoveredNode() |
static long |
getHoveredPin() |
static boolean |
getLinkPins(long linkId,
ImLong startPinId,
ImLong endPinId) |
static long |
getLinkWithContextMenu() |
static ImDrawList |
getNodeBackgroundDrawList(long nodeId) |
static int |
getNodeCount() |
static void |
getNodePosition(ImVec2 dst,
long nodeId) |
static ImVec2 |
getNodePosition(long nodeId) |
static float |
getNodePositionX(long nodeId) |
static float |
getNodePositionY(long nodeId) |
static void |
getNodeSize(ImVec2 dst,
long nodeId) |
static ImVec2 |
getNodeSize(long nodeId) |
static float |
getNodeSizeX(long nodeId) |
static float |
getNodeSizeY(long nodeId) |
static long |
getNodeWithContextMenu() |
static float |
getNodeZPosition(long nodeId) |
static int |
getOrderedNodeIds(long[] nodes,
int size) |
static long |
getPinWithContextMenu() |
static ImVec2 |
getScreenSize() |
static void |
getScreenSize(ImVec2 dst) |
static float |
getScreenSizeX() |
static float |
getScreenSizeY() |
static int |
getSelectedLinks(long[] links,
int size) |
static int |
getSelectedNodes(long[] nodes,
int size) |
static int |
getSelectedObjectCount() |
static NodeEditorStyle |
getStyle() |
static java.lang.String |
getStyleColorName(int colorIndex) |
static void |
group(float sizeX,
float sizeY) |
static void |
group(ImVec2 size) |
static boolean |
hasAnyLinksNode(long nodeId) |
static boolean |
hasAnyLinksPin(long pinId) |
static boolean |
hasSelectionChanged() |
static boolean |
isActive() |
static boolean |
isBackgroundClicked() |
static boolean |
isBackgroundDoubleClicked() |
static boolean |
isLinkSelected(long linkId) |
static boolean |
isNodeSelected(long nodeId) |
static boolean |
isSuspended() |
static boolean |
link(long id,
long startPinId,
long endPinId) |
static boolean |
link(long id,
long startPinId,
long endPinId,
float thickness) |
static boolean |
link(long id,
long startPinId,
long endPinId,
float colorX,
float colorY,
float colorZ,
float colorW) |
static boolean |
link(long id,
long startPinId,
long endPinId,
float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static boolean |
link(long id,
long startPinId,
long endPinId,
ImVec4 color) |
static boolean |
link(long id,
long startPinId,
long endPinId,
ImVec4 color,
float thickness) |
static void |
navigateToContent() |
static void |
navigateToContent(float duration) |
static void |
navigateToSelection() |
static void |
navigateToSelection(boolean zoomIn) |
static void |
navigateToSelection(boolean zoomIn,
float duration) |
static void |
navigateToSelection(float duration) |
static boolean |
pinHadAnyLinks(long pinId) |
static void |
pinPivotAlignment(float alignmentX,
float alignmentY) |
static void |
pinPivotAlignment(ImVec2 alignment) |
static void |
pinPivotRect(float aX,
float aY,
float bX,
float bY) |
static void |
pinPivotRect(ImVec2 a,
ImVec2 b) |
static void |
pinPivotScale(float scaleX,
float scaleY) |
static void |
pinPivotScale(ImVec2 scale) |
static void |
pinPivotSize(float sizeX,
float sizeY) |
static void |
pinPivotSize(ImVec2 size) |
static void |
pinRect(float aX,
float aY,
float bX,
float bY) |
static void |
pinRect(ImVec2 a,
ImVec2 b) |
static void |
popStyleColor() |
static void |
popStyleColor(int count) |
static void |
popStyleVar() |
static void |
popStyleVar(int count) |
static void |
pushStyleColor(int colorIndex,
float colorX,
float colorY,
float colorZ,
float colorW) |
static void |
pushStyleColor(int colorIndex,
ImVec4 color) |
static void |
pushStyleVar(int varIndex,
float value) |
static void |
pushStyleVar(int varIndex,
float valueX,
float valueY) |
static void |
pushStyleVar(int varIndex,
float valueX,
float valueY,
float valueZ,
float valueW) |
static void |
pushStyleVar(int varIndex,
ImVec2 value) |
static void |
pushStyleVar(int varIndex,
ImVec4 value) |
static boolean |
queryDeletedLink(ImLong linkId) |
static boolean |
queryDeletedLink(ImLong linkId,
ImLong startId) |
static boolean |
queryDeletedLink(ImLong linkId,
ImLong startId,
ImLong endId) |
static boolean |
queryDeletedNode(ImLong nodeId) |
static boolean |
queryNewLink(ImLong startId,
ImLong endId) |
static boolean |
queryNewLink(ImLong startId,
ImLong endId,
float colorX,
float colorY,
float colorZ,
float colorW) |
static boolean |
queryNewLink(ImLong startId,
ImLong endId,
float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static boolean |
queryNewLink(ImLong startId,
ImLong endId,
ImVec4 color) |
static boolean |
queryNewLink(ImLong startId,
ImLong endId,
ImVec4 color,
float thickness) |
static boolean |
queryNewNode(ImLong pinId) |
static boolean |
queryNewNode(ImLong pinId,
float colorX,
float colorY,
float colorZ,
float colorW) |
static boolean |
queryNewNode(ImLong pinId,
float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static boolean |
queryNewNode(ImLong pinId,
ImVec4 color) |
static boolean |
queryNewNode(ImLong pinId,
ImVec4 color,
float thickness) |
static void |
rejectDeletedItem() |
static void |
rejectNewItem() |
static void |
rejectNewItem(float colorX,
float colorY,
float colorZ,
float colorW) |
static void |
rejectNewItem(float colorX,
float colorY,
float colorZ,
float colorW,
float thickness) |
static void |
rejectNewItem(ImVec4 color) |
static void |
rejectNewItem(ImVec4 color,
float thickness) |
static void |
restoreNodeState(long nodeId) |
static void |
resume() |
static ImVec2 |
screenToCanvas(float posX,
float posY) |
static ImVec2 |
screenToCanvas(ImVec2 pos) |
static void |
screenToCanvas(ImVec2 dst,
float posX,
float posY) |
static void |
screenToCanvas(ImVec2 dst,
ImVec2 pos) |
static float |
screenToCanvasX(ImVec2 pos) |
static float |
screenToCanvasY(ImVec2 pos) |
static void |
selectLink(long linkId) |
static void |
selectLink(long linkId,
boolean append) |
static void |
selectNode(long nodeId) |
static void |
selectNode(long nodeId,
boolean append) |
static void |
setCurrentEditor(NodeEditorContext ctx) |
static void |
setGroupSize(long nodeId,
float sizeX,
float sizeY) |
static void |
setGroupSize(long nodeId,
ImVec2 size) |
static void |
setNodePosition(long nodeId,
float editorPositionX,
float editorPositionY) |
static void |
setNodePosition(long nodeId,
ImVec2 editorPosition) |
static void |
setNodeZPosition(long nodeId,
float z) |
static boolean |
showBackgroundContextMenu() |
static boolean |
showLinkContextMenu(ImLong linkId) |
static boolean |
showNodeContextMenu(ImLong nodeId) |
static boolean |
showPinContextMenu(ImLong pinId) |
static void |
suspend() |
public static void setCurrentEditor(NodeEditorContext ctx)
public static NodeEditorContext getCurrentEditor()
public static NodeEditorContext createEditor()
public static NodeEditorContext createEditor(NodeEditorConfig config)
public static void destroyEditor(NodeEditorContext ctx)
public static NodeEditorStyle getStyle()
public static java.lang.String getStyleColorName(int colorIndex)
public static void pushStyleColor(int colorIndex, ImVec4 color)
public static void pushStyleColor(int colorIndex, float colorX, float colorY, float colorZ, float colorW)
public static void popStyleColor()
public static void popStyleColor(int count)
public static void pushStyleVar(int varIndex, float value)
public static void pushStyleVar(int varIndex, ImVec2 value)
public static void pushStyleVar(int varIndex, float valueX, float valueY)
public static void pushStyleVar(int varIndex, ImVec4 value)
public static void pushStyleVar(int varIndex, float valueX, float valueY, float valueZ, float valueW)
public static void popStyleVar()
public static void popStyleVar(int count)
public static void begin(java.lang.String id)
public static void begin(java.lang.String id, ImVec2 size)
public static void begin(java.lang.String id, float sizeX, float sizeY)
public static void end()
public static void beginNode(long id)
public static void beginPin(long id, int kind)
public static void pinRect(float aX, float aY, float bX, float bY)
public static void pinPivotRect(float aX, float aY, float bX, float bY)
public static void pinPivotSize(ImVec2 size)
public static void pinPivotSize(float sizeX, float sizeY)
public static void pinPivotScale(ImVec2 scale)
public static void pinPivotScale(float scaleX, float scaleY)
public static void pinPivotAlignment(ImVec2 alignment)
public static void pinPivotAlignment(float alignmentX, float alignmentY)
public static void endPin()
public static void group(ImVec2 size)
public static void group(float sizeX, float sizeY)
public static void endNode()
public static boolean beginGroupHint(long nodeId)
public static ImVec2 getGroupMin()
public static float getGroupMinX()
public static float getGroupMinY()
public static void getGroupMin(ImVec2 dst)
public static ImVec2 getGroupMax()
public static float getGroupMaxX()
public static float getGroupMaxY()
public static void getGroupMax(ImVec2 dst)
public static ImDrawList getHintForegroundDrawList()
public static ImDrawList getHintBackgroundDrawList()
public static void endGroupHint()
public static ImDrawList getNodeBackgroundDrawList(long nodeId)
public static boolean link(long id, long startPinId, long endPinId)
public static boolean link(long id, long startPinId, long endPinId, ImVec4 color)
public static boolean link(long id, long startPinId, long endPinId, float colorX, float colorY, float colorZ, float colorW)
public static boolean link(long id, long startPinId, long endPinId, ImVec4 color, float thickness)
public static boolean link(long id, long startPinId, long endPinId, float colorX, float colorY, float colorZ, float colorW, float thickness)
public static boolean link(long id, long startPinId, long endPinId, float thickness)
public static void flow(long linkId)
public static void flow(long linkId, int direction)
public static boolean beginCreate()
public static boolean beginCreate(ImVec4 color)
public static boolean beginCreate(float colorX, float colorY, float colorZ, float colorW)
public static boolean beginCreate(ImVec4 color, float thickness)
public static boolean beginCreate(float colorX, float colorY, float colorZ, float colorW, float thickness)
public static boolean beginCreate(float thickness)
public static boolean queryNewLink(ImLong startId, ImLong endId, float colorX, float colorY, float colorZ, float colorW)
public static boolean queryNewLink(ImLong startId, ImLong endId, ImVec4 color, float thickness)
public static boolean queryNewLink(ImLong startId, ImLong endId, float colorX, float colorY, float colorZ, float colorW, float thickness)
public static boolean queryNewNode(ImLong pinId)
public static boolean queryNewNode(ImLong pinId, float colorX, float colorY, float colorZ, float colorW)
public static boolean queryNewNode(ImLong pinId, float colorX, float colorY, float colorZ, float colorW, float thickness)
public static boolean acceptNewItem()
public static boolean acceptNewItem(ImVec4 color)
public static boolean acceptNewItem(float colorX, float colorY, float colorZ, float colorW)
public static boolean acceptNewItem(ImVec4 color, float thickness)
public static boolean acceptNewItem(float colorX, float colorY, float colorZ, float colorW, float thickness)
public static void rejectNewItem()
public static void rejectNewItem(ImVec4 color)
public static void rejectNewItem(float colorX, float colorY, float colorZ, float colorW)
public static void rejectNewItem(ImVec4 color, float thickness)
public static void rejectNewItem(float colorX, float colorY, float colorZ, float colorW, float thickness)
public static void endCreate()
public static boolean beginDelete()
public static boolean queryDeletedLink(ImLong linkId)
public static boolean queryDeletedLink(ImLong linkId, ImLong startId, ImLong endId)
public static boolean queryDeletedNode(ImLong nodeId)
public static boolean acceptDeletedItem()
public static boolean acceptDeletedItem(boolean deleteDependencies)
public static void rejectDeletedItem()
public static void endDelete()
public static void setNodePosition(long nodeId, ImVec2 editorPosition)
public static void setNodePosition(long nodeId, float editorPositionX, float editorPositionY)
public static void setGroupSize(long nodeId, ImVec2 size)
public static void setGroupSize(long nodeId, float sizeX, float sizeY)
public static ImVec2 getNodePosition(long nodeId)
public static float getNodePositionX(long nodeId)
public static float getNodePositionY(long nodeId)
public static void getNodePosition(ImVec2 dst, long nodeId)
public static ImVec2 getNodeSize(long nodeId)
public static float getNodeSizeX(long nodeId)
public static float getNodeSizeY(long nodeId)
public static void getNodeSize(ImVec2 dst, long nodeId)
public static void centerNodeOnScreen(long nodeId)
public static void setNodeZPosition(long nodeId, float z)
public static float getNodeZPosition(long nodeId)
public static void restoreNodeState(long nodeId)
public static void suspend()
public static void resume()
public static boolean isSuspended()
public static boolean isActive()
public static boolean hasSelectionChanged()
public static int getSelectedObjectCount()
public static int getSelectedNodes(long[] nodes, int size)
public static int getSelectedLinks(long[] links, int size)
public static boolean isNodeSelected(long nodeId)
public static boolean isLinkSelected(long linkId)
public static void clearSelection()
public static void selectNode(long nodeId)
public static void selectNode(long nodeId, boolean append)
public static void selectLink(long linkId)
public static void selectLink(long linkId, boolean append)
public static void deselectNode(long nodeId)
public static void deselectLink(long linkId)
public static boolean deleteNode(long nodeId)
public static boolean deleteLink(long linkId)
public static boolean hasAnyLinksNode(long nodeId)
public static boolean hasAnyLinksPin(long pinId)
public static int breakLinksNode(long nodeId)
public static int breakLinksPin(long pinId)
public static void navigateToContent()
public static void navigateToContent(float duration)
public static void navigateToSelection()
public static void navigateToSelection(boolean zoomIn)
public static void navigateToSelection(boolean zoomIn, float duration)
public static void navigateToSelection(float duration)
public static boolean showNodeContextMenu(ImLong nodeId)
public static boolean showPinContextMenu(ImLong pinId)
public static boolean showLinkContextMenu(ImLong linkId)
public static long getNodeWithContextMenu()
public static long getPinWithContextMenu()
public static long getLinkWithContextMenu()
public static boolean showBackgroundContextMenu()
public static void enableShortcuts(boolean enable)
public static boolean areShortcutsEnabled()
public static boolean beginShortcut()
public static boolean acceptCut()
public static boolean acceptCopy()
public static boolean acceptPaste()
public static boolean acceptDuplicate()
public static boolean acceptCreateNode()
public static int getActionContextSize()
public static int getActionContextNodes(long[] nodes, int size)
public static int getActionContextLinks(long[] links, int size)
public static void endShortcut()
public static float getCurrentZoom()
public static long getHoveredNode()
public static long getHoveredPin()
public static long getHoveredLink()
public static long getDoubleClickedNode()
public static long getDoubleClickedPin()
public static long getDoubleClickedLink()
public static boolean isBackgroundClicked()
public static boolean isBackgroundDoubleClicked()
public static boolean pinHadAnyLinks(long pinId)
public static ImVec2 getScreenSize()
public static float getScreenSizeX()
public static float getScreenSizeY()
public static void getScreenSize(ImVec2 dst)
public static ImVec2 screenToCanvas(float posX, float posY)
public static float screenToCanvasX(ImVec2 pos)
public static float screenToCanvasY(ImVec2 pos)
public static void screenToCanvas(ImVec2 dst, float posX, float posY)
public static ImVec2 canvasToScreen(float posX, float posY)
public static float canvasToScreenX(ImVec2 pos)
public static float canvasToScreenY(ImVec2 pos)
public static void canvasToScreen(ImVec2 dst, float posX, float posY)
public static int getNodeCount()
public static int getOrderedNodeIds(long[] nodes, int size)