Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Analysis.AlgorithmBehavior/qhull-2012.1/src/libqhull/qh-poly.htm @ 10635

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

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

File size: 20.9 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>poly.c, poly2.c -- polyhedron operations</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: Table of Contents</a><br>
24<b>To:</b> <a href="index.htm">Qhull functions</a>, macros, and data structures<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#TOC">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</p>
31<hr>
32
33<h2>poly.c, poly2.c -- polyhedron operations</h2>
34<blockquote>
35
36<p>Qhull uses dimension-free terminology. Qhull builds a
37polyhedron in dimension <em>d. </em>A <em>polyhedron</em> is a
38simplicial complex of faces with geometric information for the
39top and bottom-level faces. A (<em>d-1</em>)-face is a <em>facet</em>,
40a (<em>d-2</em>)-face is a <em>ridge</em>, and a <em>0</em>-face
41is a <em>vertex</em>. For example in 3-d, a facet is a polygon
42and a ridge is an edge. A facet is built from a ridge (the <em>base</em>)
43and a vertex (the <em>apex</em>). See
44<a href="../../html/index.htm#structure">Qhull's data structures</a>.</p>
45
46<p>Qhull's primary data structure is a polyhedron. A
47polyhedron is a list of facets. Each facet has a set of
48neighboring facets and a set of vertices. Each facet has a
49hyperplane. For example, a tetrahedron has four facets.
50If its vertices are <em>a, b, c, d</em>, and its facets
51are <em>1, 2, 3, 4,</em> the tetrahedron is </p>
52<blockquote>
53<ul>
54<li>facet 1 <ul>
55    <li>vertices: b c d </li>
56    <li>neighbors: 2 3 4 </li>
57</ul>
58</li>
59<li>facet 2 <ul>
60    <li>vertices: a c d </li>
61    <li>neighbors: 1 3 4 </li>
62</ul>
63</li>
64<li>facet 3 <ul>
65    <li>vertices: a b d </li>
66    <li>neighbors: 1 2 4 </li>
67</ul>
68</li>
69<li>facet 4 <ul>
70    <li>vertices: a b c </li>
71    <li>neighbors: 1 2 3 </li>
72</ul>
73</li>
74</ul>
75</blockquote>
76<p>A facet may be simplicial or non-simplicial. In 3-d, a
77<i>simplicial facet</i> has three vertices and three
78neighbors. A <i>nonsimplicial facet</i> has more than
79three vertices and more than three neighbors. A
80nonsimplicial facet has a set of ridges and a centrum. </p>
81<p>
82A simplicial facet has an orientation. An <i>orientation</i>
83is either <i>top</i> or <i>bottom</i>.
84The flag, <tt>facet-&gt;toporient,</tt>
85defines the orientation of the facet's vertices.  For example in 3-d,
86'top' is left-handed orientation (i.e., the vertex order follows the direction
87of the left-hand fingers when the thumb is pointing away from the center).
88Except for axis-parallel facets in 5-d and higher, topological orientation
89determines the geometric orientation of the facet's hyperplane.
90
91<p>A nonsimplicial facet is due to merging two or more
92facets. The facet's ridge set determine a simplicial
93decomposition of the facet. Each ridge is a 1-face (i.e.,
94it has two vertices and two neighboring facets). The
95orientation of a ridge is determined by the order of the
96neighboring facets. The flag, <tt>facet-&gt;toporient,</tt>is
97ignored. </p>
98<p>A nonsimplicial facet has a centrum for testing
99convexity. A <i>centrum</i> is a point on the facet's
100hyperplane that is near the center of the facet. Except
101for large facets, it is the arithmetic average of the
102facet's vertices. </p>
103<p>A nonsimplicial facet is an approximation that is
104defined by offsets from the facet's hyperplane. When
105Qhull finishes, the <i>outer plane</i> is above all
106points while the <i>inner plane</i> is below the facet's
107vertices. This guarantees that any exact convex hull
108passes between the inner and outer planes. The outer
109plane is defined by <tt>facet-&gt;maxoutside</tt> while
110the inner plane is computed from the facet's vertices.</p>
111
112<p>Qhull 3.1 includes triangulation of non-simplicial facets
113('<A href="../../html/qh-optq.htm#Qt">Qt</A>').
114These facets,
115called <i>tricoplanar</i>, share the same normal. centrum, and Voronoi center.
116One facet (keepcentrum) owns these data structures.
117While tricoplanar facets are more accurate than the simplicial facets from
118joggled input, they
119may have zero area or flipped orientation.
120
121</blockquote>
122<p><b>Copyright &copy; 1995-2012 C.B. Barber</b></p>
123<hr>
124<p><a href="#TOP">&#187;</a> <a href="qh-geom.htm#TOC">Geom</a>
125<a name="TOC">&#149;</a> <a href="qh-globa.htm#TOC">Global</a>
126&#149; <a href="qh-io.htm#TOC">Io</a> &#149; <a href="qh-mem.htm#TOC">Mem</a>
127&#149; <a href="qh-merge.htm#TOC">Merge</a> &#149; <b>Poly</b>
128&#149; <a href="qh-qhull.htm#TOC">Qhull</a> &#149; <a href="qh-set.htm#TOC">Set</a>
129&#149; <a href="qh-stat.htm#TOC">Stat</a> &#149; <a href="qh-user.htm#TOC">User</a>
130</p>
131<h3>Index to <a href="poly.c">poly.c</a>,
132<a href="poly2.c">poly2.c</a>, <a href="poly.h">poly.h</a>,
133and <a href="libqhull.h">libqhull.h</a></h3>
134<ul>
135<li><a href="#ptype">Data types and global
136lists for polyhedrons</a> </li>
137<li><a href="#pconst">poly.h constants</a> </li>
138<li><a href="#pgall">Global FORALL macros</a> </li>
139<li><a href="#pall">FORALL macros</a> </li>
140<li><a href="#peach">FOREACH macros</a> </li>
141<li><a href="#pieach">Indexed FOREACH macros</a> </li>
142<li><a href="#pmacro">Other macros for polyhedrons</a><p>&nbsp;</li>
143<li><a href="#plist">Facetlist functions</a> </li>
144<li><a href="#pfacet">Facet functions</a> </li>
145<li><a href="#pvertex">Vertex, ridge, and point
146functions</a> </li>
147<li><a href="#phash">Hashtable functions</a> </li>
148<li><a href="#pnew">Allocation and deallocation
149functions</a> </li>
150<li><a href="#pcheck">Check functions</a> </li>
151</ul>
152<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="ptype">Data
153types and global lists for polyhedrons</a></h3>
154<ul>
155<li><a href="libqhull.h#facetT">facetT</a> defines a
156facet </li>
157<li><a href="libqhull.h#ridgeT">ridgeT</a> defines a
158ridge </li>
159<li><a href="libqhull.h#vertexT">vertexT</a> defines a
160vertex </li>
161<li><a href="libqhull.h#qh-lists">qh facet and vertex
162lists</a> lists of facets and vertices </li>
163<li><a href="libqhull.h#qh-set">qh global sets</a>
164global sets for merging, hashing, input, etc. </li>
165</ul>
166<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pconst">poly.h constants</a></h3>
167<ul>
168<li><a href="poly.h#ALGORITHMfault">ALGORITHMfault</a>
169flag to not report errors in qh_checkconvex() </li>
170<li><a href="poly.h#DATAfault">DATAfault</a> flag to
171report errors in qh_checkconvex() </li>
172<li><a href="poly.h#DUPLICATEridge">DUPLICATEridge</a>
173special value for facet-&gt;neighbor to indicate
174a duplicate ridge </li>
175<li><a href="poly.h#MERGEridge">MERGEridge</a>
176special value for facet-&gt;neighbor to indicate
177a merged ridge </li>
178</ul>
179<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pgall">Global FORALL
180macros</a></h3>
181<ul>
182<li><a href="libqhull.h#FORALLfacets">FORALLfacets</a>
183assign 'facet' to each facet in qh.facet_list </li>
184<li><a href="poly.h#FORALLnew_facets">FORALLnew_facets</a>
185assign 'facet' to each facet in qh.newfacet_list </li>
186<li><a href="poly.h#FORALLvisible_facets">FORALLvisible_facets</a>
187assign 'visible' to each visible facet in
188qh.visible_list </li>
189<li><a href="libqhull.h#FORALLpoints">FORALLpoints</a>
190assign 'point' to each point in qh.first_point,
191qh.num_points </li>
192<li><a href="libqhull.h#FORALLvertices">FORALLvertices</a>
193assign 'vertex' to each vertex in qh.vertex_list </li>
194</ul>
195<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pall">FORALL macros</a></h3>
196<ul>
197<li><a href="poly.h#FORALLfacet_">FORALLfacet_</a>
198assign 'facet' to each facet in facetlist </li>
199<li><a href="libqhull.h#FORALLpoint_">FORALLpoint_</a>
200assign 'point' to each point in points array</li>
201<li><a href="poly.h#FORALLsame_">FORALLsame_</a>
202assign 'same' to each facet in samecycle</li>
203<li><a href="poly.h#FORALLsame_cycle_">FORALLsame_cycle_</a>
204assign 'same' to each facet in samecycle</li>
205<li><a href="poly.h#FORALLvertex_">FORALLvertex_</a>
206assign 'vertex' to each vertex in vertexlist </li>
207</ul>
208<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="peach">FOREACH macros</a></h3>
209<ul>
210<li><a href="libqhull.h#FOREACHfacet_">FOREACHfacet_</a>
211assign 'facet' to each facet in facets </li>
212<li><a href="libqhull.h#FOREACHneighbor_">FOREACHneighbor_</a>
213assign 'neighbor' to each facet in
214facet-&gt;neighbors or vertex-&gt;neighbors</li>
215<li><a href="poly.h#FOREACHnewfacet_">FOREACHnewfacet_</a>
216assign 'newfacet' to each facet in facet set </li>
217<li><a href="libqhull.h#FOREACHpoint_">FOREACHpoint_</a>
218assign 'point' to each point in points set </li>
219<li><a href="libqhull.h#FOREACHridge_">FOREACHridge_</a>
220assign 'ridge' to each ridge in ridge set </li>
221<li><a href="libqhull.h#FOREACHvertex_">FOREACHvertex_</a>
222assign 'vertex' to each vertex in vertex set </li>
223<li><a href="poly.h#FOREACHvertexA_">FOREACHvertexA_</a>
224assign 'vertexA' to each vertex in vertex set</li>
225<li><a href="poly.h#FOREACHvisible_">FOREACHvisible_</a>
226assign 'visible' to each facet in facet set </li>
227</ul>
228<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pieach">Indexed
229FOREACH macros</a></h3>
230<ul>
231<li><a href="libqhull.h#FOREACHfacet_i_">FOREACHfacet_i_</a>
232assign 'facet' and 'facet_i' to each facet in
233facet set </li>
234<li><a href="libqhull.h#FOREACHneighbor_i_">FOREACHneighbor_i_</a>
235assign 'neighbor' and 'neighbor_i' to each facet
236in facet-&gt;neighbors or vertex-&gt;neighbors</li>
237<li><a href="libqhull.h#FOREACHpoint_i_">FOREACHpoint_i_</a>
238assign 'point' and 'point_i' to each point in
239points set </li>
240<li><a href="libqhull.h#FOREACHridge_i_">FOREACHridge_i_</a>
241assign 'ridge' and 'ridge_i' to each ridge in
242ridges set </li>
243<li><a href="libqhull.h#FOREACHvertex_i_">FOREACHvertex_i_</a>
244assign 'vertex' and 'vertex_i' to each vertex in
245vertices set </li>
246<li><a href="poly.h#FOREACHvertexreverse12_">FOREACHvertexreverse12_</a>
247assign 'vertex' to each vertex in vertex set;
248reverse the order of first two vertices </li>
249</ul>
250<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pmacro">Other macros for polyhedrons</a></h3>
251<ul>
252<li><a href="libqhull.h#getid_">getid_</a> return ID for
253a facet, ridge, or vertex </li>
254<li><a href="libqhull.h#otherfacet_">otherfacet_</a>
255return neighboring facet for a ridge in a facet </li>
256</ul>
257<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="plist">Facetlist
258functions</a></h3>
259<ul>
260<li><a href="poly.c#appendfacet">qh_appendfacet</a>
261appends facet to end of qh.facet_list</li>
262<li><a href="poly.c#attachnewfacets">qh_attachnewfacets</a>
263attach new facets in qh.newfacet_list to the
264horizon </li>
265<li><a href="poly2.c#findgood">qh_findgood</a>
266identify good facets for qh.PRINTgood </li>
267<li><a href="poly2.c#findgood_all">qh_findgood_all</a>
268identify more good facets for qh.PRINTgood </li>
269<li><a href="poly2.c#furthestnext">qh_furthestnext</a>
270move facet with furthest of furthest points to
271facet_next </li>
272<li><a href="poly2.c#initialhull">qh_initialhull</a>
273construct the initial hull as a simplex of
274vertices </li>
275<li><a href="poly2.c#nearcoplanar">qh_nearcoplanar</a>
276  remove near-inside points from coplanar sets</li>
277<li><a href="poly2.c#prependfacet">qh_prependfacet</a>
278prepends facet to start of facetlist </li>
279<li><a href="user.c#printfacetlist">qh_printfacetlist</a>
280print facets in a facetlist</li>
281<li><a href="poly2.c#printlists">qh_printlists</a>
282print out facet list for debugging </li>
283<li><a href="poly.c#removefacet">qh_removefacet</a>
284unlinks facet from qh.facet_list</li>
285<li><a href="poly2.c#resetlists">qh_resetlists</a>
286reset qh.newvertex_list, qh.newfacet_list, and
287qh.visible_list </li>
288</ul>
289<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pfacet">Facet
290functions</a></h3>
291<ul>
292<li><a href="poly2.c#createsimplex">qh_createsimplex</a>
293create a simplex of facets from a set of vertices
294</li>
295<li><a href="poly2.c#findbestlower">qh_findbestlower</a> find best
296non-upper, non-flipped facet for point at upperfacet</li>
297<li><a href="poly2.c#furthestout">qh_furthestout</a>
298make furthest outside point the last point of a
299facet's outside set </li>
300<li><a href="poly.c#makenew_nonsimplicial">qh_makenew_nonsimplicial</a>
301make new facets from ridges of visible facets </li>
302<li><a href="poly.c#makenew_simplicial">qh_makenew_simplicial</a>
303make new facets for horizon neighbors </li>
304<li><a href="poly.c#makenewfacet">qh_makenewfacet</a>
305create a facet from vertices and apex </li>
306<li><a href="poly2.c#makenewfacets">qh_makenewfacets</a>
307make new facets from vertex, horizon facets, and
308visible facets </li>
309<li><a href="poly.c#makenewplanes">qh_makenewplanes</a>
310make new hyperplanes for facets </li>
311<li><a href="poly2.c#outcoplanar">qh_outcoplanar</a>
312move points from outside set to coplanar set </li>
313<li><a href="poly2.c#setvoronoi_all">qh_setvoronoi_all</a>
314compute Voronoi centers for all facets </li>
315<li><a href="poly2.c#triangulate">qh_triangulate</a>
316triangulate non-simplicial facets</li>
317<li><a href="poly2.c#triangulate_facet">qh_triangulate_facet</a>
318triangulate a non-simplicial facet</li>
319<li><a href="poly2.c#triangulate_link">qh_triangulate_link</a>
320link facets together from qh_triangulate</li>
321<li><a href="poly2.c#triangulate_mirror">qh_triangulate_mirror</a>
322delete mirrored facets from qh_triangulate</li>
323<li><a href="poly2.c#triangulate_null">qh_triangulate_null</a>
324delete null facet from qh_triangulate</li>
325</ul>
326<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pvertex">Vertex,
327ridge, and point functions</a></h3>
328<ul>
329<li><a href="poly.c#appendvertex">qh_appendvertex</a>
330append vertex to end of qh.vertex_list, </li>
331<li><a href="io.c#detvridge">qh_detvridge</a> determine Voronoi
332ridge for an input site
333<li><a href="io.c#detvridge3">qh_detvridge3</a> determine 3-d Voronoi
334ridge for an input site
335<li><a href="poly2.c#facet3vertex">qh_facet3vertex</a>
336return an oriented vertex set for a 3-d facet </li>
337<li><a href="poly.c#facetintersect">qh_facetintersect</a>
338return intersection of simplicial facets </li>
339<li><a href="poly2.c#initialvertices">qh_initialvertices</a>
340return non-singular set of initial vertices </li>
341<li><a href="poly2.c#isvertex">qh_isvertex</a> true
342if point is in a vertex set </li>
343<li><a href="poly2.c#nearvertex">qh_nearvertex</a>
344return nearest vertex to point </li>
345<li><a href="poly2.c#nextridge3d">qh_nextridge3d</a>
346iterate over each ridge and vertex for a 3-d
347facet </li>
348<li><a href="poly2.c#point">qh_point</a> return point
349for a point ID </li>
350<li><a href="poly2.c#pointfacet">qh_pointfacet</a>
351return temporary set of facets indexed by point
352ID </li>
353<li><a href="poly.c#pointid">qh_pointid</a> return ID
354for a point</li>
355<li><a href="poly2.c#pointvertex">qh_pointvertex</a>
356return temporary set of vertices indexed by point
357ID </li>
358<li><a href="poly.c#removevertex">qh_removevertex</a>
359unlink vertex from qh.vertex_list, </li>
360<li><a href="poly.c#updatevertices">qh_updatevertices</a>
361update vertex neighbors and delete interior
362vertices </li>
363<li><a href="poly2.c#vertexintersect">qh_vertexintersect</a>
364intersect two vertex sets </li>
365<li><a href="poly2.c#vertexintersect_new">qh_vertexintersect_new</a>
366return intersection of two vertex sets </li>
367<li><a href="poly2.c#vertexneighbors">qh_vertexneighbors</a>
368for each vertex in hull, determine facet
369neighbors </li>
370<li><a href="poly2.c#vertexsubset">qh_vertexsubset</a>
371returns True if vertexsetA is a subset of
372vertexsetB </li>
373</ul>
374<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="phash">Hashtable functions</a></h3>
375<ul>
376<li><a href="poly2.c#addhash">qh_addhash</a> add hash
377element to linear hash table</li>
378<li><a href="poly.c#gethash">qh_gethash</a> return
379hash value for a set</li>
380<li><a href="poly2.c#matchduplicates">qh_matchduplicates</a>
381match duplicate ridges in hash table </li>
382<li><a href="poly.c#matchneighbor">qh_matchneighbor</a>
383try to match subridge of new facet with a
384neighbor </li>
385<li><a href="poly.c#matchnewfacets">qh_matchnewfacets</a>
386match new facets with their new facet neighbors </li>
387<li><a href="poly.c#matchvertices">qh_matchvertices</a>
388tests whether a facet and hash entry match at a
389ridge </li>
390<li><a href="poly2.c#newhashtable">qh_newhashtable</a>
391allocate a new qh.hash_table </li>
392<li><a href="poly2.c#printhashtable">qh_printhashtable</a>
393print hash table </li>
394</ul>
395<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pnew">Allocation and
396deallocation functions</a></h3>
397<ul>
398<li><a href="poly2.c#clearcenters">qh_clearcenters</a>
399clear old data from facet-&gt;center </li>
400<li><a href="poly.c#deletevisible">qh_deletevisible</a>
401delete visible facets and vertices </li>
402<li><a href="poly.c#delfacet">qh_delfacet</a> free up
403the memory occupied by a facet </li>
404<li><a href="poly2.c#delridge">qh_delridge</a> delete
405ridge</li>
406<li><a href="poly2.c#delvertex">qh_delvertex</a>
407delete vertex </li>
408<li><a href="poly.c#newfacet">qh_newfacet</a> create
409and allocate space for a facet </li>
410<li><a href="poly.c#newridge">qh_newridge</a> create
411and allocate space for a ridge </li>
412<li><a href="poly2.c#newvertex">qh_newvertex</a>
413create and allocate space for a vertex </li>
414</ul>
415<h3><a href="qh-poly.htm#TOC">&#187;</a><a name="pcheck">Check
416functions</a></h3>
417<ul>
418<li><a href="poly2.c#check_bestdist">qh_check_bestdist</a>
419check that points are not outside of facets </li>
420<li><a href="poly2.c#check_maxout">qh_check_maxout</a>
421updates qh.max_outside and checks all points
422against bestfacet </li>
423<li><a href="poly2.c#check_output">qh_check_output</a>
424check topological and geometric output</li>
425<li><a href="poly2.c#check_point">qh_check_point</a>
426check that point is not outside of facet </li>
427<li><a href="poly2.c#check_points">qh_check_points</a>
428check that all points are inside all facets </li>
429<li><a href="poly2.c#checkconvex">qh_checkconvex</a>
430check that each ridge in facetlist is convex </li>
431<li><a href="poly2.c#checkfacet">qh_checkfacet</a>
432check for consistency errors in facet </li>
433<li><a href="poly.c#checkflipped">qh_checkflipped</a>
434check facet orientation to the interior point </li>
435<li><a href="poly2.c#checkflipped_all">qh_checkflipped_all</a>
436check facet orientation for a facet list </li>
437<li><a href="poly2.c#checkpolygon">qh_checkpolygon</a>
438check topological structure </li>
439<li><a href="poly2.c#checkvertex">qh_checkvertex</a>
440check vertex for consistency </li>
441<li><a href="poly2.c#infiniteloop">qh_infiniteloop</a>
442report error for a loop of facets </li>
443<li><a href="poly2.c#printlists">qh_printlists</a>
444print out facet list for debugging </li>
445</ul>
446
447
448<p><!-- Navigation links --> </p>
449<hr>
450<p><b>Up:</b>
451<a href="http://www.qhull.org">Home page for
452Qhull</a> <br>
453<b>Up:</b> <a href="../../html/index.htm#TOC">Qhull manual: Table of Contents</a> <br>
454<b>Up:</b> <a href="../../html/qh-quick.htm#programs">Programs</a>
455&#149; <a href="../../html/qh-quick.htm#options">Options</a>
456&#149; <a href="../../html/qh-opto.htm#output">Output</a>
457&#149; <a href="../../html/qh-optf.htm#format">Formats</a>
458&#149; <a href="../../html/qh-optg.htm#geomview">Geomview</a>
459&#149; <a href="../../html/qh-optp.htm#print">Print</a>
460&#149; <a href="../../html/qh-optq.htm#qhull">Qhull</a>
461&#149; <a href="../../html/qh-optc.htm#prec">Precision</a>
462&#149; <a href="../../html/qh-optt.htm#trace">Trace</a><br>
463<b>Up:</b> <a href="../../html/qh-code.htm#TOC">Qhull code: Table of Contents</a> <br>
464<b>To:</b> <a href="index.htm">Qhull functions</a>, macros, and data structures<br>
465<b>To:</b> <a href="qh-geom.htm">Geom</a> &#149;
466<a href="qh-globa.htm">Global</a> &#149; <a href="qh-io.htm">Io</a>
467&#149; <a href="qh-mem.htm">Mem</a> &#149; <a href="qh-merge.htm">Merge</a>
468&#149; <a href="qh-poly.htm">Poly</a> &#149; <a href="qh-qhull.htm#TOC">Qhull</a>
469&#149; <a href="qh-set.htm">Set</a> &#149; <a href="qh-stat.htm">Stat</a>
470&#149; <a href="qh-user.htm">User</a><br>
471</p>
472<p><!-- GC common information --> </p>
473<hr>
474<p><a href="http://www.geom.uiuc.edu/"><img
475src="../../html/qh--geom.gif" align="middle" width="40" height="40"></a><i>The
476Geometry Center Home Page </i></p>
477<p>Comments to: <a href=mailto:qhull@qhull.org>qhull@qhull.org</a>
478</a><br>
479Created: May 2, 1997 --- <!-- hhmts start --> Last modified: see top <!-- hhmts end --> </p>
480</body>
481</html>
Note: See TracBrowser for help on using the repository browser.