This repository contains a widget based on QOpenGLWidget
that is able
to wrap a viewer from the OpenSceneGraph library.
This makes it possible to combine both toolkits in a thread-safe manner.
Moreover, the widget demonstrates several interaction mechanisms:
- Rectangular selection processing
- Pick handling
- Node file writing (for debug purposes)
- Linux or MacOS X (see below for a brief discussion on supporting Microsoft Windows)
- A recent C++ compiler with support for C++11
CMake
(minimum version 2.8.11)Qt5
OpenSceneGraph
I am not familiar enough with graphics programming for Microsoft Windows to fully support this as a target platform. In issue 7, it was briefly discussed that some modifications are required for QtOSG to fully compile/work under Microsoft Windows. If you want to target this platform, I would be glad for the help!
Thanks to Martial Tola, support for compiling under Microsoft Windows has been added to the project and I am looking forward to any comments.
$ git clone https://github.com/Submanifold/QtOSG
$ cd QtOSG
$ mkdir build
$ cd build
$ cmake ../
$ make
Additional build options can be configured by issuing ccmake .
in the
build directory. In particular, you can toggle the following options:
WITH_PICK_HANDLER
: toggle to compile with/without support for point pickingWITH_SELECTION_PROCESSING
: toggle to compile with/without support for rectangular selections
The demo application merely demonstrates basic usage of the widget.
Don't expect too much! Start the application by issuing ./qtosg
in the
build directory.
The following key bindings are active:
d
: writes the current scene graph to/tmp/sceneGraph.osg
h
: resets the view to homes
: toggles selection processing (if compiled); if active, hold left mouse button down to draw a selection rectangle; selected objects will be shown on the console
Please see the contribution guidelines for more information and a list of the contributors.
QtOSG
uses the MIT licence. Pleas see the file
LICENSE.md in the main directory of the repository for
more information.