|
|
std::map< std::shared_ptr< Instrument >, std::vector< InstrumentChannel * > > | GetAllVisibleChannels () |
| | Get a list of all channels that we are displaying nodes for.
|
| |
|
std::vector< FlowGraphNode * > | GetAllNodes () |
| | Get a list of all objects we're displaying nodes for (channels, filters, triggers, etc)
|
| |
|
void | RefreshGroupPorts () |
| | Figure out which source/sink ports are within each group.
|
| |
|
ax::NodeEditor::PinId | CanonicalizePin (ax::NodeEditor::PinId port) |
| | Gets the actual source/sink pin given a pin which might be a hierarchical port.
|
| |
|
void | InputPortTooltip (FlowGraphNode *node, size_t idx) |
| | Display tooltips when mousing over an input port.
|
| |
|
void | OutputPortTooltip (StreamDescriptor stream) |
| | Display tooltips when mousing over an output port.
|
| |
|
void | DoNodeForGroup (std::shared_ptr< FilterGraphGroup > group) |
| |
|
void | DoInternalLinksForGroup (std::shared_ptr< FilterGraphGroup > group) |
| | Handle links between nodes in a group and the hierarchical ports.
|
| |
|
void | DoNodeForGroupOutputs (std::shared_ptr< FilterGraphGroup > group) |
| |
|
void | DoNodeForGroupInputs (std::shared_ptr< FilterGraphGroup > group) |
| |
| void | DoNodeForChannel (InstrumentChannel *channel, std::shared_ptr< Instrument > inst, bool multiInst, int64_t runtime) |
| | Make a node for a single channel, of any type.
|
| |
|
void | DoNodeForTrigger (Trigger *trig) |
| | Make a node for a trigger.
|
| |
| bool | HandleNodeProperties () |
| | Open the properties window when a node is right clicked.
|
| |
|
void | HandleDoubleClicks () |
| | Opens a persistent properties window when a node is double clicked.
|
| |
|
void | HandleLinkCreationRequests (Filter *&fReconfigure) |
| | Handle requests to create a new link.
|
| |
|
void | HandleDeletionRequests (Filter *&fReconfigure) |
| | Handle requests to delete a link or node.
|
| |
| bool | OnNodeDeleted (FlowGraphNode *node) |
| | Handle node deletion requests.
|
| |
| bool | OnFilterDeleted (Filter *node) |
| | Handle deletion requests for filters in particular.
|
| |
|
void | HandleBackgroundContextMenu () |
| | Show add menu when background is right clicked.
|
| |
|
void | DoAddMenu () |
| | Implement the add menu.
|
| |
|
void | HandleOverlaps () |
| | Find nodes that are intersecting, and apply forces to resolve collisions.
|
| |
|
void | CalculateNodeForces (const std::vector< ax::NodeEditor::NodeId > &nodes, const std::vector< bool > &isgroup, const std::vector< bool > &dragging, const std::vector< bool > &nocollide, const std::vector< ImVec2 > &positions, const std::vector< ImVec2 > &sizes, std::vector< ImVec2 > &forces) |
| | Calculates the forces applied to each node in the graph based on interaction physics.
|
| |
|
void | ApplyNodeForces (const std::vector< ax::NodeEditor::NodeId > &nodes, const std::vector< bool > &isgroup, const std::vector< bool > &dragging, const std::vector< ImVec2 > &positions, std::vector< ImVec2 > &forces) |
| | Once forces are calculated, actually move the nodes (unless being dragged)
|
| |
|
void | SetCanvasManagedDPI () |
| | Use 1.0 as the DPI since the canvas scales independently.
|
| |
|
void | SetImGuiManagedDPI () |
| | Use the ImGui viewport scale as the DPI scale.
|
| |
|
void | ClearOldPropertiesDialogs () |
| | Delete old properties dialogs for no-longer-extant nodes.
|
| |
|
void | NodeIcon (InstrumentChannel *chan, ImVec2 iconpos, ImVec2 iconsize, ImDrawList *list) |
| | Draws an icon showing the function of a node.
|
| |
|
void | FilterMenu (StreamDescriptor src) |
| | Runs the "create filter" menu.
|
| |
|
void | FilterSubmenu (StreamDescriptor src, const std::string &name, Filter::Category cat) |
| | Run the submenu for a single filter category.
|
| |
|
void | CreateChannelMenu () |
| | Runs the "add input" menu.
|
| |
|
ax::NodeEditor::NodeId | GetID (FlowGraphNode *node) |
| | Gets the ID for an arbitrary node.
|
| |
|
ax::NodeEditor::NodeId | GetID (InstrumentChannel *chan) |
| |
|
ax::NodeEditor::NodeId | GetID (Trigger *trig) |
| |
|
ax::NodeEditor::NodeId | GetID (std::shared_ptr< FilterGraphGroup > group) |
| |
|
uintptr_t | AllocateID () |
| | Allocate an ID, avoiding collisions with the session IDTable.
|
| |
|
ax::NodeEditor::PinId | GetID (StreamDescriptor stream) |
| |
|
ax::NodeEditor::PinId | GetID (std::pair< FlowGraphNode *, size_t > input) |
| |
|
ax::NodeEditor::LinkId | GetID (std::pair< ax::NodeEditor::PinId, ax::NodeEditor::PinId > link) |
| |
| ax::NodeEditor::PinId | GetSourcePinForLink (StreamDescriptor source, FlowGraphNode *sink) |
| | Gets the source pin we should use for drawing a connection.
|
| |
| ax::NodeEditor::PinId | GetSinkPinForLink (StreamDescriptor source, std::pair< FlowGraphNode *, int > sink) |
| | Gets the sink pin we should use for drawing a connection.
|
| |
|
void | RenderForceVector (ImDrawList *list, ImVec2 pos, ImVec2 size, ImVec2 vec) |
| |
|
bool | TextInputWithExplicitApply (const std::string &label, std::string ¤tValue, std::string &committedValue) |
| |
|
bool | IntInputWithImplicitApply (const std::string &label, int ¤tValue, int &committedValue) |
| |
| bool | UnitInputWithExplicitApply (const std::string &label, std::string ¤tValue, float &committedValue, Unit unit) |
| | Input box for a floating point value with an associated unit and an "apply" button.
|
| |
| void | renderNumericValue (const std::string &value, bool &clicked, bool &hovered, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false, float digitHeight=0, bool clickable=true) |
| | Render a numeric value.
|
| |
| void | renderReadOnlyProperty (float width, const std::string &label, const std::string &value, const char *tooltip=nullptr) |
| | Render a read-only instrument property value.
|
| |
|
template<typename T > |
| bool | renderEditableProperty (float width, const std::string &label, std::string ¤tValue, T &committedValue, Unit unit, const char *tooltip=nullptr, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false, bool explicitApply=false) |
| |
| template<typename T > |
| bool | renderEditablePropertyWithExplicitApply (float width, const std::string &label, std::string ¤tValue, T &committedValue, Unit unit, const char *tooltip=nullptr, std::optional< ImVec4 > optcolor=std::nullopt, bool allow7SegmentDisplay=false) |
| | Render an editable numeric value with explicit apply (if the input value needs to explicitly be applied by clicking the apply button)
|
| |
| void | renderBadge (float width, ImVec4 color, const std::string &label) |
| | Render a badge with text inside.
|
| |
|
void | RenderErrorPopup () |
| | Popup message when we fail to connect.
|
| |
|
void | ShowErrorPopup (const std::string &title, const std::string &msg) |
| | Opens the error popup.
|
| |
| void | Render7SegmentDigit (ImDrawList *drawList, uint8_t digit, ImVec2 size, ImVec2 position, float thikness, ImU32 colorOn, ImU32 colorOff) |
| | Render a single digit in 7 segment display style.
|
| |
| void | Render7SegmentValue (const std::string &value, ImVec4 color, float digitHeight) |
| | Render a numeric value with a 7 segment display style.
|
| |
| void | Render7SegmentValue (const std::string &value, ImVec4 color, float digitHeight, bool &clicked, bool &hovered, bool clickable=true) |
| | Render a numeric value with a 7 segment display style.
|
| |
|
|
ax::NodeEditor::Config | m_config |
| | Graph editor setup.
|
| |
|
ax::NodeEditor::EditorContext * | m_context |
| | Context containing current state of the graph editor.
|
| |
|
Bijection< StreamDescriptor, ax::NodeEditor::PinId, std::less< StreamDescriptor >, lessID< ax::NodeEditor::PinId > > | m_streamIDMap |
| | Map of streams to output port IDs.
|
| |
|
Bijection< std::pair< FlowGraphNode *, int >, ax::NodeEditor::PinId, std::less< std::pair< FlowGraphNode *, int > >, lessID< ax::NodeEditor::PinId > > | m_inputIDMap |
| | Map of (channel, input number) to input port IDs.
|
| |
|
Bijection< std::pair< ax::NodeEditor::PinId, ax::NodeEditor::PinId >, ax::NodeEditor::LinkId, lessIDPair, lessID< ax::NodeEditor::LinkId > > | m_linkMap |
| | Map of (ID, ID) to link IDs.
|
| |
|
Bijection< FlowGraphNode *, std::shared_ptr< FilterGraphGroup > > | m_nodeGroupMap |
| | Map of signal sources to the group the source node is in (if there is one)
|
| |
|
uintptr_t | m_nextID |
| | Next link/port ID to be allocated.
|
| |
|
StreamDescriptor | m_newFilterSourceStream |
| | Source stream of the newly created filter.
|
| |
|
std::map< ax::NodeEditor::NodeId, std::shared_ptr< EmbeddableDialog >, lessID< ax::NodeEditor::NodeId > > | m_propertiesDialogs |
| | Properties dialogs for channels to be displayed inside nodes.
|
| |
|
ax::NodeEditor::NodeId | m_selectedProperties |
| | Node whose properties we're currently interacting with.
|
| |
|
ImVec2 | m_createMousePos |
| |
|
std::pair< FlowGraphNode *, int > | m_createInput |
| | Input we're considering hooking a new channel up to.
|
| |
|
Bijection< std::shared_ptr< FilterGraphGroup >, ax::NodeEditor::NodeId, std::less< std::shared_ptr< FilterGraphGroup > >, lessID< ax::NodeEditor::NodeId > > | m_groups |
| | Groups.
|
| |
|
std::map< ax::NodeEditor::NodeId, ImVec2, lessID< ax::NodeEditor::NodeId > > | m_nodeForces |
| |
|
FilterGraphErrorWindow | m_errorWindow |
| |
|
bool | m_open |
| |
|
std::string | m_id |
| |
|
std::string | m_title |
| |
|
ImVec2 | m_defaultSize |
| |
|
std::string | m_errorPopupTitle |
| |
|
std::string | m_errorPopupMessage |
| |
|
Session * | m_session |
| | optional reference to session
|
| |
|
MainWindow * | m_parent |
| | optional reference to parent MainWindow
|
| |
|
ImGuiID | m_editedItemId = 0 |
| | Id of the item currently beeing edited.
|
| |
|
ImGuiID | m_lastEditedItemId = 0 |
| | Id of the last edited item.
|
| |