~ubuntu-branches/ubuntu/trusty/qhull/trusty-proposed

« back to all changes in this revision

Viewing changes to src/libqhull/index.htm

  • Committer: Package Import Robot
  • Author(s): Barak A. Pearlmutter
  • Date: 2014-02-13 11:09:12 UTC
  • mfrom: (8.1.4 sid)
  • Revision ID: package-import@ubuntu.com-20140213110912-ifwyxorlsnnl1ebh
Tags: 2012.1-4
Add convenience link to #include <qhull/qhull.h> to simplify transition.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!-- Do not edit with Front Page, it adds too many spaces -->
 
2
<html>
 
3
<head>
 
4
<meta http-equiv="Content-Type"
 
5
content="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
 
12
href="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
 
37
Qhull's functions, macros, and data structures. Each
 
38
section starts with an introduction. If you use Opera, the source code links back to this documentation.
 
39
See also <a href=../../html/qh-code.htm#library>Calling
 
40
Qhull 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>
 
62
When reading the code, please note that the
 
63
global data structure, 'qh', is a macro.  It
 
64
either expands to &quot;qh_qh.&quot; or to
 
65
&quot;qh_qh-&gt;&quot;. The later is used for
 
66
applications which run concurrent calls to qh_qhull().
 
67
<p>
 
68
When reading code with an editor, a search for
 
69
<i>&quot;procedure</i>
 
70
will locate the header of <i>qh_procedure</i>.  A search for <i>* procedure</i>
 
71
will 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
 
74
of Qhull data structures and top-level functions.  Search for <i>'PFn'</i> to
 
75
determine the corresponding constant in Qhull.  Search for <i>'Fp'</i> to
 
76
determine the corresponding <a href="libqhull.h#qh_PRINT">qh_PRINT...</a> constant.
 
77
Search <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,
 
80
change the MIME type of .c and .h files to "text/html".
 
81
Opera does not always work since it treats '&lt;' characters as HTML tags.
 
82
<p>
 
83
Please report documentation and link errors
 
84
to <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
 
95
refer 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
 
101
platforms with <a href=http://www.cmake.org/>CMake</a>.
 
102
Qhull 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>).
 
108
Data structures are documented under <a href="qh-poly.htm">Poly</a>.
 
109
Global variables are documented under <a href="qh-globa.htm">Global</a>.
 
110
Other 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
 
121
functions such as Gaussian elimination and geometric
 
122
routines needed for Qhull. Frequently used routines are
 
123
in <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>,
 
131
to store globally defined constants, lists, sets, and
 
132
variables.
 
133
<tt>global.c</tt> initializes and frees these
 
134
structures. </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
 
140
input 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
 
147
deallocation. 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
 
154
merged facets or joggled input. These routines merge simplicial facets,
 
155
merge non-simplicial facets, merge cycles of facets, and
 
156
rename 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
 
165
list of facets with vertices, neighbors, ridges, and
 
166
geometric information. <tt>libqhull.h</tt> defines the main
 
167
data structures. Frequently used routines are in <tt>poly.c</tt>
 
168
while 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
 
181
implemented by <tt>libqhull.c</tt>. <tt>qhull_a.h</tt>
 
182
includes 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
 
189
sets. A set is an array of pointers that is expanded as
 
190
needed. This is a separate package that may be used in
 
191
other 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
 
198
its 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
 
209
the 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
 
219
Qhull</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
 
242
src="../../html/qh--geom.gif" align="middle" width="40" height="40"></a><i>The
 
243
Geometry Center Home Page </i></p>
 
244
<p>Comments to: <a href=mailto:qhull@qhull.org>qhull@qhull.org</a>
 
245
</a><br>
 
246
Created: May 2, 1997 --- <!-- hhmts start --> Last modified: see top <!-- hhmts end --> </p>
 
247
</body>
 
248
</html>