From 95c060cf8a608a1fd6e67b97abff999a509402ff Mon Sep 17 00:00:00 2001 From: Brad Barber <bradb@shore.net> Date: Sat, 9 Jan 2010 21:44:13 -0500 Subject: [PATCH] Qhull 2010.1 2010/01/09 Updated version. Checked into Perforce. --- Announce.txt | 2 +- README.txt | 123 ++++++++++++++++++++++++++----------------- cpp/QhullFacetList.h | 4 +- cpp/QhullFacetSet.h | 4 +- index.htm | 2 +- src/Changes.txt | 50 ++++++++++++++---- src/global.c | 6 +-- src/libqhull.h | 4 +- 8 files changed, 128 insertions(+), 67 deletions(-) diff --git a/Announce.txt b/Announce.txt index 2974ac8..3ba75c7 100644 --- a/Announce.txt +++ b/Announce.txt @@ -1,5 +1,5 @@ - Qhull 2010.1 2010/01/07 + Qhull 2010.1 2010/01/09 http://www.qhull.org git@gitorious.org:qhull/qhull.git diff --git a/README.txt b/README.txt index 14b2f64..032e646 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,6 @@ Name - qhull, rbox 2010.1 2010/01/07 + qhull, rbox 2010.1 2010/01/09 Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection @@ -12,13 +12,14 @@ Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection <http://www.qhull.org> <git@gitorious.org:qhull/qhull.git> - Version 1 (simplicial only): - <http://www.qhull.org/download/qhull-1.0.tar.gz> - News and a paper: <http://www.qhull.org/news> <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.117.405> + Version 1 (simplicial only): + <http://www.qhull.org/download/qhull-1.0.tar.gz> + + Purpose Qhull is a general dimension convex hull program that reads a set @@ -34,15 +35,14 @@ Purpose Qhull produces graphical output for Geomview. This helps with understanding the output. <http://www.geomview.org> - 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 is based on - QTestLib from Nokia's Qt Framework. For 2010, Qhull's C++ interface + Qhull's C++ interface uses the STL. The C++ test program uses QTestLib + from Nokia's Qt Framework. For 2010, Qhull's C++ interface may change without notice. Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt @@ -54,10 +54,17 @@ To cite Qhull, please use algorithm for convex hulls," ACM Trans. on Mathematical Software, 22(4):469-483, Dec 1996, http://www.qhull.org. -Qhull on Windows +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 + +----------------- +Installing Qhull on Windows The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaunay.exe, - qhalf.exe, qvoronoi.exe, documentation files, and source files. + qhalf.exe, qvoronoi.exe, user_eg3.exe, documentation files, and source files. To install Qhull: - Unzip the files into a directory. You may use WinZip32 <www.hotfiles.com> @@ -74,36 +81,70 @@ Qhull on Windows - 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 + - 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 contribute to Qhull +----------------- +Installing Qhull on Unix with gcc - Qhull is on Gitorious (http://gitorious.org:qhull, git@gitorious.org:qhull/qhull.git) + The tgz tarball contains documentation and source files. - For internal documentation, see html/qh-code.htm - -Compiling with cygwin on Windows - - install cygwin [www.cygwin.com] with gcc, make, ar, and ln + To install Qhull + - Extract the files - cd qhull/src - - make -f Makefile.txt + - make + - or, make -f Makefile.txt -Compiling with Qt on Windows or Unix +----------------- +Installing Qhull with Autoconf + + The tar.gz tarball contains documentation, source files, + and a config directory [R. Laboissiere]. - Download Qt SDK from Nokia. - Start Qt Creator - Load project/qhull-all.pro - Build all + To install Qhull + - Extract the files + - ./configure + - make + - make install -Compiling on Windows +----------------- +Compiling Qhull with Qt - Qhull compiles as a console application in Visual C++ 5.0 at warning - level 3. + Qt is a C++ framework for Windows, Linux, and Macintosh - Visual C++ quickstart for qhull library, qhull.exe, qconvex.exe, etc. - - Load project/qhull.sln - - Build->Build all - + Qhull includes a C++ test using Qt's QTestLib + + To compile Qhull + - Download the Qt SDK from Nokia (http://qt.nokia.com/downloads) + - Start Qt Creator + - Load project/qhull-all.pro + - Build all + +----------------- +Compiling Qhull on Windows. + + To compile Qhull with Visual C++ + - Load solution project/qhull.sln + - For project qhulltest, + install Qt for DevStudio (http://qt.nokia.com/downloads) + - Build->Build all + + To compile Qhull with MINGW + - Install Road Bash (http://www.qhull.org/bash) + - or install MSYS (http://www.mingw.org/wiki/msys) + - Install MINGW (http://www.mingw.org/) + - cd src + - make + - or, make -f Makefile.txt + + To compile Qhull with cygwin + - Install cygwin (http://www.cygwin.com) + - Include packages for gcc, make, ar, and ln + - cd src + - make + - or, make -f Makefile.txt + +----------------- Compiling the source distribution The gzip file, qhull-src.tgz, contains documentation and source files for @@ -156,24 +197,9 @@ Compiling the source distribution - define MANDIR and BINDIR - type 'make install' -Qhull on Unix (Debian) - - [Jan 2009] Not available yet for Qhull 2010.1 - - The gzip file, qhull.tar.gz, contains documentation and source files for - qhull and rbox. It should compile on all Unix systems, including Debian. - You may also use the source instructions below. - - To unpack the gzip file - - tar zxf qhull.tar.gz - - cd qhull - - Compile with the configure Makefile [R. Laboissiere]: - - ./configure - - make - If you need to create a custom build, create projects as follows. -These instructions assume Visual C++, but similar ones also apply. +These instructions assume Visual C++, but similar ones apply to other +build systems. For qhull.exe and rbox.exe only: - create a "console application" called "qhull" @@ -225,6 +251,7 @@ These instructions assume Visual C++, but similar ones also apply. - Add the library file created by "libqhullcpp" - create a "Win32 console application" called "qhulltest" + - Install Qt for DevStudio (http://qt.nokia.com/downloads) - Add everything in cpp/qhulltest - Add road/RoadTest.cpp @@ -267,6 +294,7 @@ Compiling on other machines You may compile Qhull with a C++ compiler. +----------------- Distributed files README.txt // instructions for installing Qhull @@ -458,6 +486,7 @@ cpp/road/ RoadTest.cpp RoadTest.h +----------------- Authors: C. Bradford Barber Hannu Huhdanpaa diff --git a/cpp/QhullFacetList.h b/cpp/QhullFacetList.h index e817708..2f14a84 100644 --- a/cpp/QhullFacetList.h +++ b/cpp/QhullFacetList.h @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2008-2010 C.B. Barber. All rights reserved. -** $Id: //product/qhull/main/rel/cpp/QhullFacetList.h#23 $$Change: 1167 $ -** $DateTime: 2010/01/08 19:03:17 $$Author: bbarber $ +** $Id: //product/qhull/main/rel/cpp/QhullFacetList.h#25 $$Change: 1172 $ +** $DateTime: 2010/01/09 21:42:16 $$Author: bbarber $ ** ****************************************************************************/ diff --git a/cpp/QhullFacetSet.h b/cpp/QhullFacetSet.h index 9e0e6cb..c250ad7 100644 --- a/cpp/QhullFacetSet.h +++ b/cpp/QhullFacetSet.h @@ -1,8 +1,8 @@ /**************************************************************************** ** ** Copyright (C) 2008-2010 C.B. Barber. All rights reserved. -** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.h#21 $$Change: 1167 $ -** $DateTime: 2010/01/08 19:03:17 $$Author: bbarber $ +** $Id: //product/qhull/main/rel/cpp/QhullFacetSet.h#23 $$Change: 1172 $ +** $DateTime: 2010/01/09 21:42:16 $$Author: bbarber $ ** ****************************************************************************/ diff --git a/index.htm b/index.htm index 38f28c8..f0b33ce 100644 --- a/index.htm +++ b/index.htm @@ -51,7 +51,7 @@ and higher. </p> <ul> <li><a href="http://www.qhull.org/news">News</a> and <a href="http://www.qhull.org/news/qhull-news.html#bugs">Bugs</a> - about Qhull 2010.1 2010/01/07</li> + about Qhull 2010.1 2010/01/09</li> <li><a href="http://www.qhull.org/download">Download</a> Qhull</li> <li><a diff --git a/src/Changes.txt b/src/Changes.txt index 3c72e94..d7f37d0 100644 --- a/src/Changes.txt +++ b/src/Changes.txt @@ -25,7 +25,6 @@ To do for documentation - QhullVertex.dimension() is not quite correct, epensive - Check globalAngleEpsilon - Deprecate save_qhull() - - Review email for doc changes To do for suggestions C++ class for access to statistics, accumulate vs. add @@ -94,35 +93,48 @@ To do - Number the FIXUPS - clean up warnings for libqhullcpp - get copy of unused - + - Review email archives for doc changes + +------------ Need help + - The C++ interface needs work. Give it a try and make it better. - Set up debian build. Please keep debian files in config/ and project/debian/ Branch 'debian' is from http://savannah.nongnu.org/cvs/?group=qhull project/debian needs updating for its new location. It was at qhull's level. - Add CMakeLists.txt for qhullcpp, user_eg3, cpp/, and cpp/road If practical, please move to project/ - - The C++ interface needs work. Give it a try and make it better. - Verify -fno-strict-aliasing needed for gcc 4.1, 4.2, and 4.3 (qset segfault) +------------ qhull 2010.1 2010/01/09 -- Remove user_eg.exe and user_eg2.exe from Windows distribution -- Remove ptr_intT from qh_matchvertices. It was int since the beginning. + +Changes to build and distribution - Use qh_QHpointer=0 for libqhull.a, qhull, rbox, etc. Use -Dqh_QHpointer for libqhullp.a, qhullcpp.dll, etc. - Cost of qh_QHpointer: [2003, msvc] 8% time 2% space, [2010, gcc] 4% time 4% space -- user.h requires <time.h> for CLOCKS_PER_SEC + qh_QHpointer costs: [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] -- Order object files by frequency of execution for better locality. - 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 <time.h> for CLOCKS_PER_SEC +- Move ostream<<QhullFacetList from inline to compiled. - Removed ConvexHull/ from git. Not used. +------------ qhull 2009.1.1 2010/01/09 - Patch release of 2009.1. qh_gethash allowed a negative result, causing overwrite or segfault See git:qhull/project/patch/qhull-2003.1/poly.c-qh_gethash.patch Compared results of q_test, q_eg, and q_egtest with patched poly.c, qhull-2003.1 +------------ qhull 2010.1 2010/01/07 - Assign type to qh.old_qhstat and memT.tempstack [amorilia] - Replace tabs with spaces. @@ -140,8 +152,8 @@ qhull 2010.1 2010/01/06 Combined vcproj/ and qtproj/ into project/ vcproj will be replaced by qmake generated files +------------ qhull 2010.0.3 2010/01/05 - Fixed bugs - 'QJn' (joggle): Fix qh.STOPcone in qh_build_withrestart(). It was not cleared. - qh_initqhull_outputflags [global.c]: warn about Qc only if QHULLfinished, otherwise set if needed @@ -294,6 +306,7 @@ Documentation: - Proposed project: computing Voronoi volumes - Replaced tabs with spaces in qhull.txt and rbox.txt +------------ qhull 2009.1 2009/6/11 This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>. @@ -307,6 +320,7 @@ This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>. automake/aclocal (1.10.2), and libtool (2.2.6) - Some character issues in the man pages are fixed +------------ qhull 2003.1 2003/12/30 New Features: @@ -369,6 +383,7 @@ Changes to examples - Fixed options for eg/eg.t23.voronoi.imprecise [B. Pearlmutter] +------------ qhull 2002.1 2002/8/20 Changes to distribution: @@ -409,6 +424,7 @@ URL updates: - Changed URL for locate/cglist to software/cglist - Used site relative links for qh-home.htm +------------ qhull 3.1 2001/10/04 New features @@ -519,6 +535,7 @@ Changes to Qhull library 'FP' may not print the nearest vertex for coplanar points Use option 'Q11' when adding points after qh_triangulate() +------------ qhull 3.0 2001/02/11 Changes to distribution @@ -584,6 +601,7 @@ Changes to FAQ - added FAQ item on meshing non-convex objects - added FAQ item on MATLAB and Mathematica interface +------------ qhull 2.6 1999/04/19 - fixed memory overwrite (no effect) in qh_initstatistics() [K. Ford] - added zdoc11 to qh-stat.h#ZZdef for !qh_KEEPstatistics [K. Ford] @@ -597,6 +615,7 @@ qhull 2.6 1999/04/19 - added FAQ item about on-line processing with the Qhull library [O. Skare] - changed name of option 'Error-roundoff' to 'Distance-roundoff' +------------ qhull 2.6 1998/12/30 - for the unbounded rays of the Voronoi diagram, use a large box [Schmidt] e.g., 'rbox P4,4,4 P4,2,4 P2,4,4 P4,4,2 10 | qhull v Fv' fails for point 0 @@ -616,6 +635,7 @@ qhull 2.6 1998/12/30 - the DOS window in Windows NT is better than the DOS window in Windows 95 - removed obsolete qh_findfacet() from qh-c.htm [Sminchisescu] +------------ qhull 2.6 1998/8/12 new and modified features - rbox: added option Mn,m,r to generate a rotated lattice or mesh @@ -652,6 +672,7 @@ qhull 2.6 1998/8/12 - removed 'qh rand_seed' since random number generator is independent of qhull - dropt 'qhull-PPC.sit.bin' from the distribution (out-of-date) [M. Harris] +------------ qhull 2.5 1998/5/4 fixed errors @@ -669,6 +690,7 @@ qhull 2.5 1998/5/4 - added example of 3-d Delaunay triangulation to q-faq.htm - added Delaunay and Voronoi examples to qh-optv.htm +------------ qhull 2.5 1998/2/4 - added option 'v Fi' for separating hyperplanes of bounded Voronoi regions - added option 'v Fo' for separating hyperplanes of unbounded Voronoi regions @@ -770,6 +792,7 @@ Other changes to Qhull functions - separated qh_distround and qh_detroundoff from qh_maxmin +------------ qhull 2.4 97/4/2 New or modified features @@ -829,6 +852,7 @@ Changes to the Qhull library - added request for unbounded Voronoi rays to Enhancements please let me know if you try this +------------ qhull V2.3 96/6/5 - fixed total area of Delaunay triangulation. [A. Enge] It should ignore facets on the upper-envelope. @@ -868,6 +892,7 @@ qhull V2.3 96/6/5 - fixed qh_projectinput for furthest-site Delaunay (qh PROJECTdelaunay 'd Qu') - added voids to procedure declarations with empty parameter lists +------------ qhull V2.3 96/3/25 - fixed missing qh_check_maxout when coplanar points and no merged facets. - fixed qh_freeqhull/allmem (e.g., if qh_NOmem) [only custom code] [E. Voth] @@ -883,6 +908,7 @@ qhull V2.3 96/3/25 - moved 'FO' print of options to just before qh_buildhull - changed 'FO' to list difference from -1 for _narrow-hull +------------ qhull V2.2 96/2/15 - detect narrow initial hulls (cosine of min angle < qh_MAXnarrow in user.h). Write warning if cosine < qh_WARNnarrow in user.h. If narrow (qh NARROWhull), @@ -902,6 +928,7 @@ qhull V2.2 96/2/15 - added option 'Q9' to always process furthest of furthest outside points. - removed option 'Pp' from q_eg and qh-eg.html. +------------ qhull V2.2 95/12/28 - added option 'Qbb' to scale the last coordinate to [0,m] (max prev coord). This reduces roundoff errors for Delaunay triangulations with integer coordinates. @@ -1039,6 +1066,7 @@ qhull V2.2 95/12/4 - reorganized split between poly/poly2.c and geom/geom2.c - reordered object files in Makefile +------------ qhull V2.1 95/9/25 - converted qhull.man to html format, many edits - referenced Shewchuk's triangle program and Schneiders' Mesh Generation page @@ -1075,6 +1103,7 @@ qhull V2.1 95/9/25 - 'make install' renames qhull.man to qhull.1 for Unix [M. Phillips] - renamed README, etc. to *.txt to match WWW conventions [D. Cervone] +------------ qhull V2.1 7/10/95 - in 2-d, 'v o' lists the vertex at infinity in order [R. Critchlow] - it used to always list the vertex at infinity ("0") first @@ -1237,6 +1266,7 @@ qhull V2.1 beta 5/15/95 - removed horizon preference in qh_merge_nonconvex (qh AVOIDold) - facet->keepcentrum if qh WIDEfacet or qh_MAXnewcentrum extra vertices +------------ qhull V2.02 1/25/95 - rbox 'z' prints integer coordinates, use 'Bn' to change range - fixed rare bug in qh_check_maxout when qh_bestfacet returns NULL @@ -1253,6 +1283,7 @@ qhull V2.02 1/25/95 - added options for qh_RANDOMint in qhull_a.h - changed time format for 'TFn' to %02d +------------ qhull V2.01 6/20/94 - fixed bug in qh_matchnewfacets that occured when memory alignment makes facet->neighbors larger than necessary. @@ -1320,6 +1351,7 @@ qhull V2.01 6/2/94 - updated manual on 'Qg' with coplanar facets and no merging ('rbox c D7') 'Qg Pg' and 'Pg' produce different results because of precision problems +------------ Converting from qhull 1.01 to qhull 2.00 - 'qhull An' is now 'qhull Wn' option 'Wn Po' is faster but it doesn't check coplanars diff --git a/src/global.c b/src/global.c index 256d193..4292663 100644 --- a/src/global.c +++ b/src/global.c @@ -12,8 +12,8 @@ see qhull_a.h for internal functions copyright (c) 1993-2010 The Geometry Center. - $Id: //product/qhull/main/rel/src/global.c#57 $$Change: 1164 $ - $DateTime: 2010/01/07 21:52:00 $$Author: bbarber $ + $Id: //product/qhull/main/rel/src/global.c#58 $$Change: 1172 $ + $DateTime: 2010/01/09 21:42:16 $$Author: bbarber $ */ #include "qhull_a.h" @@ -47,7 +47,7 @@ qhT qh_qh; /* all global variables. recompile user_eg.c, rbox.c, libqhull.c, qconvex.c, qdelaun.c qvoronoi.c, qhalf.c */ -const char *qh_version = "2010.1 2010/01/07"; +const char *qh_version = "2010.1 2010/01/09"; /*-<a href="qh-globa.htm#TOC" >-------------------------------</a><a name="appendprint">-</a> diff --git a/src/libqhull.h b/src/libqhull.h index 9cec975..2bf4435 100644 --- a/src/libqhull.h +++ b/src/libqhull.h @@ -7,8 +7,8 @@ see qh-qhull.htm, qhull_a.h copyright (c) 1993-2010 The Geometry Center. - $Id: //product/qhull/main/rel/src/libqhull.h#7 $$Change: 1167 $ - $DateTime: 2010/01/08 19:03:17 $$Author: bbarber $ + $Id: //product/qhull/main/rel/src/libqhull.h#9 $$Change: 1172 $ + $DateTime: 2010/01/09 21:42:16 $$Author: bbarber $ NOTE: access to qh_qh is via the 'qh' macro. This allows qh_qh to be either a pointer or a structure. An example -- GitLab