This code implements the algorithms and experiments described in https://doi.org/10.1111/cgf.13722
W. Meulemans (2019) Efficient Optimal Overlap Removal: Algorithms and Experiments Computer Graphics Forum
This implementation builds upon the GeometryCore, available at https://gitaga.win.tue.nl/commons/geometrycore
The implementation assumes IBM ILOG CPLEX 12.7.1 is installed and the appropriate jar file (opl-all.jar) from CPLEX is included.
It provides two GUIs via two different main files.
- Diamond version (or squares): nl.tue.overlapremoval.gui.DiamondPlacement This provides the main interface. The left-hand side provides three tabs:
- Data: generate instances through the parameters described in the paper
- Solve: solve instances with the provided settings. Settings here control how the LP/CQP is set up.
- Vis: visualization settings / rendering screenshots
- Hexagonal version (barycentric coordinates): nl.tue.overlapremoval.hexagons.BaryCentric Used primarily to demonstrate the hexagonal setting and is set up to use the Iris dataset from a TSV file (not provided).
Both GUIs offer standard GeometryCore interaction (spacebar to zoom-to-fit; right-mouse drag to pan; middle-mouse/scroll-wheel drag to zoom into a rectangular region; scroll-wheel to zoom towards/away from mouse location). Additional, several hotkeys may be defined, see the respective extensions of of GeometryPanel.
In addition to the above, the scripts for the experiments are also provides, see the four main files in nl.tue.overlapremoval.batch.