README.txt 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  1. Name
  2. qhull, rbox 2020.2 2020/08/31 (8.0.2)
  3. Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
  4. Documentation:
  5. html/index.htm
  6. <http://www.qhull.org/html>
  7. Available from:
  8. <http://www.qhull.org>
  9. <http://www.qhull.org/download>
  10. <http://github.com/qhull/qhull/wiki> (git@github.com:qhull/qhull.git)
  11. News and a paper:
  12. <http://www.qhull.org/news>
  13. <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.117.405>
  14. Version 1 (simplicial only):
  15. <http://www.qhull.org/download/qhull-1.0.tar.gz>
  16. Purpose
  17. Qhull is a general dimension convex hull program that reads a set
  18. of points from stdin, and outputs the smallest convex set that contains
  19. the points to stdout. It also generates Delaunay triangulations, Voronoi
  20. diagrams, furthest-site Voronoi diagrams, and halfspace intersections
  21. about a point.
  22. Rbox is a useful tool in generating input for Qhull; it generates
  23. hypercubes, diamonds, cones, circles, simplices, spirals,
  24. lattices, and random points.
  25. Qhull produces graphical output for Geomview. This helps with
  26. understanding the output. <http://www.geomview.org>
  27. Environment requirements
  28. Qhull and rbox should run on all 32-bit and 64-bit computers. Use
  29. an ANSI C or C++ compiler to compile the program. The software is
  30. self-contained. It comes with examples and test scripts.
  31. Qhull's C++ interface uses the STL. The C++ test program uses QTestLib
  32. from the Qt Framework.
  33. Qhull is copyrighted software. Please read COPYING.txt and REGISTER.txt
  34. before using or distributing Qhull.
  35. To cite Qhull, please use
  36. Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., "The Quickhull
  37. algorithm for convex hulls," ACM Trans. on Mathematical Software,
  38. 22(4):469-483, Dec 1996, http://www.qhull.org.
  39. To modify Qhull, particularly the C++ interface
  40. Qhull is on GitHub
  41. (http://github.com/qhull/qhull/wiki, git@github.com:qhull/qhull.git)
  42. For internal documentation, see html/qh-code.htm
  43. To install Qhull
  44. Qhull is precompiled for Windows 32-bit, otherwise it needs compilation.
  45. Qhull includes Makefiles for gcc and other targets, CMakeLists.txt for CMake,
  46. .sln/.vcproj/.vcxproj files for Microsoft Visual Studio, and .pro files
  47. for Qt Creator. It compiles under Windows with mingw.
  48. (<https://github.com/qhull/qhull/wiki/Qhull-build-systems>)
  49. Install and build instructions follow.
  50. See the end of this document for a list of distributed files.
  51. ------------------
  52. Index
  53. Installing Qhull on Windows 10, 8, 7 (32- or 64-bit), Windows XP, and Windows NT
  54. Installing Qhull on Unix with gcc
  55. Installing Qhull with CMake 2.6 or later
  56. Installing Qhull with Qt
  57. Working with Qhull's C++ interface
  58. Calling Qhull from C programs
  59. Compiling Qhull with Microsoft Visual C++
  60. Compiling Qhull with Qt Creator
  61. Compiling Qhull with mingw/gcc on Windows
  62. Compiling Qhull with cygwin on Windows
  63. Compiling from Makfile without gcc
  64. Compiling on other machines and compilers
  65. Distributed files
  66. Authors
  67. ------------------
  68. Installing Qhull on Windows 10, 8, 7 (32- or 64-bit), Windows XP, and Windows NT
  69. The zip file contains rbox.exe, qhull.exe, qconvex.exe, qdelaunay.exe,
  70. qhalf.exe, qvoronoi.exe, testqset.exe, user_eg*.exe, documentation files,
  71. and source files. Qhull.exe and user-eg3.exe are compiled with the reentrant
  72. library while the other executables use the non-reentrant library.
  73. To install Qhull:
  74. - Unzip the files into a directory (e.g., named 'qhull')
  75. - Click on QHULL-GO or open a command window into Qhull's bin directory.
  76. - Test with 'rbox D4 | qhull'
  77. To uninstall Qhull
  78. - Delete the qhull directory
  79. To learn about Qhull:
  80. - Execute 'qconvex' for a synopsis and examples.
  81. Or 'qconvex --help' or 'qconvex -?'
  82. - Execute 'rbox 10 | qconvex' to compute the convex hull of 10 random points.
  83. - Execute 'rbox 10 | qconvex i TO file' to write results to 'file'.
  84. - Browse the documentation: qhull\html\index.htm
  85. - If an error occurs, Windows sends the error to stdout instead of stderr.
  86. Use 'TO xxx' to send normal output to xxx
  87. To improve the command window
  88. - Double-click the window bar to increase the size of the window
  89. - Right-click the window bar
  90. - Select Properties
  91. - Check QuickEdit Mode
  92. Select text with right-click or Enter
  93. Paste text with right-click
  94. - Change Font to Lucinda Console
  95. - Change Layout to Screen Buffer Height 999, Window Size Height 55
  96. - Change Colors to Screen Background White, Screen Text Black
  97. - Click OK
  98. - Select 'Modify shortcut that started this window', then OK
  99. If you regularly use qhull on a Windows host, install a bash shell such as
  100. https://gitforwindows.org/ # based on MSYS2
  101. https://github.com/git-for-windows/git/wiki
  102. http://www.msys2.org/
  103. https://github.com/msys2/msys2/wiki
  104. [mar'19] Git for Windows v2.21 requires 'qhull --help'
  105. Install in C:\Git\... # Not 'Program Files\...' otherwise './configure && make' fails
  106. www.cygwin.com
  107. www.mingw.org/wiki/msys # for Windows XP
  108. Road Bash (www.qhull.org/bash) # based on MSYS
  109. ------------------
  110. Installing Qhull on Unix with gcc
  111. To build Qhull, static libraries, shared library, and C++ interface
  112. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  113. - make
  114. - export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
  115. - make test
  116. 'make install' installs Qhull at '/usr/local/'. It installs pkg-config files
  117. at '/usr/local/lib/pkgconfig'. Change the install directory with DESTDIR and PREFIX.
  118. To build 32-bit Qhull on a 64-bit host (uses 33% less memory in 4-d)
  119. - make new M32=-m32
  120. To build 32-bit Qhull without -fpic (may be faster, but shared library may fail)
  121. - make new M32=-m32 FPIC=
  122. The Makefiles may be edited for other compilers.
  123. If 'testqset' exits with an error, qhull is broken
  124. A simple Makefile for Qhull is in src/libqhull and src/libqhull_r.
  125. To build the Qhull executables and libqhullstatic
  126. - Extract Qhull from qhull...tgz or qhull...zip
  127. - cd src/libqhull_r # cd src/libqhull
  128. - make
  129. ------------------
  130. Installing Qhull with CMake 2.6 or later
  131. See CMakeLists.txt for examples and further build instructions
  132. To build Qhull, static libraries, shared library, and C++ interface
  133. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  134. - cd build
  135. - cmake --help # List build generators
  136. - cmake -G "<generator>" .. # e.g., for MINGW-w64 -- cmake -G "MSYS Makefiles" ..
  137. - cmake ..
  138. - make
  139. - ctest
  140. - make install # If MSYS or UNIX, default CMAKE_INSTALL_PREFIX is '/usr/local'
  141. # otherwise if WINDOWS, installs to ../bin, ../include, and ../lib
  142. - make uninstall # Delete the files in install_manifest.txt
  143. The ".." is important. It refers to the parent directory (i.e., qhull/)
  144. CMake installs lib/pkgconfig/qhull*.pc for use with pkg-config
  145. If CMAKE_INSTALL_PREFIX is C:/Program Files/qhull, you may need to give 'Users' "full control"
  146. to qhull's sub-directories: bin, doc, include, lib, and man (folder > Properties > Security > Edit > Users).
  147. On Windows, CMake's 64-bit generators have a "Win64" tag. Qhull's data structures
  148. are substantial larger as 64-bit code than as 32-bit code. This may slow down Qhull.
  149. If cmake fails with "No CMAKE_C_COMPILER could be found"
  150. - cmake was not able to find the build environment specified by -G "..."
  151. If cmake's gcc smoketest fails after a Windows update
  152. - Reinstall MINGW-w64 and delete CMakeCache.txt. A Windows update can break gcc process creation for cc1.
  153. ------------------
  154. Installing Qhull with Qt
  155. To build Qhull, including its C++ test program (qhulltest)
  156. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  157. - Load src/qhull-all.pro into QtCreator
  158. - Configure the project to use a Shadow build at the same level as 'src', 'bin', and 'lib'
  159. If, instead, the shadow build is a subdirectory of 'build', Qt Creator will install Qhull in 'build/bin' and 'build/lib'
  160. - Build
  161. - Build qhulltest with a C++11 or later compiler
  162. - qhulltest depends on shared libraries QtCore.a and QtTest.a. They may need to be copied
  163. into the bin directory. On Windows, copy Qt5Core.dll and Qt5Test.dll, e.g., /qt/5.11.2/msvc2017_64/bin
  164. - If qhulltest fails with exit status 127 and no error message,
  165. check for missing Q5Core.dll and Qt5Test.dll
  166. ------------------
  167. Working with Qhull's C++ interface
  168. See html/qh-code.htm#cpp for calling Qhull from C++ programs
  169. Class and method documentation is limited
  170. See html/qh-code.htm#reentrant for converting from Qhull-2012
  171. Examples of using the C++ interface
  172. user_eg3_r.cpp
  173. qhulltest/*_test.cpp
  174. Qhull's C++ interface is likely to change. Stay current with GitHub.
  175. To clone Qhull's next branch from http://github.com/qhull/qhull/wiki
  176. git init
  177. git clone git@github.com:qhull/qhull.git
  178. cd qhull
  179. git checkout next
  180. ...
  181. git pull origin next
  182. Compile qhullcpp and libqhullstatic_r with the same compiler. Both libraries
  183. use the C routines setjmp() and longjmp() for error handling. They must
  184. be compiled with the same compiler.
  185. Qhull provides pkg-config support with build/qhull.pc.in and lib/pkgconfig/qhull*.pc
  186. With back-ticks, you can compile your C++ program with the Qhull libraries:
  187. g++ `pkg-config --cflags --libs qhullcpp qhullstatic_r` -o my_app my_app.cpp
  188. or
  189. g++ `pkg-config --cflags --libs qhullcpp qhull_r` -o my_app my_app.cpp
  190. qhullcpp must be linked before qhull_r, otherwise the linker reports
  191. an error -- "QhullUser ... multiple definition of `qh_fprintf'"
  192. ------------------
  193. Calling Qhull from C programs
  194. See html/qh-code.htm#library for calling Qhull from C programs
  195. Qhull provides pkg-config support with build/qhull.pc.in and lib/pkgconfig/qhull*.pc
  196. With back-ticks, you can compile your C program with the Qhull library
  197. gcc `pkg-config --cflags --libs qhull_r` -o my_app my_app.c
  198. See html/qh-code.htm#reentrant for converting from Qhull-2012
  199. Warning: You will need to understand Qhull's data structures and read the
  200. code. Most users will find it easier to call Qhull as an external command.
  201. The reentrant 'C' code (src/libqhull_r), passes a pointer to qhT
  202. to most Qhull routines. This allows multiple instances of Qhull to run
  203. at the same time. It simplifies the C++ interface.
  204. The non-reentrant 'C' code (src/libqhull) looks unusual. It refers to
  205. Qhull's global data structure, qhT, through a 'qh' macro (e.g., 'qh ferr').
  206. This allows the same code to use static memory or heap memory.
  207. If qh_QHpointer is defined, qh_qh is a pointer to an allocated qhT;
  208. otherwise qh_qh is a global static data structure of type qhT.
  209. ------------------
  210. Compiling Qhull with Microsoft Visual C++
  211. To compile 32-bit Qhull with Microsoft Visual C++ 2010 and later
  212. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  213. - Load solution build/qhull-32.sln
  214. - Right-click 'Retarget solution' from toolset v110 to your Platform Toolset
  215. File > Save All
  216. - Build target 'Win32'
  217. - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
  218. Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/5.2.0/5.2.0/msvc2012)
  219. If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
  220. - Copy Qt shared libraries, QtCore.dll and QtTest.dll, into the bin directory
  221. To compile 64-bit Qhull with Microsoft Visual C++ 2010 and later
  222. - 64-bit Qhull has larger data structures due to 64-bit pointers. This may slow down Qhull.
  223. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  224. - Load solution build/qhull-64.sln
  225. - Right-click 'Retarget solution' from toolset v110 to your Platform Toolset
  226. File > Save All
  227. - Build target 'x64'
  228. - If build as 32-bit fails, use solution build/qhull-32.sln
  229. - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
  230. Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/5.2.0/5.2.0/msvc2012_64)
  231. If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
  232. If error -- MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = 'v110') cannot be found.
  233. - 'Project > Retarget solution' for both qhull-32.sln and qhull-64.sln
  234. - 'File > Open' your preferred solution (qhull-32.sln or qhull-64.sln)
  235. - 'Save All' both projects
  236. - DevStudio may need a restart
  237. To compile Qhull with Microsoft Visual C++ 2005 (vcproj files)
  238. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  239. - Load solution build/qhull.sln
  240. - Build target 'win32' (not 'x64')
  241. - Project qhulltest requires Qt for DevStudio (http://www.qt.io)
  242. Set the QTDIR environment variable to your Qt directory (e.g., c:/qt/4.7.4)
  243. If QTDIR is incorrect, precompile will fail with 'Can not locate the file specified'
  244. ------------------
  245. Compiling Qhull with Qt Creator
  246. Qt (http://www.qt.io) is a C++ framework for Windows, Linux, and Macintosh
  247. Qhull uses QTestLib to test qhull's C++ interface (see src/qhulltest/)
  248. To compile Qhull with Qt Creator
  249. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  250. - Download the Qt SDK
  251. - Start Qt Creator
  252. - Load src/qhull-all.pro
  253. - Configure the project to use a Shadow build at the same level as 'src', 'bin', and 'lib'
  254. If, instead, the shadow build is a subdirectory of 'build', Qt Creator will install Qhull in 'build/bin' and 'build/lib'
  255. - Build
  256. - Build qhulltest with a C++11 or later compiler
  257. - qhulltest depends on shared libraries QtCore.a and QtTest.a. They may need to be copied
  258. into the bin directory. On Windows, copy Qt5Core.dll and Qt5Test.dll, e.g., /qt/5.11.2/msvc2017_64/bin
  259. - If qhulltest fails with exit status 127 and no error message,
  260. check for missing Q5Core.dll and Qt5Test.dll
  261. ------------------
  262. Compiling Qhull with mingw/gcc on Windows
  263. To compile Qhull with MINGW
  264. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  265. - Install GitForWindows (https://gitforwindows.org/)
  266. or MSYS2 (http://www.msys2.org/)
  267. Install in C:\Git\... # Not 'Program Files\...' otherwise './configure && make' will not work
  268. - Install MINGW-w64 with gcc (https://mingw-w64.org/)
  269. 1) Goto sourceforge -- https://sourceforge.net/projects/mingw-w64/files/
  270. 2) in folder -- mingw-w64
  271. 3) download installer -- MinGW-W64-install.exe
  272. Run the installer
  273. 1) Select i686/posix/dwarf
  274. 2) Install in 'C:\mingw-w64' # Not 'Program Files\...'
  275. Rename /c/mingw-w64/mingw32/bin/mingw32-make.exe to make.exe
  276. Add the 'C:\mingw-w64\mingw32\bin' directory to your $PATH environment variable
  277. Execute 'which make' to check that 'make' is mingw-w64's make
  278. - Compile Qhull from the home directory
  279. make help
  280. make
  281. Notes
  282. - Mingw is included with Qt SDK in qt/Tools/mingw53_32
  283. - If you use Windows XP
  284. Install Road Bash (http://www.qhull.org/bash) or MSYS (http://www.mingw.org/wiki/msys)
  285. Install MINGW (http://mingw.org/)
  286. ------------------
  287. Compiling Qhull with cygwin on Windows
  288. To compile Qhull with cygwin
  289. - Download and extract Qhull (either GitHub, .tgz file, or .zip file)
  290. - Install cygwin (http://www.cygwin.com)
  291. - Include packages for gcc, make, ar, and ln
  292. - make
  293. ------------------
  294. Compiling from Makfile without gcc
  295. The file, qhull-src.tgz, contains documentation and source files for
  296. qhull and rbox.
  297. To unpack the tgz file
  298. - tar zxf qhull-src.tgz
  299. - cd qhull
  300. - Use qhull/Makefile
  301. Simpler Makefiles are qhull/src/libqhull/Makefile and qhull/src/libqhull_r/Makefile
  302. Compiling qhull and rbox with Makefile
  303. - in Makefile, check the CC, CCOPTS1, PRINTMAN, and PRINTC defines
  304. - the defaults are gcc and enscript
  305. - CCOPTS1 should include the ANSI flag. It defines __STDC__
  306. - in user.h, check the definitions of qh_SECticks and qh_CPUclock.
  307. - use '#define qh_CLOCKtype 2' for timing runs longer than 1 hour
  308. - type: make
  309. - this builds: qhull qconvex qdelaunay qhalf qvoronoi rbox libqhull.a libqhull_r.a
  310. - type: make doc
  311. - this prints the man page
  312. - See also qhull/html/index.htm
  313. - if your compiler reports many errors, it is probably not a ANSI C compiler
  314. - you will need to set the -ansi switch or find another compiler
  315. - if your compiler warns about missing prototypes for fprintf() etc.
  316. - this is ok, your compiler should have these in stdio.h
  317. - if your compiler warns about missing prototypes for memset() etc.
  318. - include memory.h in qhull_a.h
  319. - if your compiler reports "global.c: storage size of 'qh_qh' isn't known"
  320. - delete the initializer "={0}" in global.c, stat.c and mem.c
  321. - if your compiler warns about "stat.c: improper initializer"
  322. - this is ok, the initializer is not used
  323. - if you have trouble building libqhull.a with 'ar'
  324. - try 'make -f Makefile.txt qhullx'
  325. - if the code compiles, the qhull test case will automatically execute
  326. - if an error occurs, there's an incompatibility between machines
  327. - If you can, try a different compiler
  328. - You can turn off the Qhull memory manager with qh_NOmem in mem.h
  329. - You can turn off compiler optimization (-O2 in Makefile)
  330. - If you find the source of the problem, please let us know
  331. - to install the programs and their man pages:
  332. - define MANDIR and BINDIR
  333. - type 'make install'
  334. - if you have Geomview (www.geomview.org)
  335. - try 'rbox 100 | qconvex G >a' and load 'a' into Geomview
  336. - run 'q_eg' for Geomview examples of Qhull output (see qh-eg.htm)
  337. ------------------
  338. Compiling on other machines and compilers
  339. Qhull may compile with Borland C++ 5.0 bcc32. A Makefile is included.
  340. Execute 'cd src/libqhull; make -f Mborland'. If you use the Borland IDE, set
  341. the ANSI option in Options:Project:Compiler:Source:Language-compliance.
  342. Qhull may compile with Borland C++ 4.02 for Win32 and DOS Power Pack.
  343. Use 'cd src/libqhull; make -f Mborland -D_DPMI'. Qhull 1.0 compiles with
  344. Borland C++ 4.02. For rbox 1.0, use "bcc32 -WX -w- -O2-e -erbox -lc rbox.c".
  345. Use the same options for Qhull 1.0. [D. Zwick]
  346. If you have troubles with the memory manager, you can turn it off by
  347. defining qh_NOmem in mem.h.
  348. ------------------
  349. Distributed files
  350. README.txt // Instructions for installing Qhull
  351. REGISTER.txt // Qhull registration
  352. COPYING.txt // Copyright notice
  353. QHULL-GO.lnk // Windows icon for eg/qhull-go.bat
  354. Announce.txt // Announcement
  355. CMakeLists.txt // CMake build file (2.6 or later)
  356. File_id.diz // Package descriptor
  357. index.htm // Home page
  358. Makefile // Makefile for gcc and other compilers
  359. qhull*.md5sum // md5sum for all files
  360. bin/* // Qhull executables and dll (.zip only)
  361. build/CMakeModules/CheckLFS.cmake // enables Large File Support in CMake
  362. build/config.cmake.in // extract target variables
  363. build/qhull.pc.in // pkg-config template for creating lib/pkgconfig/qhull*.pc
  364. build/qhull-32.sln // 32-bit DevStudio solution and project files (2010 and later)
  365. build/*-32.vcxproj
  366. build/qhull-64.sln // 64-bit DevStudio solution and project files (2010 and later)
  367. build/*-64.vcxproj
  368. build/qhull.sln // DevStudio solution and project files (2005 and 2009)
  369. build/*.vcproj
  370. build/qhulltest/ // DevStudio project files for qhulltest (C++ and Qt)
  371. build/README-build.txt // Contents of build/
  372. eg/* // Test scripts and geomview files from q_eg
  373. html/index.htm // Manual
  374. html/qh-faq.htm // Frequently asked questions
  375. html/qh-get.htm // Download page
  376. html/qhull-cpp.xml // C++ style notes as a Road FAQ (www.qhull.org/road)
  377. src/Changes.txt // Change history for Qhull and rbox
  378. src/qhull-all.pro // Qt project
  379. eg/
  380. q_benchmark // shell script for precision and performance benchmark
  381. q_benchmark-ok.txt // reviewed output from q_benchmark
  382. q_eg // shell script for Geomview examples (eg.01.cube)
  383. q_egtest // shell script for Geomview test examples
  384. q_test // shell script to test qhull
  385. q_test.bat // Windows batch test for QHULL-GO.bat
  386. // cd bin; ..\eg\q_test.bat >q_test.x 2>&1
  387. q_test-ok.txt // reviewed output from q_test
  388. qhulltest-ok.txt // reviewed output from qhulltest (Qt only)
  389. make-qhull_qh.sh // shell script to create non-reentrant qhull_qh from reentrant Qhull
  390. make-vcproj.sh // shell script to create vcproj and vcxprog files
  391. qhull-zip.sh // shell script to create distribution files
  392. qtest.sh // shell script for testing and logging qhull
  393. rbox consists of (bin, html):
  394. rbox.exe // Win32 executable (.zip only)
  395. rbox.htm // html manual
  396. rbox.man // Unix man page
  397. rbox.txt
  398. qhull consists of (bin, html):
  399. qconvex.exe // Win32 executables and dlls (.zip download only)
  400. qhull.exe // Built with the reentrant library (about 2% slower)
  401. qdelaunay.exe
  402. qhalf.exe
  403. qvoronoi.exe
  404. qhull_r.dll
  405. qhull-go.bat // command window
  406. qconvex.htm // html manual
  407. qdelaun.htm
  408. qdelau_f.htm
  409. qhalf.htm
  410. qvoronoi.htm
  411. qvoron_f.htm
  412. qh-eg.htm
  413. qh-code.htm
  414. qh-impre.htm
  415. index.htm
  416. qh-opt*.htm
  417. qh-quick.htm
  418. qh--*.gif // images for manual
  419. normal_voronoi_knauss_oesterle.jpg
  420. qh_findbestfacet-drielsma.pdf
  421. qhull.man // Unix man page
  422. qhull.txt
  423. bin/
  424. msvcr80.dll // Visual C++ redistributable file (.zip download only)
  425. src/
  426. qhull/unix.c // Qhull and rbox applications using non-reentrant libqhullstatic.a
  427. rbox/rbox.c
  428. qconvex/qconvex.c
  429. qhalf/qhalf.c
  430. qdelaunay/qdelaunay.c
  431. qvoronoi/qvoronoi.c
  432. qhull/unix_r.c // Qhull and rbox applications using reentrant libqhullstatic_r.a
  433. rbox/rbox_r.c
  434. qconvex/qconvex_r.c // Qhull applications built with reentrant libqhull_r/Makefile
  435. qhalf/qhalf_r.c
  436. qdelaunay/qdelaun_r.c
  437. qvoronoi/qvoronoi_r.c
  438. user_eg/user_eg_r.c // example of using qhull_r.dll from a user program
  439. user_eg2/user_eg2_r.c // example of using libqhullstatic_r.a from a user program
  440. user_eg3/user_eg3_r.cpp // example of Qhull's C++ interface libqhullcpp with libqhullstatic_r.a
  441. qhulltest/qhulltest.cpp // Test of Qhull's C++ interface using Qt's QTestLib
  442. qhull-*.pri // Include files for Qt projects
  443. testqset_r/testqset_r.c // Test of reentrant qset_r.c and mem_r.c
  444. testqset/testqset.c // Test of non-rentrant qset.c and mem.c
  445. src/libqhull
  446. libqhull.pro // Qt project for non-rentrant, shared library (qhull.dll)
  447. index.htm // design documentation for libqhull
  448. qh-*.htm
  449. qhull-exports.def // Export Definition files for Visual C++
  450. qhull-nomerge-exports.def
  451. qhull_p-exports.def
  452. qhull_p-nomerge-exports.def
  453. Makefile // Simple gcc Makefile for qhull and libqhullstatic.a
  454. Mborland // Makefile for Borland C++ 5.0
  455. libqhull.h // header file for qhull
  456. user.h // header file of user definable constants
  457. libqhull.c // Quickhull algorithm with partitioning
  458. user.c // user re-definable functions
  459. usermem.c
  460. userprintf.c
  461. userprintf_rbox.c
  462. qhull_a.h // include files for libqhull/*.c
  463. geom.c // geometric routines
  464. geom2.c
  465. geom.h
  466. global.c // global variables
  467. io.c // input-output routines
  468. io.h
  469. mem.c // memory routines, this is stand-alone code
  470. mem.h
  471. merge.c // merging of non-convex facets
  472. merge.h
  473. poly.c // polyhedron routines
  474. poly2.c
  475. poly.h
  476. qset.c // set routines, this only depends on mem.c
  477. qset.h
  478. random.c // utilities w/ Park & Miller's random number generator
  479. random.h
  480. rboxlib.c // point set generator for rbox
  481. stat.c // statistics
  482. stat.h
  483. src/libqhull_r
  484. libqhull_r.pro // Qt project for rentrant, shared library (qhull_r.dll)
  485. index.htm // design documentation for libqhull_r
  486. qh-*_r.htm
  487. qhull_r-exports.def // Export Definition files for Visual C++
  488. qhull_r-nomerge-exports.def
  489. Makefile // Simple gcc Makefile for qhull and libqhullstatic.a
  490. libqhull_r.h // header file for qhull
  491. user_r.h // header file of user definable constants
  492. libqhull_r.c // Quickhull algorithm wi_r.hpartitioning
  493. user_r.c // user re-definable functions
  494. usermem.c
  495. userprintf.c
  496. userprintf_rbox.c
  497. qhull_ra.h // include files for libqhull/*_r.c
  498. geom_r.c // geometric routines
  499. geom2.c
  500. geom_r.h
  501. global_r.c // global variables
  502. io_r.c // input-output routines
  503. io_r.h
  504. mem_r.c // memory routines, this is stand-alone code
  505. mem.h
  506. merge_r.c // merging of non-convex facets
  507. merge.h
  508. poly_r.c // polyhedron routines
  509. poly2.c
  510. poly_r.h
  511. qset_r.c // set routines, this only depends on mem_r.c
  512. qset.h
  513. random_r.c // utilities w/ Park & Miller's random number generator
  514. random.h
  515. rboxlib_r.c // point set generator for rbox
  516. stat_r.c // statistics
  517. stat.h
  518. src/libqhullcpp/
  519. libqhullcpp.pro // Qt project for renentrant, static C++ library
  520. Qhull.cpp // Calls libqhull_r.c from C++
  521. Qhull.h
  522. qt-qhull.cpp // Supporting methods for Qt
  523. Coordinates.cpp // input classes
  524. Coordinates.h
  525. PointCoordinates.cpp
  526. PointCoordinates.h
  527. RboxPoints.cpp // call rboxlib.c from C++
  528. RboxPoints.h
  529. QhullFacet.cpp // data structure classes
  530. QhullFacet.h
  531. QhullHyperplane.cpp
  532. QhullHyperplane.h
  533. QhullPoint.cpp
  534. QhullPoint.h
  535. QhullQh.cpp
  536. QhullRidge.cpp
  537. QhullRidge.h
  538. QhullVertex.cpp
  539. QhullVertex.h
  540. QhullFacetList.cpp // collection classes
  541. QhullFacetList.h
  542. QhullFacetSet.cpp
  543. QhullFacetSet.h
  544. QhullIterator.h
  545. QhullLinkedList.h
  546. QhullPoints.cpp
  547. QhullPoints.h
  548. QhullPointSet.cpp
  549. QhullPointSet.h
  550. QhullSet.cpp
  551. QhullSet.h
  552. QhullSets.h
  553. QhullVertexSet.cpp
  554. QhullVertexSet.h
  555. functionObjects.h // supporting classes
  556. QhullError.cpp
  557. QhullError.h
  558. QhullQh.cpp
  559. QhullQh.h
  560. QhullStat.cpp
  561. QhullStat.h
  562. QhullUser.cpp
  563. QhullUser.h
  564. RoadError.cpp // Supporting base classes
  565. RoadError.h
  566. RoadLogEvent.cpp
  567. RoadLogEvent.h
  568. usermem_r-cpp.cpp // Optional override for qh_exit() to throw an error
  569. src/libqhullstatic/
  570. libqhullstatic.pro // Qt project for non-reentrant, static library
  571. src/libqhullstatic_r/
  572. libqhullstatic_r.pro // Qt project for reentrant, static library
  573. src/qhulltest/
  574. qhulltest.pro // Qt project for test of C++ interface
  575. Coordinates_test.cpp // Test of each class
  576. PointCoordinates_test.cpp
  577. Qhull_test.cpp
  578. QhullFacet_test.cpp
  579. QhullFacetList_test.cpp
  580. QhullFacetSet_test.cpp
  581. QhullHyperplane_test.cpp
  582. QhullLinkedList_test.cpp
  583. QhullPoint_test.cpp
  584. QhullPoints_test.cpp
  585. QhullPointSet_test.cpp
  586. QhullRidge_test.cpp
  587. QhullSet_test.cpp
  588. QhullVertex_test.cpp
  589. QhullVertexSet_test.cpp
  590. RboxPoints_test.cpp
  591. RoadTest.cpp // Run multiple test files with QTestLib
  592. RoadTest.h
  593. ------------------
  594. Authors
  595. C. Bradford Barber Hannu Huhdanpaa (Version 1.0)
  596. bradb@shore.net hannu@qhull.org
  597. Qhull 1.0 and 2.0 were developed under NSF grants NSF/DMS-8920161
  598. and NSF-CCR-91-15793 750-7504 at the Geometry Center and Harvard
  599. University. If you find Qhull useful, please let us know.