Thickening: A Library for General Mesh Offsetting

Charlie C.L. Wang

What is Thickening? Copyright Source Code

What is Thickening?

Thickening is a library written in C++, which provides the algorithm for computing the offsetting solids of mesh models. When the input is an open surface, the skinned solid with a user-specified thickness will be generated with the help of distance-field [1]. While a uniformly hollowed solid will be generated if the input is a model with closed surface. This algorithm is actually a deviation of our earlier work for uniform offsetting a mesh model - also based on signed distance-field [2].

The implementation of this algorithm is based on a complex-based mesh data structure and basic operators that are introduced in [3]. The efficient distance evaluation for query points is based on the PQP library [4] of UNC, and Dr. Shengjun Liu modified it to be able to return not only the closest point to a query but only the triangle containing this closet point when developing the work in [2].

[1] Charlie C.L. Wang, and Yong Chen, "Thickening freeform surfaces for solid fabrication", Rapid Prototyping Journal, vol.19, no.6, pp.395-406, November 2013.
[2] Shengjun Liu, and Charlie C.L. Wang, "Fast intersection-free offset surface generation from freeform models with triangular meshes", IEEE Transactions on Automation Science and Engineering, vol.8, no.2, pp.347-360, April 2011.
[3] Charlie C.L. Wang, Yu Wang, and Matthew M.F. Yuen, "Feature-based 3D non-manifold freeform object construction", Engineering with Computers, vol.19, no.2-3, pp.174-190, 2003.
[4] Eric Larsen, Stefan Gottschalk, Ming C. Lin, and Dinesh Manocha, "Fast proximity queries with swept sphere volumes", Proceedings of International Conference on Robotics and Automation, 2000, pp.3719-3726.

All rights about the program are reserved by Charlie C.L. Wang at the Department of Mechanical and Automation Engineering, The Chinese University of Hong Kong. In no event shall the author be liable to any party for direct, indirect, special, incidental, or consequential damage arising out of the use of this program.
Source Code

The current version of Thickening library can be downloaded here.
  • Window Version (by Visual Studio): (Date: February 1, 2018)
  • Mac Version (by XCode): (Date: February 5, 2018)

  • This program is developed by C++ and the GUI is based on GLUT.
  • Information about building OpenGL/GLUT programs on different platforms (Linux/Mac/Windows): link
  • The library of GLUT: download