This is a lightweight C++ library for visualization and processing of surface meshes and volumetric models. This library supports triangle meshes, tetrahedral meshes and voxel shapes. It is based on OpenMesh dataset and glut toolkit.
- OpenMesh (mesh data structure)
- GMM (default linear solver)
- glut (OpenGL interface)
- glui (GUI interface for glut)
- ofxOctree (collision detection)
Windows executable: ./binary/qc_tool.exe
-
It can be run in GUI or command line modes
-
Additional windows libraries can be downloaded from qc_tool_libs.zip
See ./data/
for examples of different input mesh formats
It supports .obj and .off files
Tetrahedral meshes and voxel shapes can be generated from closed surface meshes (obj , off)
Tetrahedral meshes with vertex attributes can also be loaded from .t files:
# tet mesh in .t format with a single vertex attribute
Vertex 0 -0.5 0.5 -0.5 0.0
Vertex 1 -0.5 0.5 0.5 1.0
Vertex 2 0.5 0.6 -0.4 2.0
Vertex 3 0.5 -0.6 0.4 -1.0
Tet 0 1 0 2 3
- Use scripts from
./utils/
to convert other 3D mesh files to .t format
windows | explanation |
---|---|
3D output | OpenGL/ GLUT main window |
console output / input | info and additional inputs |
GUI | Navigation and visualization of voxels and tetrahedra; lighting and mapping parameters |
See animated examples in ./manual/
Key | explanation |
---|---|
'o' | load a mesh file (.obj, .off, .t) |
Left CNTR + 'o' | Add tetrahedral mesh from .t file to previously loaded surface mesh |
Left CNTR + 's' | Save surface mesh as .off or .obj file, and volume mesh as .t file |
Key | explanation |
---|---|
Arrows up, down | Camera zoom in/out |
Arrows right | Rotation animation |
Mouse Left Button | Rotate around the origin |
Open GUI from popup menu: Mouse Middle Button: Voxel > Voxel Properties
- This GUI divides volume contained inside a closed surface into voxels
-
Standard shading modes are selected from the primary popup menu
Mouse Right Button
-
Different geometry processing parameters can be visualized by selecting these parameters from the primary menu
item explanation Wireframe, Hidden lines, Solid smooth, Solid Flat Standard shading modes Mean / Gaussian /Max normal curvatures, Cylindrical / Spherical coordinates and etc. Visualization of different geometry processing parameters vAttribute Color coded vertex attributes from .t mesh file
-
-
Additional modes can be selected from the secondary popup menu
Mouse Middle Button
-
Open Voxel Navigate GUI to show cross-sections of volumes and to visualize selected mesh elements:
Mouse Middle Button: Voxel > Voxel Navigate
-
Press
'S'
to select Edge/Face/Connected Component mode. Then, press'<'
and'>'
for iterating over these elements and'-'
and'+'
for adding/ removing neighboring elements to the selections -
Iteration over mesh elements
Meshes can be parametrized and deformed by selecting an appropriate item from the secondary menu ( Mouse Middle Button
)
-
Some of these deformations can be computed in the command line mode
-
Deformations are computed with respect to the origin. Press
'a'
to draw the axis and see the origin of the model- To align model click
Mouse Right Button: Place at origin
- To align model click
-
Press
Tab
to switch between the original and deformed models
It maps the given input mesh (-o
) to a ball/ sphere and save results in obj, off or t files (-s
)
qc_tool.exe -o input_file.t -s out_file.t -move2center -map2ball
optional flags | explanation |
---|---|
-move2center | First, move the center of the mass to the origin and then compute the mapping |
-get_dist | Compute distortions obtained by the mapping |
The source code, demo scripts and project files will be available in a near future
If you use this toolkit, please consider citing:
@inproceedings{naitsat2015volumetric,
title={Volumetric quasi-conformal mappings},
author={Naitsat, Alexander and Saucan, Emil and Zeevi, Yehoshua Y},
booktitle={Proceedings of the 10th International Conference on Computer Graphics Theory and Applications},
pages={46--57},
year={2015}
}
@inproceedings{naitsat2016geometric,
title={Geometric Approach to Estimation of Volumetric Distortions.},
author={Naitsat, Alexander and Saucan, Emil and Zeevi, Yehoshua Y},
booktitle={VISIGRAPP (1: GRAPP)},
pages={105--112},
year={2016}
}
This project is licensed under Mozilla Public License, version 2.0 - see the LICENSE file for details