Qhull 2020.1
Qhull 2020.1 enhances the C++ interface with QhullUser and support for Voronoi diagrams. See user_eg3 for C++ examples. Qhull builds support pkg-config, SONAME, DESTDIR for staged installs, PREFIX, QhullExport, and CMAKE_CURRENT_SOURCE_DIR.
A special thanks to T. Roehling for his help with the builds and I. Voutchkov for asking how to display Voronoi diagrams with the C++ interface.
"To do" in Changes.txt describes a top-level design for constructing the Voronoi diagram is C++.
-
QhullLinkedList::const_iterator fixed operator->().
-
RoadError::stringGlobalLog returns std::string instead of const char *
-
QhullUser is a user-modifiable interface to Qhull using a custom qh_fprintf.
Option 'Ta' displays the message codes for Qhull output. qh_fprintf can trap these codes and transfer the data to QhullUser. -
user_eg3 adds examples for convex hulls, Delaunay triangulations, and Voronoi diagrams. The examples can take their input from rbox or qhull. 'user_eg3 rbox' preserves the dimension for multiple options.
-
The new C++ methods are Qhull::isDelaunay, Qhull::prepareVoronoi, QhullFacet::visitId, QhullFacet::nextFacet2d, QhullFacet::setFacetT, QhullRidge::qh, QhullRidge::setRidgeT, and QhullVertex::setVertexT.
-
qh_order_vertexneighbors [io_r.c] orders facet neighbors of a vertex by 2-d (orientation), 3-d (adjacency), or n-d (f.visitid,id).
-
qh_nextfacet2d [poly2_r.c] returns 2-d facets and vertices in counter-clockwise order.
-
Qhull install adds pkg-config support via CMakeLists.txt and Makefile. The template is qhull.pc.in.
-
CMakeLists.txt increases SOVERSION to 8.0. Makefile reads SOVERSION from CMakeLists and creates a symbolic link for SONAME. Qhull 2019.1 had ABI breakage that was not indicated by its SOVERSION 7.
-
CMakeLists.txt creates QhullExport/ for QhullConfig. CMakeLists sets POSITION_INDEPENDENT_CODE for libqhullcpp.
-
Makefile supports GNU Makefile standards for DESTDIR and PREFIX. Previous Qhull Makefiles used DESTDIR instead of PREFIX.
-
By default, Makefile compiles without -m32 and with -fpic. Use variables M32 and FPIC for 32-bit builds without -fpic on 64-bit hosts. This reduces memory requirements and may be faster on older processors.
-
The -lm linker flag moved to the end of the linker command.
-
C source files on www.qhull.org link to function documentation (Functions)