Defines |
#define | qh_ALGORITHMfault 0 |
#define | qh_DATAfault 1 |
#define | qh_DUPLICATEridge ( facetT * ) 1L |
#define | qh_MERGEridge ( facetT * ) 2L |
#define | FORALLfacet_(facetlist) if ( facetlist ) for( facet=( facetlist );facet && facet->next;facet=facet->next ) |
#define | FORALLnew_facets for( newfacet=qh newfacet_list;newfacet && newfacet->next;newfacet=newfacet->next ) |
#define | FORALLvertex_(vertexlist) for ( vertex=( vertexlist );vertex && vertex->next;vertex= vertex->next ) |
#define | FORALLvisible_facets for (visible=qh visible_list; visible && visible->visible; visible= visible->next) |
#define | FORALLsame_(newfacet) for (same= newfacet->f.samecycle; same != newfacet; same= same->f.samecycle) |
#define | FORALLsame_cycle_(newfacet) |
#define | FOREACHneighborA_(facet) FOREACHsetelement_(facetT, facet->neighbors, neighborA) |
#define | FOREACHvisible_(facets) FOREACHsetelement_(facetT, facets, visible) |
#define | FOREACHnewfacet_(facets) FOREACHsetelement_(facetT, facets, newfacet) |
#define | FOREACHvertexA_(vertices) FOREACHsetelement_(vertexT, vertices, vertexA) |
#define | FOREACHvertexreverse12_(vertices) FOREACHsetelementreverse12_(vertexT, vertices, vertex) |
Functions |
void | qh_appendfacet (facetT *facet) |
void | qh_appendvertex (vertexT *vertex) |
void | qh_attachnewfacets (void) |
boolT | qh_checkflipped (facetT *facet, realT *dist, boolT allerror) |
void | qh_delfacet (facetT *facet) |
void | qh_deletevisible (void) |
setT * | qh_facetintersect (facetT *facetA, facetT *facetB, int *skipAp, int *skipBp, int extra) |
unsigned | qh_gethash (int hashsize, setT *set, int size, int firstindex, void *skipelem) |
facetT * | qh_makenewfacet (setT *vertices, boolT toporient, facetT *facet) |
void | qh_makenewplanes (void) |
facetT * | qh_makenew_nonsimplicial (facetT *visible, vertexT *apex, int *numnew) |
facetT * | qh_makenew_simplicial (facetT *visible, vertexT *apex, int *numnew) |
void | qh_matchneighbor (facetT *newfacet, int newskip, int hashsize, int *hashcount) |
void | qh_matchnewfacets (void) |
boolT | qh_matchvertices (int firstindex, setT *verticesA, int skipA, setT *verticesB, int *skipB, boolT *same) |
facetT * | qh_newfacet (void) |
ridgeT * | qh_newridge (void) |
int | qh_pointid (pointT *point) |
void | qh_removefacet (facetT *facet) |
void | qh_removevertex (vertexT *vertex) |
void | qh_updatevertices (void) |
void | qh_addhash (void *newelem, setT *hashtable, int hashsize, unsigned hash) |
void | qh_check_bestdist (void) |
void | qh_check_maxout (void) |
void | qh_check_output (void) |
void | qh_check_point (pointT *point, facetT *facet, realT *maxoutside, realT *maxdist, facetT **errfacet1, facetT **errfacet2) |
void | qh_check_points (void) |
void | qh_checkconvex (facetT *facetlist, int fault) |
void | qh_checkfacet (facetT *facet, boolT newmerge, boolT *waserrorp) |
void | qh_checkflipped_all (facetT *facetlist) |
void | qh_checkpolygon (facetT *facetlist) |
void | qh_checkvertex (vertexT *vertex) |
void | qh_clearcenters (qh_CENTER type) |
void | qh_createsimplex (setT *vertices) |
void | qh_delridge (ridgeT *ridge) |
void | qh_delvertex (vertexT *vertex) |
setT * | qh_facet3vertex (facetT *facet) |
facetT * | qh_findbestfacet (pointT *point, boolT bestoutside, realT *bestdist, boolT *isoutside) |
facetT * | qh_findbestlower (facetT *upperfacet, pointT *point, realT *bestdistp, int *numpart) |
facetT * | qh_findfacet_all (pointT *point, realT *bestdist, boolT *isoutside, int *numpart) |
int | qh_findgood (facetT *facetlist, int goodhorizon) |
void | qh_findgood_all (facetT *facetlist) |
void | qh_furthestnext (void) |
void | qh_furthestout (facetT *facet) |
void | qh_infiniteloop (facetT *facet) |
void | qh_initbuild (void) |
void | qh_initialhull (setT *vertices) |
setT * | qh_initialvertices (int dim, setT *maxpoints, pointT *points, int numpoints) |
vertexT * | qh_isvertex (pointT *point, setT *vertices) |
vertexT * | qh_makenewfacets (pointT *point) |
void | qh_matchduplicates (facetT *atfacet, int atskip, int hashsize, int *hashcount) |
void | qh_nearcoplanar (void) |
vertexT * | qh_nearvertex (facetT *facet, pointT *point, realT *bestdistp) |
int | qh_newhashtable (int newsize) |
vertexT * | qh_newvertex (pointT *point) |
ridgeT * | qh_nextridge3d (ridgeT *atridge, facetT *facet, vertexT **vertexp) |
void | qh_outcoplanar (void) |
pointT * | qh_point (int id) |
void | qh_point_add (setT *set, pointT *point, void *elem) |
setT * | qh_pointfacet (void) |
setT * | qh_pointvertex (void) |
void | qh_prependfacet (facetT *facet, facetT **facetlist) |
void | qh_printhashtable (FILE *fp) |
void | qh_printlists (void) |
void | qh_resetlists (boolT stats, boolT resetVisible) |
void | qh_setvoronoi_all (void) |
void | qh_triangulate (void) |
void | qh_triangulate_facet (facetT *facetA, vertexT **first_vertex) |
void | qh_triangulate_link (facetT *oldfacetA, facetT *facetA, facetT *oldfacetB, facetT *facetB) |
void | qh_triangulate_mirror (facetT *facetA, facetT *facetB) |
void | qh_triangulate_null (facetT *facetA) |
void | qh_vertexintersect (setT **vertexsetA, setT *vertexsetB) |
setT * | qh_vertexintersect_new (setT *vertexsetA, setT *vertexsetB) |
void | qh_vertexneighbors (void) |
boolT | qh_vertexsubset (setT *vertexsetA, setT *vertexsetB) |