Zome Mesh Viewer v1.0RC
---------------------
(A very brief introduction, please also see the project website http://www.rwth-graphics.de/zometool)


This OpenFlipper [1] plugin opens and visualizes Zome Meshes provided in .zmc (or alternatively .zm2 + .off) format.
This source code (and ultimately the compiled plugin) are provided as-is without any guarantees. 
Nevertheless, the source code is based on our 2014 GMP (Geometric Modeling and Processing) paper [2], and while you are free to use and build upon this code in your own research projects we ask you to cite our publication [2] in any related or derivative work.

In [2] a Zome Mesh is defined as a polygon mesh whose edges and vertices correspond to struts and nodes of the Zomerool(R) system [3].
This plugin visualizes the Zome Mesh as 5 separate polygon meshes: 
 * The first mesh is the actual polygon mesh defining the topology of the Zome Mesh.
 * The three following meshes ("Red Struts", "Blue Struts", "Yellow Struts") contain the geometry of the struts of the different colors
 * Finally, the last mesh "Nodes" contains the geometry of all the nodes in the Zome Mesh. 
   Note that this mesh is not visualized per default, as the node is modelled in some detail and the mesh can get quite large (memory wise) for complex models. To activate visualization of nodes check the "draw nodes" checkbox.

For an introduction to OpenFlipper, how to compile it and its plugins, please see [1].
In addition to being based on OpenFlipper, this "Zome Mesh Viewer" plugin requires:
 * Eigen3, http://eigen.tuxfamily.org
 * Poco (foundations and Zip), http://pocoproject.org/

OpenFlipper compilation is based on CMake (http://cmake.org/) and on the project website [2] we provide simple "Finders" for Eigen3 and Poco to simplify compilation of this plugin.
Given these dependencies OpenFlipper and the plugin build on Linux systems. 
Since these dependencies are pure C++ libraries, compiling should also be straight forward on Mac and Windows systems (where OpenFlipper also builds), but this has not yet been tested.
Binaries for Windows will be provided in the near future.

Feel free to send feedback, bug reports etc. to zome-in@cs.rwth-aachen.de.

Usage
-----
When the "load" button is pressed it opens a file dialog in the $HOME/data/ZomeMeshes folder (if this exists, or else $HOME). 
Select a downloaded ZomeMesh, e.g., "kitten.zmc".
This creates and opens the above mentioned PolyMeshes (describing the nodes, struts, and the topology) and places them in a group (in the Data Control Plugin) with the name of the opened file, i.e., "kitten group". 
The group is automatically "shown". In Data Control you can hide the all meshes of the group (or just some of them).
Opening another file adds another group.
Note that the text field in the Plugin showing the measurements of the (realization of the) final model  and the number of struts etc. only shows this information for one (the last opened) ZomeMesh. Use the "Clear All" function in the "File" menu to close all open meshes.


References
----------
[1] OpenFlipper - An Open Source Geometry Processing and Rendering Framework, www.openflipper.org
[2] Zometool Shape Approximation, H. Zimmer et al., Geometric Models (GMP 14), 2014, www.rwth-graphics.de/zometool
[3] Zometool(R), www.zometool.com


