ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/QuickHull/README.txt
Revision: 1138
Committed: Tue May 29 22:51:00 2007 UTC (18 years, 2 months ago) by chuckv
Content type: text/plain
File size: 12435 byte(s)
Log Message:
Addded QuickHull to cvs.

File Contents

# User Rev Content
1 chuckv 1138 Name
2    
3     qhull, rbox 2003.1 2003/12/30
4    
5     Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
6    
7     Documentation:
8     html/index.htm
9    
10     Available from:
11     <http://www.qhull.org>
12     <http://savannah.nongnu.org/projects/qhull>
13    
14     Version 1 (simplicial only):
15     <http://www.qhull.org/download/qhull-1.0.tar.gz>
16     <http://www.qhull.org/download/qhull.sit.hqx>
17    
18     News and a paper:
19     <http://www.qhull.org/news>
20     <http://citeseer.nj.nec.com/83502.html>
21    
22     Purpose
23    
24     Qhull is a general dimension convex hull program that reads a set
25     of points from stdin, and outputs the smallest convex set that contains
26     the points to stdout. It also generates Delaunay triangulations, Voronoi
27     diagrams, furthest-site Voronoi diagrams, and halfspace intersections
28     about a point.
29    
30     Rbox is a useful tool in generating input for Qhull; it generates
31     hypercubes, diamonds, cones, circles, simplices, spirals,
32     lattices, and random points.
33    
34     Qhull produces graphical output for Geomview. This helps with
35     understanding the output. <http://www.geomview.org>
36    
37    
38     Environment requirements
39    
40     Qhull and rbox should run on all 32-bit and 64-bit computers. Use
41     an ANSI C or C++ compiler to compile the program. The software is
42     self-contained.
43    
44     Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt
45     before using or distributing Qhull.
46    
47     To cite Qhull, please use
48    
49     Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., "The Quickhull
50     algorithm for convex hulls," ACM Trans. on Mathematical Software,
51     22(4):469-483, Dec 1996, http://www.qhull.org.
52    
53     To contribute to Qhull
54    
55     Qhull is on Savannah at http://savannah.nongnu.org/projects/qhull/
56    
57     Qhull on Windows 95, 98, ME, NT, 2000, XP
58    
59     The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaunay.exe,
60     qhalf.exe, qvoronoi.exe, documentation files, and source files.
61    
62     To install Qhull:
63     - Unzip the files into a directory. You may use WinZip32 <www.hotfiles.com>
64     - Click on QHULL-GO
65    
66     - In Windows 95, the DOS window needs improvement.
67     - Increase the size of the screen font to 8x12.
68     - If the text is too dim, fix the screen colors with shareware (e.g., crt.exe)
69     - If you use qhull a lot, consider using the Cygwin Unix shell (www.cygwin.com),
70    
71     To learn about Qhull:
72     - Execute 'qconvex' for a synopsis and examples.
73     - Execute 'rbox 10 | qconvex' to compute the convex hull of 10 random points.
74     - Execute 'rbox 10 | qconvex i TO file' to write results to 'file'.
75     - If an error occurs, Windows 95 sends the error to stdout instead of stderr
76     - use 'TO xxx' to send normal output to xxx and error output to stdout
77     - Browse the documentation: qhull\html\index.htm
78    
79     Compiling with cygwin on Windows NT, 2000, XP
80     - install cygwin [www.cygwin.com] with gcc, make, ar, and ln
81     - cd qhull/src
82     - make -f Makefile.txt
83    
84     Qhull on Unix (Debian)
85    
86     The gzip file, qhull.tar.gz, contains documentation and source files for
87     qhull and rbox. It should compile on all Unix systems, including Debian.
88     You may also use the source instructions below.
89    
90     To unpack the gzip file
91     - tar zxf qhull.tar.gz
92     - cd qhull
93    
94     Compile with the configure Makefile [R. Laboissiere]:
95     - ./configure
96     - make
97    
98     Compiling the source distribution
99    
100     The gzip file, qhull-src.tgz, contains documentation and source files for
101     qhull and rbox.
102    
103     To unpack the gzip file
104     - tar zxf qhull-src.tgz
105     - cd qhull
106    
107     Compiling with Makefile (i.e., Makefile.txt)
108     - cd src
109     - in Makefile, check the CC, CCOPTS1, PRINTMAN, and PRINTC defines
110     - the defaults are gcc and enscript
111     - CCOPTS1 should include the ANSI flag. It defines __STDC__
112     - in user.h, check the definitions of qh_SECticks and qh_CPUclock.
113     - use '#define qh_CLOCKtype 2' for timing runs longer than 1 hour
114     - type: make
115     - this builds: qhull qconvex qdelaunay qhalf qvoronoi rbox libqhull.a
116     - type: make doc
117     - this prints the man page
118     - See also qhull/html/index.htm
119     - if your compiler reports many errors, it is probably not a ANSI C compiler
120     - you will need to set the -ansi switch or find another compiler
121     - if your compiler warns about missing prototypes for fprintf() etc.
122     - this is ok, your compiler should have these in stdio.h
123     - if your compiler warns about missing prototypes for memset() etc.
124     - include memory.h in qhull_a.h
125     - if your compiler is gcc-2.95.1, you need to set flag -fno-strict-aliasing.
126     - This flag is set by default for other versions [Karas, Krishnaswami]
127     - if your compiler reports "global.c: storage size of 'qh_qh' isn't known"
128     - delete the initializer "={0}" in global.c, stat.c and mem.c
129     - if your compiler warns about "stat.c: improper initializer"
130     - this is ok, the initializer is not used
131     - if you have trouble building libqhull.a with 'ar'
132     - try 'make -f Makefile.txt qhullx'
133     - if the code compiles, the qhull test case will automatically execute
134     - if an error occurs, there's an incompatibility between machines
135     - For gcc-2.95.1, you need to set flag -fno-strict-aliasing.
136     It is set by default for other versions of gcc [Karas, Krishnaswami]
137     - If you can, try a different compiler
138     - You can turn off the Qhull memory manager with qh_NOmem in mem.h
139     - You can turn off compiler optimization (-O2 in Makefile)
140     - If you find the source of the problem, please let us know
141     - if you have Geomview (www.geomview.org)
142     - try 'rbox 100 | qconvex G >a' and load 'a' into Geomview
143     - run 'q_eg' for Geomview examples of Qhull output (see qh-eg.htm)
144     - to install the programs and their man pages:
145     - define MANDIR and BINDIR
146     - type 'make install'
147    
148     Compiling on Windows 95, 98, NT, 2000, XP
149    
150     Qhull compiles as a console application in Visual C++ 5.0 at warning
151     level 3.
152    
153     Visual C++ quickstart for qhull.exe only:
154     - create a "Win32 console application" called "qhull"
155     - add the following files:
156     geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhull.c
157     qset.c stat.c unix.c user.c
158     - create a "Win32 console application" called "rbox"
159     - add rbox.c
160    
161     Visual C++ quickstart for qhull library, qhull.exe, qconvex.exe, etc.
162     - To simplify setting up lots of projects,
163     - create a temporary "Win32 console application" called "source"
164     - add all .c files from .../src/...
165     - In Tools::Options::Tab
166     Set tab size to 8 and indent size to 2
167    
168     - create a "Win32 console application" called "rbox"
169     - move rbox.c from "qhull source"
170     - for Project:Settings..., Link
171     you only need the default libraries
172     - build the project
173    
174     - create a "Win32 static library" called "library"
175     - move these files from "qhull source"
176     geom.c geom2.c global.c io.c mem.c merge.c poly.c poly2.c qhull.c
177     qset.c stat.c user.c
178     - set the library file (use the same for debug and release)
179     - build the project
180    
181     - create a "Win32 console application" called "qhull"
182     - Move unix.c from "qhull source"
183     - Add the library file created by "library"
184     - Qhull does not use other libraries
185    
186     - create a "Win32 console application" called "qconvex"
187     - Move qconvex.c from "qhull source"
188     - Copy the library file from "qhull"
189    
190     - do the same for qdelaun.c, qhalf, qvoronoi.c, user_eg.c, user_eg2.c
191     - delete "qhull sources" since it is no longer needed
192     - use Project:Settings to make any changes
193     - use batch build to rebuild everything
194    
195     Qhull compiles with Borland C++ 5.0 bcc32. A Makefile is included.
196     Execute 'make -f Mborland'. If you use the Borland IDE, set the ANSI
197     option in Options:Project:Compiler:Source:Language-compliance.
198    
199     Qhull compiles with Borland C++ 4.02 for Win32 and DOS Power Pack.
200     Use 'make -f Mborland -D_DPMI'. Qhull 1.0 compiles with Borland
201     C++ 4.02. For rbox 1.0, use "bcc32 -WX -w- -O2-e -erbox -lc rbox.c".
202     Use the same options for Qhull 1.0. [D. Zwick]
203    
204     Qhull compiles with Metrowerks C++ 1.7 with the ANSI option.
205    
206     If you turn on full warnings, the compiler will report a number of
207     unused variables, variables set but not used, and dead code. These are
208     intentional. For example, variables may be initialized (unnecessarily)
209     to prevent warnings about possible use of uninitialized variables.
210    
211     Compiling on the Power Macintosh
212    
213     Qhull compiles on the Power Macintosh with Metrowerk's C compiler.
214     It uses the SIOUX interface to read point coordinates and return output.
215     There is no graphical output. For project files, see 'Compiling for
216     Windows 95'. Instead of using SIOUX, Qhull may be embedded within an
217     application.
218    
219     Version 1 is available for Macintosh computers by download of qhull.sit.hqx
220     It reads point coordinates from a standard file and returns output
221     to a standard file. There is no graphical output.
222    
223    
224     Compiling on other machines
225    
226     Some users have reported problems with compiling Qhull under Irix 5.1. It
227     compiles under other versions of Irix.
228    
229     If you have troubles with the memory manager, you can turn it off by
230     defining qh_NOmem in mem.h.
231    
232     You may compile Qhull with a C++ compiler.
233    
234    
235     Distributed files
236    
237     README.txt // instructions for installing Qhull
238     REGISTER.txt // Qhull registration
239     COPYING.txt // copyright notice
240     QHULL-GO.pif // Windows icon for qhull-go.bat
241     Announce.txt // announcement
242     Changes.txt // change history for Qhull and rbox
243     File_id.diz // package descriptor
244     index.htm // Home page
245     html/qh-faq.htm // Frequently asked questions
246     html/qh-get.htm // Download page
247     html/index.htm // Manual
248     src/Makefile.txt // Makefile for Unix or cygwin 'make'
249     src/Mborland // Makefile for Borland C++/Win32
250     src/Make-config.sh // Create Debian configure and automake
251    
252     src/
253     rbox consists of:
254     rbox.exe // Win32 executable (.zip only)
255     rbox.htm // html manual
256     rbox.man // Unix man page
257     rbox.txt
258     rbox.c // source program
259    
260     qhull consists of:
261     qhull.exe // Win32 executables (.zip only)
262     qconvex.exe
263     qdelaunay.exe
264     qhalf.exe
265     qvoronoi.exe
266     qhull-go.bat // DOS window
267     qconvex.htm // html manuals
268     qdelaun.htm
269     qdelau_f.htm
270     qhalf.htm
271     qvoronoi.htm
272     qvoron_f.htm
273     qh-eg.htm
274     qh-impre.htm
275     qh-in.htm
276     index.htm
277     qh-opt*.htm
278     qh-quick.htm
279     qh--4d.gif,etc. // images for manual
280     qhull.man // Unix man page
281     qhull.txt
282     q_eg // shell script for Geomview examples
283     q_egtest // shell script for Geomview test examples
284     q_test // shell script to test qhull
285    
286     top-level source files:
287     src/index.htm // index to source files
288     qh-...htm // specific files
289     user.h // header file of user definable constants
290     qhull.h // header file for qhull
291     unix.c // Unix front end to qhull
292     qhull.c // Quickhull algorithm with partitioning
293     user.c // user re-definable functions
294     user_eg.c // example of incorporating qhull into a user program
295     user_eg2.c // more complex example
296     qhull_interface.cpp // call Qhull from C++
297    
298     other source files:
299     qhull_a.h // include file for *.c
300     geom.c // geometric routines
301     geom2.c
302     geom.h
303     global.c // global variables
304     io.c // input-output routines
305     io.h
306     mem.c // memory routines, this is stand-alone code
307     mem.h
308     merge.c // merging of non-convex facets
309     merge.h
310     poly.c // polyhedron routines
311     poly2.c
312     poly.h
313     qset.c // set routines, this only depends on mem.c
314     qset.h
315     stat.c // statistics
316     stat.h
317    
318     Authors:
319    
320     C. Bradford Barber Hannu Huhdanpaa
321     bradb@qhull.org hannu@qhull.org
322    
323     The Geometry Center
324     University of Minnesota
325    
326     Qhull 1.0 and 2.0 were developed under NSF grants NSF/DMS-8920161
327     and NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard
328     University. If you find Qhull useful, please let us know.