jconf display merger
This is a Python tool to parse VR Juggler jconf configuration files and extract display window and surface viewports, then allow merging of multiple windows into a single window with multiple viewports, performing the appropriate math on origin and size.
The command-line tool outputs to stdout the given JConf with all windows merged into one. (Don't redirect this output to the same filename as you use for input, as this causes the unintended side-effect of deletion as the shell deletes the output file before it is read!) The GUI allows more selective action.
Python 2.x (command-line
jconfdisplays.pyworks with 2.4, GUI needs at least 2.5)
Additional dependencies for the GUI tool
Qt - at least version 4.6 (needed by PySide)
PySide Qt Binding: http://www.pyside.org/ - At least these modules:
The saved output of this app is created using the Python ElementTree library. This library explicitly qualifies all elements with a namespace prefix when serializing (saving). The practical effect of this is that saved jconf files will have "ns0:" in each tag name. VRJConfig loads these files just fine, since they're still logically equivalent to the way that VRJConfig saves them. I usually find I need to tweak some parameters (like number of pipes) after merging displays anyway, so loading the file in VRJConfig, changing as needed, and saving restores the original "style" of the XML file.
Merging displays in a cluster is not currently supported, though it shouldn't be too difficult. Contributions are welcome :)
Author and License
This is free and open-source software. Enhancements are gladly welcomed.
jconf-display-merger.py are all written by me,
and available subject to the following copyright and license:
Copyright Iowa State University 2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file
LICENSE_1_0.txtor copy at http://www.boost.org/LICENSE_1_0.txt)
A version of the Python ElementTree library is bundled and used when Python 2.4 is used or when the ElementTree version bundled with Python is older than the snapshot included with this app.