Skip to content
bradb edited this page Aug 5, 2020 · 1 revision

Qhull 2020.1 (2020/05/29, 8.0.0)

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)