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