Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Analysis.AlgorithmBehavior/qhull-2012.1/src/libqhull/index.htm @ 10207

Last change on this file since 10207 was 10207, checked in by ascheibe, 11 years ago

#1886 added a unit test for volume calculation and the qhull library

File size: 10.8 KB
Line 
1<!-- Do not edit with Front Page, it adds too many spaces -->
2<html>
3<head>
4<meta http-equiv="Content-Type"
5content="text/html; charset=iso-8859-1">
6<title>Qhull functions, macros, and data structures</title>
7</head>
8
9<body>
10<!-- Navigation links -->
11<p><a name="TOP"><b>Up:</b></a> <a
12href="http://www.qhull.org">Home page</a> for Qhull<br>
13<b>Up:</b> <a href="../../html/index.htm#TOC">Qhull manual</a>: Table of Contents <br>
14<b>Up:</b> <a href="../../html/qh-quick.htm#programs">Programs</a>
15&#149; <a href="../../html/qh-quick.htm#options">Options</a>
16&#149; <a href="../../html/qh-opto.htm#output">Output</a>
17&#149; <a href="../../html/qh-optf.htm#format">Formats</a>
18&#149; <a href="../../html/qh-optg.htm#geomview">Geomview</a>
19&#149; <a href="../../html/qh-optp.htm#print">Print</a>
20&#149; <a href="../../html/qh-optq.htm#qhull">Qhull</a>
21&#149; <a href="../../html/qh-optc.htm#prec">Precision</a>
22&#149; <a href="../../html/qh-optt.htm#trace">Trace</a><br>
23<b>Up:</b> <a href="../../html/qh-code.htm#TOC">Qhull code</a><br>
24<b>To:</b> <a href="#TOC">Qhull files</a><br>
25<b>To:</b> <a href="qh-geom.htm">Geom</a> &#149; <a href="qh-globa.htm">Global</a>
26&#149; <a href="qh-io.htm">Io</a> &#149; <a href="qh-mem.htm">Mem</a>
27&#149; <a href="qh-merge.htm">Merge</a> &#149; <a href="qh-poly.htm">Poly</a>
28&#149; <a href="qh-qhull.htm">Qhull</a> &#149; <a href="qh-set.htm">Set</a>
29&#149; <a href="qh-stat.htm">Stat</a> &#149; <a href="qh-user.htm">User</a>
30
31<hr>
32<!-- Main text of document. -->
33
34<h1>Qhull functions, macros, and data structures</h1>
35<blockquote>
36<p>The following sections provide an overview and index to
37Qhull's functions, macros, and data structures. Each
38section starts with an introduction. If you use Opera, the source code links back to this documentation.
39See also <a href=../../html/qh-code.htm#library>Calling
40Qhull from C programs</a> and <a href="../../html/qh-code.htm#cpp">Calling Qhull from C++ programs</a>.</p>
41
42<p>Qhull uses the following conventions:</p>
43<blockquote>
44
45<ul>
46<li>in code, global variables start with &quot;qh &quot;
47<li>in documentation, global variables start with 'qh.'
48<li>constants start with an upper case word
49<li>important globals include an '_'
50<li>functions, macros, and constants start with &quot;qh_&quot;</li>
51<li>data types end in &quot;T&quot;</li>
52<li>macros with arguments end in &quot;_&quot;</li>
53<li>iterators are macros that use local variables</li>
54<li>iterators for sets start with &quot;FOREACH&quot;</li>
55<li>iterators for lists start with &quot;FORALL&quot;</li>
56<li>qhull options are in single quotes (e.g., 'Pdn')</li>
57<li>lists are sorted alphabetically</li>
58<li>preprocessor directives on left margin for older compilers</li>
59</ul>
60</blockquote>
61<p>
62When reading the code, please note that the
63global data structure, 'qh', is a macro.  It
64either expands to &quot;qh_qh.&quot; or to
65&quot;qh_qh-&gt;&quot;. The later is used for
66applications which run concurrent calls to qh_qhull().
67<p>
68When reading code with an editor, a search for
69<i>&quot;procedure</i>
70will locate the header of <i>qh_procedure</i>.  A search for <i>* procedure</i>
71will locate the tail of <i>qh_procedure</i>.
72
73<p>A useful starting point is <a href="libqhull.h">libqhull.h</a>.  It defines most
74of Qhull data structures and top-level functions.  Search for <i>'PFn'</i> to
75determine the corresponding constant in Qhull.  Search for <i>'Fp'</i> to
76determine the corresponding <a href="libqhull.h#qh_PRINT">qh_PRINT...</a> constant.
77Search <a href="io.c">io.c</a> to learn how the print function is implemented.</p>
78
79<p>If your web browser loads .c and .h files with an external application,
80change the MIME type of .c and .h files to "text/html".
81Opera does not always work since it treats '&lt;' characters as HTML tags.
82<p>
83Please report documentation and link errors
84to <a href="mailto:qhull-bug@qhull.org">qhull-bug@qhull.org</a>.
85</blockquote>
86
87<p><b>Copyright &copy; 1997-2012 C.B. Barber</b></p>
88
89<hr>
90
91<h2><a href="#TOP">&#187;</a><a name="TOC">Qhull files</a> </h2>
92<blockquote>
93
94<p>This sections lists the .c and .h files for Qhull. Please
95refer to these files for detailed information.</p>
96<blockquote>
97
98<dl>
99<dt><a href="../../Makefile"><b>Makefile</b></a><b>, </b><a href="../../CMakeLists.txt"><b>CMakeLists.txt</b></a></dt>
100<dd><tt>Makefile</tt> is preconfigured for gcc.  <tt>CMakeLists.txt</tt> supports multiple
101platforms with <a href=http://www.cmake.org/>CMake</a>.
102Qhull includes project files for Visual Studio and Qt.
103</dd>
104
105<dt>&nbsp;</dt>
106<dt><a href="libqhull.h"><b>libqhull.h</b></a> </dt>
107<dd>Include file for the Qhull library (<tt>libqhull.so</tt>, <tt>qhull.dll</tt>, <tt>libqhullstatic.a</tt>).
108Data structures are documented under <a href="qh-poly.htm">Poly</a>.
109Global variables are documented under <a href="qh-globa.htm">Global</a>.
110Other data structures and variables are documented under
111<a href="qh-qhull.htm#TOC">Qhull</a> or <a href="qh-geom.htm"><b>Geom</b></a><b>.</b></dd>
112
113<dt>&nbsp;</dt>
114<dt><a href="qh-geom.htm"><b>Geom</b></a><b>, </b>
115<a href="geom.h"><b>geom.h</b></a><b>, </b>
116<a href="geom.c"><b>geom.c</b></a><b>, </b>
117<a href="geom2.c"><b>geom2.c</b></a><b>, </b>
118<a href="random.c"><b>random.c</b></a><b>, </b>
119<a href="random.h"><b>random.h</b></a></dt>
120<dd>Geometric routines. These routines implement mathematical
121functions such as Gaussian elimination and geometric
122routines needed for Qhull. Frequently used routines are
123in <tt>geom.c</tt> while infrequent ones are in <tt>geom2.c</tt>.
124</dd>
125
126<dt>&nbsp;</dt>
127<dt><a href="qh-globa.htm"><b>Global</b></a><b>, </b>
128<a href="global.c"><b>global.c</b></a><b>, </b>
129<a href="libqhull.h"><b>libqhull.h</b></a> </dt>
130<dd>Global routines. Qhull uses a global data structure, <tt>qh</tt>,
131to store globally defined constants, lists, sets, and
132variables.
133<tt>global.c</tt> initializes and frees these
134structures. </dd>
135
136<dt>&nbsp;</dt>
137<dt><a href="qh-io.htm"><b>Io</b></a><b>, </b><a href="io.h"><b>io.h</b></a><b>,
138</b><a href="io.c"><b>io.c</b></a> </dt>
139<dd>Input and output routines. Qhull provides a wide range of
140input and output options.</dd>
141
142<dt>&nbsp;</dt>
143<dt><a href="qh-mem.htm"><b>Mem</b></a><b>, </b>
144<a href="mem.h"><b>mem.h</b></a><b>, </b>
145<a href="mem.c"><b>mem.c</b></a> </dt>
146<dd>Memory routines. Qhull provides memory allocation and
147deallocation. It uses quick-fit allocation.</dd>
148
149<dt>&nbsp;</dt>
150<dt><a href="qh-merge.htm"><b>Merge</b></a><b>, </b>
151<a href="merge.h"><b>merge.h</b></a><b>, </b>
152<a href="merge.c"><b>merge.c</b></a> </dt>
153<dd>Merge routines. Qhull handles precision problems by
154merged facets or joggled input. These routines merge simplicial facets,
155merge non-simplicial facets, merge cycles of facets, and
156rename redundant vertices.</dd>
157
158<dt>&nbsp;</dt>
159<dt><a href="qh-poly.htm"><b>Poly</b></a><b>, </b>
160<a href="poly.h"><b>poly.h</b></a><b>, </b>
161<a href="poly.c"><b>poly.c</b></a><b>, </b>
162<a href="poly2.c"><b>poly2.c</b></a><b>, </b>
163<a href="libqhull.h"><b>libqhull.h</b></a> </dt>
164<dd>Polyhedral routines. Qhull produces a polyhedron as a
165list of facets with vertices, neighbors, ridges, and
166geometric information. <tt>libqhull.h</tt> defines the main
167data structures. Frequently used routines are in <tt>poly.c</tt>
168while infrequent ones are in <tt>poly2.c</tt>.</dd>
169
170<dt>&nbsp;</dt>
171<dt><a href="qh-qhull.htm#TOC"><b>Qhull</b></a><b>, </b>
172<a href="libqhull.c"><b>libqhull.c</b></a><b>, </b>
173<a href="libqhull.h"><b>libqhull.h</b></a><b>, </b>
174<a href="qhull_a.h"><b>qhull_a.h</b></a><b>, </b>
175<a href="../qhull/unix.c"><b>unix.c</b></a> <b>, </b>
176<a href="../qconvex/qconvex.c"><b>qconvex.c</b></a> <b>, </b>
177<a href="../qdelaunay/qdelaun.c"><b>qdelaun.c</b></a> <b>, </b>
178<a href="../qhalf/qhalf.c"><b>qhalf.c</b></a> <b>, </b>
179<a href="../qvoronoi/qvoronoi.c"><b>qvoronoi.c</b></a> </dt>
180<dd>Top-level routines. The Quickhull algorithm is
181implemented by <tt>libqhull.c</tt>. <tt>qhull_a.h</tt>
182includes all header files. </dd>
183
184<dt>&nbsp;</dt>
185<dt><a href="qh-set.htm"><b>Set</b></a><b>, </b>
186<a href="qset.h"><b>qset.h</b></a><b>, </b>
187<a href="qset.c"><b>qset.c</b></a> </dt>
188<dd>Set routines. Qhull implements its data structures as
189sets. A set is an array of pointers that is expanded as
190needed. This is a separate package that may be used in
191other applications. </dd>
192
193<dt>&nbsp;</dt>
194<dt><a href="qh-stat.htm"><b>Stat</b></a><b>, </b>
195<a href="stat.h"><b>stat.h</b></a><b>, </b>
196<a href="stat.c"><b>stat.c</b></a> </dt>
197<dd>Statistical routines. Qhull maintains statistics about
198its implementation. </dd>
199
200<dt>&nbsp;</dt>
201<dt><a href="qh-user.htm"><b>User</b></a><b>, </b>
202<a href="user.h"><b>user.h</b></a><b>, </b>
203<a href="user.c"><b>user.c</b></a><b>, </b>
204<a href="../user_eg/user_eg.c"><b>user_eg.c</b></a><b>, </b>
205<a href="../user_eg2/user_eg2.c"><b>user_eg2.c</b></a><b>, </b>
206<a href="../user_eg3/user_eg3.cpp"><b>user_eg3.cpp</b></a><b>, </b>
207<a href="../libqhullcpp/qhull_interface.cpp#TOP"><b>qhull_interface.cpp</b></a></dt>
208<dd>User-defined routines. Qhull allows the user to configure
209the code with defined constants and specialized routines.
210</dd>
211</dl>
212</blockquote>
213
214</blockquote>
215<p><!-- Navigation links --> </p>
216<hr>
217<p><b>Up:</b>
218<a href="http://www.qhull.org">Home page for
219Qhull</a> <br>
220<b>Up:</b> <a href="../../html/index.htm#TOC">Qhull manual: Table of Contents</a> <br>
221<b>Up:</b> <a href="../../html/qh-quick.htm#programs">Programs</a>
222&#149; <a href="../../html/qh-quick.htm#options">Options</a>
223&#149; <a href="../../html/qh-opto.htm#output">Output</a>
224&#149; <a href="../../html/qh-optf.htm#format">Formats</a>
225&#149; <a href="../../html/qh-optg.htm#geomview">Geomview</a>
226&#149; <a href="../../html/qh-optp.htm#print">Print</a>
227&#149; <a href="../../html/qh-optq.htm#qhull">Qhull</a>
228&#149; <a href="../../html/qh-optc.htm#prec">Precision</a>
229&#149; <a href="../../html/qh-optt.htm#trace">Trace</a><br>
230<b>Up:</b> <a href="../../html/qh-code.htm#TOC">Qhull code: Table of Contents</a> <br>
231<b>To:</b> <a href="#TOC">Qhull files</a><br>
232<b>To:</b> <a href="qh-geom.htm">Geom</a> &#149;
233<a href="qh-globa.htm">Global</a> &#149; <a href="qh-io.htm">Io</a>
234&#149; <a href="qh-mem.htm">Mem</a> &#149; <a href="qh-merge.htm">Merge</a>
235&#149; <a href="qh-poly.htm">Poly</a> &#149; <a href="qh-qhull.htm#TOC">Qhull</a>
236&#149; <a href="qh-set.htm">Set</a> &#149; <a href="qh-stat.htm">Stat</a>
237&#149; <a href="qh-user.htm">User</a><br>
238
239<p><!-- GC common information --> </p>
240<hr>
241<p><a href="http://www.geom.uiuc.edu/"><img
242src="../../html/qh--geom.gif" align="middle" width="40" height="40"></a><i>The
243Geometry Center Home Page </i></p>
244<p>Comments to: <a href=mailto:qhull@qhull.org>qhull@qhull.org</a>
245</a><br>
246Created: May 2, 1997 --- <!-- hhmts start --> Last modified: see top <!-- hhmts end --> </p>
247</body>
248</html>
Note: See TracBrowser for help on using the repository browser.