KeyToggle¶
Purpose¶
The KeyToggle macro is a one-module solution for interactive key bindings to toggle things like overlays. It is just a tiny convenience macro that combines a SoToggle with a SoKeyGrabber.
Usage¶
The default use case is to:
* Instantiate a new KeyToggle module
* Drop it on top of an inventor connection, letting the connection split up and go through the first input (child)
* Configure the key in the panel (for instance, “O”)
* Rename the model (e.g., to “Toggle_O_verlay”) to document the key and its mnemonic
Nowadays, the network panel’s description reveals the shortcut, but the above suggestion also gives the mnemonic that helps remembering the shortcut without looking at the network, and it also gives more meaningful names to modules instead of KeyToggle2, KeyToggle4 and so on.
Interaction¶
Possibly the most important use case is when assessing segmentation results (contours or masks), where it is extremely important to be able to disable overlays in order to see the underlying image data. Here, toggling works much better than a side-by-side view of the image and the segmentation, because they’re in the same place. (And toggling by key is again much better than toggling using the mouse, because one does not have to move the eyes in order to follow the pointer, and multiple fingers / keys can toggle different things very efficiently.)
Tips¶
Sometimes, the above method of toggling a subgraph of the inventor scene does not work. However, the KeyToggle macro can still be very convenient for toggling options like the rendering of WEM edges: Instead of using toggling child scenes, just connect On or off to boolean fields of other modules.
Windows¶
Default Panel¶
Input Fields¶
child¶
direct¶
Output Fields¶
self¶
- name: self, type: SoNode¶
Parameter Fields¶
Field Index¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visible Fields¶
Enable¶
- name: enable, type: Bool, default: TRUE¶
Completely enables / disables the module, disconnecting both inputs and the keygrabber from the output scene
On¶
Switch on¶
- name: listenKey, type: Enum, default: KEY_DELETE¶
Values:
Title |
Name |
|---|---|
Any |
ANY |
Left Shift |
LEFT_SHIFT |
Right Shift |
RIGHT_SHIFT |
Left Control |
LEFT_CONTROL |
Right Control |
RIGHT_CONTROL |
Left Alt |
LEFT_ALT |
Right Alt |
RIGHT_ALT |
Number 0 |
NUMBER_0 |
Number 1 |
NUMBER_1 |
Number 2 |
NUMBER_2 |
Number 3 |
NUMBER_3 |
Number 4 |
NUMBER_4 |
Number 5 |
NUMBER_5 |
Number 6 |
NUMBER_6 |
Number 7 |
NUMBER_7 |
Number 8 |
NUMBER_8 |
Number 9 |
NUMBER_9 |
A |
A |
B |
B |
C |
C |
D |
D |
E |
E |
F |
F |
G |
G |
H |
H |
I |
I |
J |
J |
K |
K |
L |
L |
M |
M |
N |
N |
O |
O |
P |
P |
Q |
Q |
R |
R |
S |
S |
T |
T |
U |
U |
V |
V |
W |
W |
X |
X |
Y |
Y |
Z |
Z |
Home |
HOME |
Left Arrow |
LEFT_ARROW |
Up Arrow |
UP_ARROW |
Right Arrow |
RIGHT_ARROW |
Down Arrow |
DOWN_ARROW |
Page Up |
PAGE_UP |
Page Down |
PAGE_DOWN |
Prior |
PRIOR |
Next |
NEXT |
End |
END |
Pad Enter |
PAD_ENTER |
Pad F1 |
PAD_F1 |
Pad F2 |
PAD_F2 |
Pad F3 |
PAD_F3 |
Pad F4 |
PAD_F4 |
Pad 0 |
PAD_0 |
Pad 1 |
PAD_1 |
Pad 2 |
PAD_2 |
Pad 3 |
PAD_3 |
Pad 4 |
PAD_4 |
Pad 5 |
PAD_5 |
Pad 6 |
PAD_6 |
Pad 7 |
PAD_7 |
Pad 8 |
PAD_8 |
Pad 9 |
PAD_9 |
Pad Add |
PAD_ADD |
Pad Subtract |
PAD_SUBTRACT |
Pad Multiply |
PAD_MULTIPLY |
Pad Divide |
PAD_DIVIDE |
Pad Space |
PAD_SPACE |
Pad Tab |
PAD_TAB |
Pad Insert |
PAD_INSERT |
Pad Delete |
PAD_DELETE |
Pad Period |
PAD_PERIOD |
F1 |
F1 |
F2 |
F2 |
F3 |
F3 |
F4 |
F4 |
F5 |
F5 |
F6 |
F6 |
F7 |
F7 |
F8 |
F8 |
F9 |
F9 |
F10 |
F10 |
F11 |
F11 |
F12 |
F12 |
Backspace |
BACKSPACE |
Tab |
TAB |
Return |
RETURN |
Enter |
ENTER |
Pause |
PAUSE |
Scroll Lock |
SCROLL_LOCK |
Escape |
ESCAPE |
Key Delete |
KEY_DELETE |
Insert |
INSERT |
Right Super |
RIGHT_SUPER |
Num Lock |
NUM_LOCK |
Caps Lock |
CAPS_LOCK |
Shift Lock |
SHIFT_LOCK |
Left Super |
LEFT_SUPER |
Space |
SPACE |
Exclam |
EXCLAM |
Quotedbl |
QUOTEDBL |
Numbersign |
NUMBERSIGN |
Dollar |
DOLLAR |
Percent |
PERCENT |
Ampersand |
AMPERSAND |
Apostrophe |
APOSTROPHE |
Parenleft |
PARENLEFT |
Parenright |
PARENRIGHT |
Asterisk |
ASTERISK |
Plus |
PLUS |
Comma |
COMMA |
Minus |
MINUS |
Period |
PERIOD |
Slash |
SLASH |
Colon |
COLON |
Semicolon |
SEMICOLON |
Less |
LESS |
Equal |
EQUAL |
Greater |
GREATER |
Question |
QUESTION |
At |
AT |
Bracketleft |
BRACKETLEFT |
Backslash |
BACKSLASH |
Bracketright |
BRACKETRIGHT |
Asciicircum |
ASCIICIRCUM |
Underscore |
UNDERSCORE |
Grave |
GRAVE |
Braceleft |
BRACELEFT |
Bar |
BAR |
Braceright |
BRACERIGHT |
Asciitilde |
ASCIITILDE |
<shift>¶
- name: needShift, type: Bool, default: FALSE¶
<ctrl>¶
- name: needCtrl, type: Bool, default: FALSE¶
<alt>¶
- name: needAlt, type: Bool, default: FALSE¶
Key Pressed¶
- name: keyPressed, type: Trigger, persistent: no¶
Shift Pressed¶
- name: shiftPressed, type: Bool, persistent: no¶
Ctrl Pressed¶
- name: ctrlPressed, type: Bool, persistent: no¶
Alt Pressed¶
- name: altPressed, type: Bool, persistent: no¶