3 qhull, rbox 2002.1 August 20, 2002
5 Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
11 <http://www.geom.umn.edu/software/qhull>
12 <http://savannah.gnu.org/projects/qhull>
13 <http://www.thesa.com/software/qhull>
15 Version 1 (simplicial only):
16 <http://www.geom.umn.edu/software/qhull/qhull-1.0.tar.gz>
17 <http://www.geom.umn.edu/software/qhull/qhull.sit.hqx>
20 <http://www.geom.umn.edu/~bradb/qhull-news.html>
21 <http://www.geom.umn.edu/software/qhull/qhull-96.ps>
25 Qhull is a general dimension convex hull program that reads a set
26 of points from stdin, and outputs the smallest convex set that contains
27 the points to stdout. It also generates Delaunay triangulations, Voronoi
28 diagrams, furthest-site Voronoi diagrams, and halfspace intersections
31 Rbox is a useful tool in generating input for Qhull; it generates
32 hypercubes, diamonds, cones, circles, simplices, spirals,
33 lattices, and random points.
35 Qhull produces graphical output for Geomview. This helps with
36 understanding the output. <http://www.geomview.org>
39 Environment requirements
41 Qhull and rbox should run on all 32-bit and 64-bit computers. Use
42 an ANSI C or C++ compiler to compile the program. The software is
45 Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt
46 before using or distributing Qhull.
48 To contribute to Qhull
50 Qhull is on Savannah, http://savannah.gnu.org/projects/qhull/
52 Qhull on Windows 95, 98, ME, NT, 2000, XP
54 The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaunay.exe,
55 qhalf.exe, qvoronoi.exe, documentation files, and source files.
58 - Unzip the files into a directory. You may use WinZip32 <www.hotfiles.com>
59 - Open a DOS window for the directory.
60 - In Windows 95, the DOS window needs improvement.
61 - Double-click on qhull\eg\qhull-go.bat to call doskey (arrow keys).
62 - Increase the size of the screen font to 8x12.
63 - If the text is too dim, fix the screen colors with shareware (e.g., crt.exe)
64 - If you use qhull a lot, consider using the Cygwin Unix shell,
65 Cygwin tools (http://sources.redhat.com/cygwin/)
66 - Execute 'qconvex' for a synopsis and examples.
67 - Execute 'rbox 10 | qconvex' to compute the convex hull of 10 random points.
68 - Execute 'rbox 10 | qconvex i TO file' to write results to 'file'.
69 - If an error occurs, Windows 95 sends the error to stdout instead of stderr
70 - use 'TO xxx' to send normal output to xxx and error output to stdout
71 - Browse the documentation: qhull\html\index.htm
75 The gzip file, qhull.tgz, contains documentation and source files for
78 To unpack the gzip file
82 Compiling with the Debian Make:[R. Laboissiere]
89 Compiling with Makefile (i.e., Makefile.txt)
91 - in Makefile, check the CC, CCOPTS1, PRINTMAN, and PRINTC defines
92 - the defaults are gcc and enscript
93 - CCOPTS1 should include the ANSI flag. It defines __STDC__
94 - in user.h, check the definitions of qh_SECticks and qh_CPUclock.
95 - use '#define qh_CLOCKtype 2' for timing runs longer than 1 hour
97 - this builds: qhull qconvex qdelaunay qhalf qvoronoi rbox libqhull.a
99 - this prints the man page
100 - See also qhull/html/index.htm
101 - if your compiler reports many errors, it is probably not a ANSI C compiler
102 - you will need to set the -ansi switch or find another compiler
103 - if your compiler warns about missing prototypes for fprintf() etc.
104 - this is ok, your compiler should have these in stdio.h
105 - if your compiler warns about missing prototypes for memset() etc.
106 - include memory.h in qhull_a.h
107 - if your compiler is gcc-2.95.1, you need to set flag -fno-strict-aliasing.
108 - This flag is set by default for other versions [Karas, Krishnaswami]
109 - if your compiler reports "global.c: storage size of 'qh_qh' isn't known"
110 - delete the initializer "={0}" in global.c, stat.c and mem.c
111 - if your compiler warns about "stat.c: improper initializer"
112 - this is ok, the initializer is not used
113 - if you have trouble building libqhull.a with 'ar'
114 - try 'make -f Makefile.txt qhullx'
115 - if the code compiles, the qhull test case will automatically execute
116 - if an error occurs, there's an incompatibility between machines
117 - For gcc-2.95.1, you need to set flag -fno-strict-aliasing.
118 It is set by default for other versions of gcc [Karas, Krishnaswami]
119 - If you can, try a different compiler
120 - You can turn off the Qhull memory manager with qh_NOmem in mem.h
121 - You can turn off compiler optimization (-O2 in Makefile)
122 - If you find the source of the problem, please let us know
123 - if you have Geomview (www.geomview.org)
124 - try 'rbox 100 | qconvex G >a' and load 'a' into Geomview
125 - run 'q_eg' for Geomview examples of Qhull output (see qh-eg.htm)
126 - to install the programs and their man pages:
127 - define MANDIR and BINDIR
128 - type 'make install'
130 Compiling for Windows NT, 2000, XP with cygwin (www.cygwin.com)
132 - install cygwin with gcc, make, ar, and ln
134 - make -f Makefile.txt
136 Compiling for Windows 95, 98, NT, 2000, XP
138 Qhull compiles as a console application in Visual C++ 5.0 at warning
141 Visual C++ quickstart for qhull.exe:
142 - create a "Win32 console application" called "qhull"
143 - add the following files:
144 geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhull.c
145 qset.c stat.c unix.c user.c
146 - create a "Win32 console application" called "rbox"
149 Visual C++ quickstart for qhull library, qconvex.exe, etc.
150 - To simplify setting up lots of projects,
151 - create a temporary "Win32 console application" called "source"
152 - add all .c files from .../src/...
153 - In Tools::Options::Tab
154 Set tab size to 8 and indent size to 2
156 - create a "Win32 console application" called "rbox"
157 - move rbox.c from "qhull source"
158 - for Project:Settings..., Link
159 you only need the default libraries
162 - create a "Win32 static library" called "library"
163 - move these files from "qhull source"
164 geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhull.c
166 - set the library file (use the same for debug and release)
169 - create a "Win32 console application" called "qhull"
170 - move unix.c from "qhull source"
171 - Set the library file in Project:Settings..., Link
172 - Qhull does not use other libraries
174 - create a "Win32 console application" called "qconvex"
175 - move qconvex.c from "qhull source"
176 - Set the library file in Project:Settings..., Link
178 - do the same for qdelaun.c, qhalf, qvoronoi.c, user_eg.c, user_eg2.c
179 - delete "qhull sources" since it is no longer needed
180 - Set the library file in Project:Settings..., Link
181 - use Project:Settings to make any changes
182 - use batch build to rebuild everything
184 Qhull compiles with Borland C++ 5.0 bcc32. A Makefile is included.
185 Execute 'make -f MBorland'. If you use the Borland IDE, set the ANSI
186 option in Options:Project:Compiler:Source:Language-compliance.
188 Qhull compiles with Borland C++ 4.02 for Win32 and DOS Power Pack.
189 Use 'make -f MBorland -D_DPMI'. Qhull 1.0 compiles with Borland
190 C++ 4.02. For rbox 1.0, use "bcc32 -WX -w- -O2-e -erbox -lc rbox.c".
191 Use the same options for Qhull 1.0. [D. Zwick]
193 Qhull compiles with Metrowerks C++ 1.7 with the ANSI option.
195 If you turn on full warnings, the compiler will report a number of
196 unused variables, variables set but not used, and dead code. These are
197 intentional. For example, variables may be initialized (unnecessarily)
198 to prevent warnings about possible use of uninitialized variables.
200 Compiling for the Power Macintosh
202 Qhull compiles for the Power Macintosh with Metrowerk's C compiler.
203 It uses the SIOUX interface to read point coordinates and return output.
204 There is no graphical output. For project files, see 'Compiling for
205 Windows 95'. Instead of using SIOUX, Qhull may be embedded within an
208 Version 1 is available for Macintosh computers by download of qhull.sit.hqx
209 It reads point coordinates from a standard file and returns output
210 to a standard file. There is no graphical output.
213 Compiling for other machines
215 Some users have reported problems with compiling Qhull under Irix 5.1. It
216 compiles under other versions of Irix.
218 If you have troubles with the memory manager, you can turn it off by
219 defining qh_NOmem in mem.h.
221 You may compile Qhull with a C++ compiler.
226 README.txt // instructions for installing Qhull
227 REGISTER.txt // Qhull registration
228 COPYING.txt // copyright notice
229 Announce.txt // announcement
230 Changes.txt // change history for Qhull and rbox
231 qh-faq.htm // Frequently asked questions
232 qh-home.htm // Home page
233 qh-get.htm // Download page
234 html/index.htm // Manual
235 Makefile.txt // Makefile for Unix or cygwin 'make'
236 MBorland // Makefile for Borland C++/Win32
237 Make-config.sh // Create Debian configure and automake
241 rbox.exe // Win32 executable (.zip only)
242 rbox.htm // html manual
243 rbox.man // Unix man page
245 rbox.c // source program
248 qhull.exe // Win32 executables (.zip only)
253 qhull-go.bat // DOS window
254 qconvex.htm // html manuals
266 qh--4d.gif,etc. // images for manual
267 qhull.man // Unix man page
269 q_eg // shell script for Geomview examples
270 q_egtest // shell script for Geomview test examples
271 q_test // shell script to test qhull
273 top-level source files:
274 src/index.htm // index to source files
275 qh-...htm // specific files
276 user.h // header file of user definable constants
277 qhull.h // header file for qhull
278 unix.c // Unix front end to qhull
279 qhull.c // Quickhull algorithm with partitioning
280 user.c // user re-definable functions
281 user_eg.c // example of incorporating qhull into a user program
282 user_eg2.c // more complex example
283 qhull_interface.cpp // call Qhull from C++
286 qhull_a.h // include file for *.c
287 geom.c // geometric routines
290 global.c // global variables
291 io.c // input-output routines
293 mem.c // memory routines, this is stand-alone code
295 merge.c // merging of non-convex facets
297 poly.c // polyhedron routines
300 qset.c // set routines, this only depends on mem.c
307 C. Bradford Barber Hannu Huhdanpaa
308 bradb@geom.umn.edu hannu@geom.umn.edu
310 c/o The Geometry Center
311 University of Minnesota
313 207 Church Street S.E.
314 Minneapolis, MN 55455
316 This software was developed under NSF grants NSF/DMS-8920161 and
317 NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard
318 University. If you find Qhull useful, please let us know.