Christopher Arndt
2da51dd7cd
Signed-off-by: Christopher Arndt <chris@chrisarndt.de> |
||
---|---|---|
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
fancyknob.cpp | ||
fancyknob.hpp | ||
knob.py | ||
nanogui_customwidget.py | ||
nanogui_helloworld.cpp | ||
nanogui_helloworld.py | ||
nanogui_knobs.cpp | ||
nanogui_knobs.png | ||
nanogui_knobs.py | ||
requirements.txt |
README.md
NanoGUI Experiments
Building
Python
Set up virtual environment providing nanogui Python bindings:
python3 -m venv venv
source venv/bin/activate
(venv) pip install -r requirenments.txt
Run helloworld examples:
(venv) python3 nanogui_helloworld.py
(venv) python3 nanogui_custowidget.py
C++
Configure build with CMake:
cmake -B build -S .
(This will checkout the NanoGUI library from GitHub into the build directory.
You can use -DNANOGUI_REPO=<repo path or URL>
to change from where Git will
retrieve the repository.)
Build the examples:
cmake --build build
Run hellworld example:
./build/nanogui_helloworld
Knobs Example
Python
(venv) python3 nanogui_knobs.py
C++
./build/nanogui_knobs
Key and Mouse Bindings
Mouse click-and-drag knob | coarse in-/decrement | +/- one 100th / pixel |
Shift + mouse click-and-drag knob | fine in-/decrement | +/- 0.1 / pixel |
Mouse wheel scroll over knob | coarse in-/decrement | one 100th / click * 2.0 |
Shift + mouse wheel scroll over knob | fine in-/decrement | +/- 0.1 / click |
Ctrl + left click on knob | set to default value | |
Up/down key while mouse over knob | coarse in-/decrement | +/- one 100th |
Shift + up/down key while mouse over knob | fine in-/decrement | +/- 0.1 |
Page up/down key while mouse over knob | big in-/decrement | +/- one 10th |
Mouse click on value entry up/down arrow | fine in-/decrement | +/- 0.1 |
Mouse wheel scroll over value entry | fine in-/decrement | +/- 0.1 / click |
Return/Enter while editing value entry | accept & set value | |
Escape key | quit |
Notes
- No support for scaling or re-layouting on window resize yet.
- Only the knob value gauge color can currently be specified on instantation, the knob gradient and outline colors are currently hard-coded.