diff --git a/README.txt b/README.txt index 7585bbf..34c2819 100644 --- a/README.txt +++ b/README.txt @@ -1,523 +1,523 @@ Name qhull, rbox 2012.1 2012/02/18 Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection Documentation: html/index.htm http://www.qhull.org/html Available from: [out-of-date] News and a paper: Version 1 (simplicial only): Purpose Qhull is a general dimension convex hull program that reads a set of points from stdin, and outputs the smallest convex set that contains the points to stdout. It also generates Delaunay triangulations, Voronoi diagrams, furthest-site Voronoi diagrams, and halfspace intersections about a point. Rbox is a useful tool in generating input for Qhull; it generates hypercubes, diamonds, cones, circles, simplices, spirals, lattices, and random points. Qhull produces graphical output for Geomview. This helps with understanding the output. Environment requirements Qhull and rbox should run on all 32-bit and 64-bit computers. Use an ANSI C or C++ compiler to compile the program. The software is self-contained. It comes with examples and test scripts. Qhull's C++ interface uses the STL. The C++ test program uses QTestLib from Nokia's Qt Framework. Qhull's C++ interface may change without notice. Eventually, it will move into the qhull shared library. Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt before using or distributing Qhull. To cite Qhull, please use Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., "The Quickhull algorithm for convex hulls," ACM Trans. on Mathematical Software, 22(4):469-483, Dec 1996, http://www.qhull.org. To contribute to Qhull Qhull is on Gitorious (http://gitorious.org:qhull, git@gitorious.org:qhull/qhull.git) For internal documentation, see html/qh-code.htm To install Qhull Qhull is precompiled for Windows, otherwise it needs compilation. Besides makefiles for gcc, qhull includes CMakeLists.txt for CMake, vcproj/sln files for Microsoft Visual Studio, and .pro files for Qt Creator. It compiles with mingw. Install and build instructions follow. See the end of this document for a list of distributed files. ----------------- Installing Qhull on Windows 7 (32- or 64-bit), Windows XP, and Windows NT The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaUnay.exe, qhalf.exe, qvoronoi.exe, testqset.exe, user_eg*.exe, documentation files, and source files. To install Qhull: - Unzip the files into a directory. You may use WinZip32 - Click on QHULL-GO or open a command window into Qhull's bin directory. To uninstall Qhull - Delete the qhull directory To learn about Qhull: - Execute 'qconvex' for a synopsis and examples. - Execute 'rbox 10 | qconvex' to compute the convex hull of 10 random points. - Execute 'rbox 10 | qconvex i TO file' to write results to 'file'. - Browse the documentation: qhull\html\index.htm - If an error occurs, Windows sends the error to stdout instead of stderr. Use 'TO xxx' to send normal output to xxx and error output to stdout To improve the command window - Double-click the window bar to increase the size of the window - Right-click the window bar - Select Properties - Check QuickEdit Mode Select text with right-click or Enter Paste text with right-click - Change Font to Lucinda Console - Change Layout to Screen Buffer Height 999, Window Size Height 55 - Change Colors to Screen Background White, Screen Text Black - Click OK - Select 'Modify shortcut that started this window', then OK If you use qhull a lot, install MSYS (www.mingw.org), Road Bash (www.qhull.org/bash), or Cygwin (www.cygwin.com). ----------------- Installing Qhull on Unix with gcc To build Qhull, static libraries, shared library, and C++ interface - Extract Qhull from qhull...tgz or qhull...zip - make - export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH Or, to build Qhull and libqhullstatic.a - Extract Qhull from qhull...tgz or qhull...zip - cd src/libqhull - make The Makefiles may be edited for other compilers. If 'testqset' exits with an error, qhull is broken ----------------- Installing Qhull with CMake 2.6 or later To build Qhull, static libraries, shared library, and C++ interface - Extract Qhull from qhull...tgz or qhull...zip - cd build - cmake .. - make - make install On Windows, CMake installs to C:/Program Files/qhull See CMakeLists.txt for further build instructions ----------------- Installing Qhull with Qt To build Qhull, static libraries, shared library, C++ interface, and C++ test - Extract Qhull from qhull...tgz or qhull...zip - cd src - qmake - make ----------------- Installing Qhull with Autoconf [WARNING out-of-date] The tar.gz tarball contains documentation, source files, and a config directory [R. Laboissiere]. [Nov 2011] Qhull 2009.1.2 does not include the C++ interface To install Qhull - Extract the files - ./configure - make - make install ------------------- Working with Qhull's C++ interface Qhull's C++ interface is likely to change. Stay current with Gitorious. To clone Qhull's next branch from http://gitorious.org/qhull git init git clone git://gitorious.org/qhull/qhull.git cd qhull git checkout next ... git pull origin next ------------------ Compiling Qhull with Microsoft Visual C++ 2005 or later To compile Qhull with Microsoft Visual C++ - Extract Qhull from Gitorious, qhull...tgz, or qhull...zip - Load solution build/qhull.sln - Build - Project qhulltest requires Qt for DevStudio (http://qt.nokia.com/downloads) Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/4.7.4) If incorrect, precompile will fail with 'Can not locate the file specified' ----------------- Compiling Qhull with Qt Creator Qt (http://qt.nokia.com) is a C++ framework for Windows, Linux, and Macintosh Qhull uses QTestLib to test qhull's C++ interface (qhulltest) To compile Qhull with Qt Creator - Extract Qhull from Gitorious, qhull...tgz, or qhull...zip - Download the Qt SDK from Nokia (http://qt.nokia.com/downloads) - Start Qt Creator - Load src/qhull-all.pro - Build ----------------- Compiling Qhull with mingw on Windows To compile Qhull with MINGW - Extract Qhull from Gitorious, qhull...tgz, or qhull...zip - Install Road Bash (http://www.qhull.org/bash) or install MSYS (http://www.mingw.org/wiki/msys) - Install MINGW (http://www.mingw.org/). Mingw is included with Qt SDK. - make ----------------- Compiling Qhull with cygwin on Windows To compile Qhull with cygwin - Extract Qhull from Gitorious, qhull...tgz, or qhull...zip - Install cygwin (http://www.cygwin.com) - Include packages for gcc, make, ar, and ln - make ----------------- Compiling from Makfile without gcc The file, qhull-src.tgz, contains documentation and source files for qhull and rbox. To unpack the gzip file - tar zxf qhull-src.tgz - cd qhull Compiling qhull and rbox with Makefile - in Makefile, check the CC, CCOPTS1, PRINTMAN, and PRINTC defines - the defaults are gcc and enscript - CCOPTS1 should include the ANSI flag. It defines __STDC__ - in user.h, check the definitions of qh_SECticks and qh_CPUclock. - use '#define qh_CLOCKtype 2' for timing runs longer than 1 hour - type: make - this builds: qhull qconvex qdelaunay qhalf qvoronoi rbox libqhull.a - type: make doc - this prints the man page - See also qhull/html/index.htm - if your compiler reports many errors, it is probably not a ANSI C compiler - you will need to set the -ansi switch or find another compiler - if your compiler warns about missing prototypes for fprintf() etc. - this is ok, your compiler should have these in stdio.h - if your compiler warns about missing prototypes for memset() etc. - include memory.h in qhull_a.h - if your compiler reports "global.c: storage size of 'qh_qh' isn't known" - delete the initializer "={0}" in global.c, stat.c and mem.c - if your compiler warns about "stat.c: improper initializer" - this is ok, the initializer is not used - if you have trouble building libqhull.a with 'ar' - try 'make -f Makefile.txt qhullx' - if the code compiles, the qhull test case will automatically execute - if an error occurs, there's an incompatibility between machines - If you can, try a different compiler - You can turn off the Qhull memory manager with qh_NOmem in mem.h - You can turn off compiler optimization (-O2 in Makefile) - If you find the source of the problem, please let us know - to install the programs and their man pages: - define MANDIR and BINDIR - type 'make install' - if you have Geomview (www.geomview.org) - try 'rbox 100 | qconvex G >a' and load 'a' into Geomview - run 'q_eg' for Geomview examples of Qhull output (see qh-eg.htm) ------------------ Compiling on other machines and compilers Qhull compiles with Borland C++ 5.0 bcc32. A Makefile is included. Execute 'make -f Mborland'. If you use the Borland IDE, set the ANSI option in Options:Project:Compiler:Source:Language-compliance. Qhull compiles with Borland C++ 4.02 for Win32 and DOS Power Pack. Use 'make -f Mborland -D_DPMI'. Qhull 1.0 compiles with Borland C++ 4.02. For rbox 1.0, use "bcc32 -WX -w- -O2-e -erbox -lc rbox.c". Use the same options for Qhull 1.0. [D. Zwick] Qhull compiles with Metrowerks C++ 1.7 with the ANSI option. If you turn on full warnings, the compiler will report a number of unused variables, variables set but not used, and dead code. These are intentional. For example, variables may be initialized (unnecessarily) to prevent warnings about possible use of uninitialized variables. Qhull compiles on the Power Macintosh with Metrowerk's C compiler. It uses the SIOUX interface to read point coordinates and return output. There is no graphical output. For project files, see 'Compiling a custom build'. Instead of using SIOUX, Qhull may be embedded within an application. Some users have reported problems with compiling Qhull under Irix 5.1. It compiles under other versions of Irix. If you have troubles with the memory manager, you can turn it off by defining qh_NOmem in mem.h. ----------------- Distributed files README.txt // Instructions for installing Qhull REGISTER.txt // Qhull registration COPYING.txt // Copyright notice QHULL-GO.lnk // Windows icon for eg/qhull-go.bat Announce.txt // Announcement CMakeLists.txt // CMake build file (2.6 or later) File_id.diz // Package descriptor index.htm // Home page Makefile // Makefile for gcc and other compilers qhull*.md5sum // md5sum for all files bin/* // Qhull executables and dll (.zip only) build/qhull.sln // DevStudio solution and project files (2005 or later) build/*.vcproj config/* // Autoconf files for creating configure (Unix only) eg/* // Test scripts and geomview files from q_eg html/index.htm // Manual html/qh-faq.htm // Frequently asked questions html/qh-get.htm // Download page html/qhull-cpp.xml // C++ style notes as a Road FAQ (www.qhull.org/road) src/Changes.txt // Change history for Qhull and rbox src/qhull-all.pro // Qt project eg/ q_eg // shell script for Geomview examples (eg.01.cube) q_egtest // shell script for Geomview test examples q_test // shell script to test qhull q_test-ok.txt // output from q_test qhulltest-ok.txt // output from qhulltest (Qt only) rbox consists of (bin, html): rbox.exe // Win32 executable (.zip only) rbox.htm // html manual rbox.man // Unix man page rbox.txt qhull consists of (bin, html): qhull.exe // Win32 executables and dlls (.zip only) qconvex.exe qdelaunay.exe qhalf.exe qvoronoi.exe qhull.dll qhull_p.dll qhull-go.bat // command window qconvex.htm // html manual qdelaun.htm qdelau_f.htm qhalf.htm qvoronoi.htm qvoron_f.htm qh-eg.htm qh-code.htm qh-impre.htm index.htm qh-opt*.htm qh-quick.htm qh--*.gif // images for manual normal_voronoi_knauss_oesterle.jpg qhull.man // Unix man page qhull.txt bin/ msvcr80.dll // Visual C++ redistributable file (.zip only) src/ qhull/unix.c // Qhull and rbox applications qconvex/qconvex.c qhalf/qhalf.c qdelaunay/qdelaunay.c qvoronoi/qvoronoi.c rbox/rbox.c user_eg/user_eg.c // example of using qhull_p.dll (requires -Dqh_QHpointer) user_eg2/user_eg2.c // example of using qhull.dll from a user program - user_eg3/user_eg3.cpp // example of Qhull's C++ interface with libqhullstatic_p.a + user_eg3/user_eg3.cpp // example of Qhull's C++ interface with libqhullstatic_r.a qhulltest/qhulltest.cpp // Test of Qhull's C++ interface using Qt's QTestLib qhull-*.pri // Include files for Qt projects src/libqhull libqhull.pro // Qt project for shared library (qhull.dll) index.htm // design documentation for libqhull qh-*.htm qhull-exports.def // Export Definition file for Visual C++ Makefile // Simple gcc Makefile for qhull and libqhullstatic.a Mborland // Makefile for Borland C++ 5.0 libqhull.h // header file for qhull user.h // header file of user definable constants libqhull.c // Quickhull algorithm with partitioning user.c // user re-definable functions usermem.c userprintf.c userprintf_rbox.c qhull_a.h // include files for libqhull/*.c geom.c // geometric routines geom2.c geom.h global.c // global variables io.c // input-output routines io.h mem.c // memory routines, this is stand-alone code mem.h merge.c // merging of non-convex facets merge.h poly.c // polyhedron routines poly2.c poly.h qset.c // set routines, this only depends on mem.c qset.h random.c // utilities w/ Park & Miller's random number generator random.h rboxlib.c // point set generator for rbox stat.c // statistics stat.h src/libqhullp libqhullp.pro // Qt project for shared library (qhull_p.dll) qhull_p-exports.def // Export Definition file for Visual C++ src/libqhullstatic/ libqhullstatic.pro // Qt project for static library src/libqhullstaticp/ libqhullstaticp.pro // Qt project for static library with qh_QHpointer src/libqhullcpp/ libqhullcpp.pro // Qt project for static C++ library Qhull.cpp // Call libqhull.c from C++ Qhull.h qt-qhull.cpp // Supporting methods for Qt qhull_interface.cpp // Another approach to C++ Coordinates.cpp // input classes Coordinates.h PointCoordinates.cpp PointCoordinates.h RboxPoints.cpp // call rboxlib.c from C++ RboxPoints.h QhullFacet.cpp // data structure classes QhullFacet.h QhullHyperplane.cpp QhullHyperplane.h QhullPoint.cpp QhullPoint.h QhullQh.cpp QhullStat.cpp QhullStat.h QhullVertex.cpp QhullVertex.h QhullFacetList.cpp // collection classes QhullFacetList.h QhullFacetSet.cpp QhullFacetSet.h QhullIterator.h QhullLinkedList.h QhullPoints.cpp QhullPoints.h QhullPointSet.cpp QhullPointSet.h QhullRidge.cpp QhullRidge.h QhullSet.cpp QhullSet.h QhullSets.h QhullVertexSet.cpp QhullVertexSet.h functionObjects.h // supporting classes QhullError.cpp QhullError.h QhullQh.cpp QhullQh.h UsingLibQhull.cpp UsingLibQhull.h src/qhulltest/ qhulltest.pro // Qt project for test of C++ interface Coordinates_test.cpp // Test of each class PointCoordinates_test.cpp Point_test.cpp QhullFacetList_test.cpp QhullFacetSet_test.cpp QhullFacet_test.cpp QhullHyperplane_test.cpp QhullLinkedList_test.cpp QhullPointSet_test.cpp QhullPoints_test.cpp QhullPoint_test.cpp QhullRidge_test.cpp QhullSet_test.cpp QhullVertexSet_test.cpp QhullVertex_test.cpp Qhull_test.cpp RboxPoints_test.cpp UsingLibQhull_test.cpp src/road/ RoadError.cpp // Supporting base classes RoadError.h RoadLogEvent.cpp RoadLogEvent.h RoadTest.cpp // Run multiple test files with QTestLib RoadTest.h src/testqset/ testqset.pro // Qt project for test qset.c with mem.c testqset.c ----------------- Authors: C. Bradford Barber Hannu Huhdanpaa (Version 1.0) bradb@shore.net hannu@qhull.org Qhull 1.0 and 2.0 were developed under NSF grants NSF/DMS-8920161 and NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard University. If you find Qhull useful, please let us know. diff --git a/src/Changes.txt b/src/Changes.txt index 0783df0..baf58e0 100644 --- a/src/Changes.txt +++ b/src/Changes.txt @@ -1,1661 +1,1669 @@ .............This file lists all changes to qhull and rbox..................... ------------ Need help - Qhull needs RPM and Debian builds (CMake's CPackRMP and CPackDeb). - Add an Autotools build for everything - Set up debian build [octave-maintainers] Please keep debian files in config/ - Qhull needs a mirror/archive site for old and new builds - The C++ interface needs work. Give it a try and make it better. http://gitorious.org/qhull/ - Document with Qt conventions using Doxygen (//! and //!<) - Produce conformant triangulations for merged facets using option 'Qt' To do - Review email for doc changes before jun'10 - Git: Create signed tags for Qhull versions - Wiki: Add FIXUP to QH11026 for known problems - Notes to compgeom on conformant triangulation and Voronoi volume - Set File Ver and Product Ver in dll - For the C++ interface, make qh_qh a parameter instead of a global static This replaces qh_QHpointer. It simplifies multithreading. - Compute the convex hull of each Voronoi or Delaunay region - Performance test of qset and qhull - qh-get.htm: List the Window OSs for Qhull [T. Winkler] - Reconsider Qhull version numbering (e.g., Traveler 4/5/12) ------------ Qhull - Rename debugging routines dfacet/dvertex to qh_dfacet/qh_dvertex - Rename rbox routines to qh_roundi/qh_out1/qh_out2n/qh_out3n - Rename dfacet and dvertex to qh_dfacet and qh_dvertex - Replace 'qhmem .zzz' with 'qhmem.zzz' - Removed spaces between function and parentheses - Rename 'enum statistics' to 'enum qh_statistics' - - Rename 'qh_rand_seed' to 'qh_last_random' + - Rename 'qh_rand_seed' to 'qh_last_random'. Declare it as DATA + - Declare rbox as DATA in qhull-exports.def and qhull_p-exports.def - In comments, use 'qh.zzz' to reference qhT fields - In qh_fprintf, use qhmem.ferr to report errors - qh_fprintf may be called for errors in qh_initstatistics and qh_meminit - After qh_meminit, qhmem.ferr is non-zero qhullr - - Removed qh_save_qhull(), qh_restore_qhull(), and qh.old_qhstat from global_r.c - - Removed qh_freeqhull2() (global_r.c) - - Removed old code from unix_r.c and rbox_r.c for __POWERPC__ - - qh_rand_seed is a global (random_r.c) + - Remove qh_save_qhull(), qh_restore_qhull(), and qh.old_qhstat from global_r.c + - Remove qh_freeqhull2() (global_r.c) + - Remove conditional code for __POWERPC__ from unix_r.c and rbox_r.c + - Move qh_last_random into qh->last_random (random_r.c) - Rename sources files with a '_r' suffix - Replace 'qh' macro with 'qh->' - Replace global qhT with parameter-0 - Add qhmemT to beginning of qhT. It may not be used standalone. - Add qhstatT to end of qhT - Remove qhull_inuse - Change qhmem.zzz to qh->qhmem.zzz - Replace qh_qhstat with qh->qhstat - Remove qh_freestatistics - Replace qh_last_random with qh->last_random - Replace rboxT with qh->rbox_errexit, rbox_isinteger, rbox_out_offset - Replace rbox.ferr/fout with qh->ferr/fout - No qh for qh_exit, qh_free, qh_malloc, qh_strtod, qh_strtol, qh_stddev + - New qmake include files qhull-app-c_r.pri, qhull-app-shared_r.pri, qhull-libqhull-src_r.pri + +C++ interface + - Reimplement C++ interface on reentrant libqhullr instead of libqhull + - Renamed libqhullcpp to libqhullpcpp + - Renamed qhulltest to qhullptest + - Renamed qhull-app-cpp.pri to qhull-app-cpp_p.pri Qhull 2012.1 2012/02/18 6.3.1.1494 - Fix CMakeLists for libqhull with MATCHES [P. Gajdos] ------------ Qhull 2012.1 2012/02/18 6.3.1.1490 Code changes - Require option 'Qz' for Delaunay triangulation/Voronoi diagram of cocircular/cospherical points [D. Sheehy] - qh_errexit: Do not call qh_printsummary or qh_printstats on qh_ERRinput - Change error QH6227 (all degenerate) from qh_ERRinput to qh_ERRprec - Change error QH6159 (ID overflow) from qh_ERRinput to qh_ERRqhull - eg/q_eg, q_egtest, q_test: Run if qconvex is in $PATH [M. Atzeri] Build changes [M. Atzeri] - Install to share/doc/qhull instead of share/doc/packages/qhull - On Unix systems, install to share/man/man1 instead of man/man1 - CMakeLists: Remove the installation of user_eg* and testqset - CMakeLists: Remove VERSION from qhull executables and libraries - CMakeLists: Define qhull_SOVERSION instead of qhull_MAJOR - CMakeLists: Set SOVERSION for shared libraries - Rename libraries to qhull, qhull_d, qhull_p, and qhull_pd libqhull6_p.vcproj is now libqhull_p.vcproj mingw builds as libqhull.dll cygwin builds as cygqhull-6.dll linux builds as libqhull.so.6.3.1 with symbolic link as libqhull.so - Developers using qhull 2011: libqhull6.so is now libqhull_p.so. Do not use libqhull.so. qhull6.dll is now qhull_p.dll. Do not use qhull.dll. - Merged road/ into libqhullcpp/ and qhulltest/ Moved RoadLogEvent.* and RoadError.* to libqhullcpp Moved RoadTest.* to qhulltest (requires Qt) Installed RoadTest.h in libqhullcpp Doc changes - index.htm: Mathworks uses qhull for n-d - qhull.htm: Fix qhull for qconvex - qdelaun.htm/qvoronoi.htm: Use option 'Qz' for circular/cospherical inputs - make help: Display targets - Makefile: Better messaging ------------ Qhull 2012.1 2012/02/02 6.3.0.1483 Bug fixes - Fixed qset.c for -fno-strict-aliasing. This gcc option is no longer needed (disallow two pointers of differing types to the same memory location) - Fixed error in qh_setappend_set if first set full and second set empty - qh_setdelnth, qh_setdelnth_sorted: fixed wording of error message - qh_setcheck: error message listed size and max backwards. - qh_setequal: Allow NULL set as documented - qh_setindex: Allow NULL set as documented - qh_settemppush: report error if NULL Code changes - Add testqset: low level test of qset.c with mem.c - qh_setendpointer: Implements QSet::endPointer() - Assigned unique error code for qh_gethash Build changes - Added qhull.dll(.so) for Octave and other Debian builds The global data structure qh_qh is statically defined (no qh_QHpointer) Linked user_eg2 with qhull.dll (libqhull.so) instead of qhullstatic Added qh_dllimport to libqhull.h for qhull.dll with MSVC Changed qhull-app-shared.pri to use libqhull (without qh_QHpointer) - Renamed libqhull6.so to libqhull6_p.so Renamed qhull6.dll to qhull6_p.dll The _p libraries (e.g., libqhull6_p.so) require -Dqh_QHpointer Renamed qhull6.vcproj to libqhull6_p.vcproj Added libqhullp/libqhullp.pro for shared library (libqhull6_p.so) Added qhull-app-sharedp.pri for shared libraries with qh_QHpointer - Install libqhull/*.htm files into include/libqhull - Removed libqhull/qhull.h-deprecated [J. Eaton] - Other changes to Makefile builds Added 'make qtestall' as a smoketest of each qhull program src/libqhull/Makefile: Use 'ar -rs ...' instead of ranlib src/libqhull/Makefile: Fixed targets for cleanall - Other changes to DevStudio builds Moved pdb files for qhull libraries to lib/ AdditionalIncludeDirectories: Removed ../src/libqhullcpp Use build-cmake/ for the DevStudio CMake build - Other changes to Qt builds Renamed qhull-libsrc.pri to qhull-libqhull-src.pri - Added explicit d2u conversions to qhull-zip.sh - Fixed \n vs. \r\n issues for Windows source files Draft of Debian/AutoConf build (untested) - Adjusted the Makefile.am's for the new directory structure. - Added testqset to bin_PROGRAMS - config/bootstrap.sh copies program sources into src/libqhull - Kept qh_QHpointer=0 (static global data structure, qh_qh). It is faster. Planning a new interface (qhull7?) which passes qh_qh as a parameter - Added config/changelog from the 2003.1 Debian build - Moved the debian/patches directory to config/ Optional patches to change smoketest message and turn on qh_QHpointer - Deleted the debian directory. It was the old Debian build from 2003.1 Rafael Laboissiere's config directory replaced this build.. - Deleted Make-conf.sh (also the old Debian build) Doc changes - FAQ: Updated notes on computing volume of a Voronoi region - Added direct link to ACM Digital Library for downloading the qhull paper - Added link to Qhull in R - qset.c: Updated notes about NULL sets - qh_setappend: clarify qh_setappend for NULL newelem - qh_setdellast: Fix head note - Add build/README.txt - Add uninstall instructions to README.txt and CMakeLists.txt - Added instructions to create build/*.vcproj to CMakeLists.txt - Update copyright to 2012 - Updated page links. Added Google books, patents, and blogs. ----------- Qhull 2009.1.3 2011/12/06 configure: Add -fno-strict-aliasing if $GCC, Required for gcc 4.1+ ------------ Qhull 2011.2 2011/11/29 6.2.1.1446 Bug fixes - qh_new_qhull: Call qh_prepare_output if !outfile [A. Aldoma] No effect on qhull users since qh_prepare_output is always called. - Replace Qhull-go.pif with Qhull-go.lnk for Windows 7 64-bit [lots] - Error if qh_newhashtable, qh_setnew, or qh_memalloc overflows [X. Cheng] For example, 'rbox 64 D32' overflows hash table for qh_matchnewfacets Qhull uses 32-bit ints for identifiers, counts, and sizes. See "WARN64" - q_eg, q_test: change tail +3 to tail -n +3 [N. Dubray, M. Atzeri] - Qhull-go.bat: Changed 'cmd' to '%comspec%' Build changes - Added src/libqhull/Makefile for simple gcc build of executables and lib - qhulltest.vcproj: Replaced full path to QT with $QTDIR (e.g., c:/qt/4.7.4) - Split userprintf_rbox.c from userprintf.c, Otherwise qhull brings in rboxlib and rbox brings in libqhull - Makefile: qhullx target must be after LIBQHULLS_OBJS - Makefile: Explicitly list rbox dependencies for qhullx target - MBorland: Fixed tabs - Placed $LIBQHULLS_OBJS in same order. Frequently called ones together. - Update file lists for Make-config.sh [O. Lahaye] - CMakeLists: add README.txt,etc. to DOC_INSTALL_DIR [M. Atzeri] - Restored qhull.h-deprecated. qhull.h conflicts with Qhull.h on Windows systems [C. Abela] - make-config.sh: Add warning that it is out-of-date - Remove extra space in '#! /bin/sh' in q_eg, etc. [P. Cheeseman] Source changes - libqhull.h: Added qh_True and qh_False for True/False [A. Mutzel] Did not remove or replace True/False since it is used everywhere - Moved error message from qh_argv_to_command to caller. Avoids dependency. - user_eg3.c: Use '10 D2' as default rbox (e.g., 'user_eg3 rbox qhull d') - user.c, user_eg2.c: Add test of qh_qh as done in user_eg.c - q_test: Removed duplicate test of qhull C-0.02 Documentation - index.html: Added ACM Authorizer link to ACM Trans. Math. Software - Split Delaunay and Voronoi FAQs - FAQ: How to compute the volume of a Voronoi region [C, Brinch] - Add 'FS' to qconvex prompt (total area and volume) - Add clarification to 'Fv' about corner input sites [O. Can] - Qhull-go.bat: Removed out-of-date advice. Added title. - qh-code.htm: Updated the discussion of multi-threading for C++ [I. Pirwani] Qhull 2009.1.2 2011/11/21 - Revert to LF line endings [P. Cheeseman] - Remove out-of-date material from qhull-go.bat - Replaced QHULL-GO with a lnk file Qhull 2011.1 2011/05/23 6.2.0.1385 (exe/dll files unchanged) - delaunay.vcproj: Fixed qhullstatic_d.lib for debug and minrelsize builds - Did not redate the distribution Qhull 2011.1 2011/05/18 6.2.0.1385 (exe/dll files unchanged) - Add 'm' library to shared and static targets on Unix [A. Bouchard] Qhull 2011.1 2011/05/14 6.2.0.1383 (exe/dll files unchanged) - PointCoordinates.cpp: Add #include [R. Richter, S. Pasko] - Remove deprecated libqhull/qhull.h Use libqhull/libqhull.h instead. Avoids confusion with libqhullcpp/Qhull.h - Makefile: Add LIBDIR, INCDIR, and DESTDIR to install [L.H. de Mello] Separate MAN install from DOC install Create install directories Installs headers to include/libqhull, include/libqhullcpp, include/road - CMakeLists.txt: Add MAN_INSTALL_DIR for qhull.1 and rbox.1 man pages Add RoadTest.h to include/road for Qt users (road_HEADERS) - Renamed md5sum files to avoid two extensions - qh-get.htm: Add Readme links and 2009.1 note. - qh-optf.htm: Fix link - index.htm: Updated Google Scholar link - qhull-zip.sh: Improved error message. ------------ Qhull 2011.1 2011/04/17 6.2.0.1373 Changes to deliverables - qvoronoi: Deprecated 'Qt' and 'QJn'. Removed from documentation and prompts. These options produced duplicate Voronoi vertices for cospherical data. - Removed doskey from Qhull-go.bat. It is incompatible with Windows 7 - Added 'facets' argument to user_eg3.cpp - user_eg links with shared library - qhulltest.cpp: Add closing prompt. Changes to build system - Reorganized source directories - Moved executables to bin directory - Add CMake build for all targets (CMakeFiles.txt) [M. Moll assisted] - Add gcc build for all targets (Makefile) - Fixed location of qhull.man and rbox.man [M. Moll] - Add DevStudio builds for all targets (build/*.vcproj) - Added shared library (lib/qhull6.dll) Added qh_QHpointer_dllimport to work around problems with MSVC - Added static libraries with and without qh_QHpointer (lib/qhullstatic.lib) - Added eg/make-vcproj.sh to create vcproj/sln files from cmake and qmake - Document location of qh_QHpointer - Use shadow build directory - Made -fno-strict-aliasing conditional on gcc version - Added src/qhull-app-cpp.pri, src/qhull-app-c.pri, etc. for common settings - Add .gitignore with ignored files and directories. - Use .git/info/exclude for locally excluded files. - Fixed MBorland for new directory structure Changes to documentation - qvoronoi.htm: Remove quotes from qvoronoi example - qhull-cpp.xml: Add naming conventions - index.htm: Add Google Scholar references - qh-optf.htm: Add note about order of 'Fn' matching 'Fv' order [Q. Pan] - Add patch for old builds in qh-get.htm - Added C++ compiling instructions to README.txt - Add instructions for fixing the DOS window - Changed DOS window to command window - Fixed html links - qh-get.htm: Dropped the Spanish mirror site. It was disabled. Changes to C code - mem.h: Define ptr_intT as 'long long' for Microsoft Windows _win64 builds. On Linux and Mac, 'long' is 64-bits on a 64-bit host - Added qh_QHpointer_dllimport to work around MSVC problem - qconvex.c,etc.: Define prototype for _isatty - Define MSG_QHULL_ERROR in user.h - Move MSG_FIXUP to 11000 and updated FIXUP QH11... Changes to test code - Add note to q_test than R1e-3 may error (qh-code.htm, Enhancements) - Add test for executables to q_eg, etc. - Fixed Qhull-go.bat. QHULL-GO invokes it with command.com, Changes to C++ interface - QhullFacet: Added isSimplicial, isTopOrient, isTriCoplanar, isUpperDelaunay - Added Qhull::defineVertexFacetNeighbors() for facetNeighbors of vertices. Automatically called for facet merging and Voronoi diagrams Do not print QhullVertex::facetNeighbors is !facetNeighborsDefined() - Add Fixup identifiers - QhullError: Add copy constructor, assignment operator, and destructor - Add throw() specifiers to RoadError and QhullError - Renamed RoadError::defined() to RoadError::isDefined() - Add #error to Qhull.h if qh_QHpointer is not defined Changes to C++ code - Fixed bug reported by renangms. Vertex output throws error QH10034 and defineVertexNeighbors() does not exist. - Define QHULL_USES_QT for qt-qhull.cpp [renangms] - Reviewed all copy constructors and copy assignments. Updated comments. Defined Qhull copy constructor and copy assignment [G. Rivet-Sabourin] Disabled UsingQhullLib default constructor, copy construct, and copy assign - Merged changes from J. Obermayr in gitorious/jobermayrs-qhull:next - Fix strncat limit in rboxlib.c and global.c - Changes to CMakeLists.txt for openSUSE - Fixed additional uses of strncat - Fixed QhullFacet::PrintRidges to check hasNextRidge3d() - Removed gcc warnings for shadowing from code (src/qhull-warn.pri) - Removed semicolon after extern "C" {...} - Removed experimental QhullEvent/QhullLog - Use fabs() instead of abs() to avoid accidental conversions to int - Fixed type of vertex->neighbors in qh_printvoronoi [no effect on results] - Removed unnecessary if statement in qh_printvoronoi ------------ qhull 2010.1 2010/01/14 - Fixed quote for #include in qhull.h [U.Hergenhahn, K.Roland] - Add qt-qhull.cpp with Qt conditional code - Add libqhullp.proj - Add libqhull5 to Readme, Announce, download - Reviewed #pragma - Reviewed FIXUP and assigned QH tags - All projects compile with warnings enabled - Replaced 'up' glyphs with » - Moved cpp questions to qh-code.htm#questions-cpp - Moved suggestions to qh-code.htm#enhance - Moved documentation requests to qh-code.htm#enhance - Add md5sum file to distributions - Switched to DevStudio builds to avoid dependent libraries, 10% slower Removed user_eg3.exe and qhullcpp.dll from Windows build Fix qhull.sln and project files for qh_QHpointer - Add eg/qhull-zip.sh to build qhull distribution files ------------ qhull 2010.1 2010/01/10 - Test for NULL fp in qh_eachvoronoi [D. Szczerba] qhull 2010.1 2010/01/09 Changes to build and distribution - Use qh_QHpointer=0 for libqhull.a, qhull, rbox, etc. Use -Dqh_QHpointer for libqhullp.a, qhullcpp.dll, etc. qh_QHpointer [2010, gcc] 4% time 4% space, [2003, msvc] 8% time 2% space - Add config/ and project/debian/ for Autoconf build [R. Laboissiere] from debian branch in git and http://savannah.nongnu.org/cvs/?group=qhull - Add CMakeLists.txt [kwilliams] - Fix tabs in Makefile.txt [mschamschula] - Add -fno-strict-aliasing to Makefile for gcc 4.1, 4.2, and 4.3 qset segfault - Remove user_eg.exe and user_eg2.exe from Windows distribution - Order object files by frequency of execution for better locality. Changes to source - Remove ptr_intT from qh_matchvertices. It was int since the beginning. - user.h requires for CLOCKS_PER_SEC - Move ostream<