/*
--------------------------------- */ #include#include //--- Include qhull, so it works from with in a C++ source file //--- //--- In MVC one cannot just do: //--- //--- extern "C" //--- { //--- #include "qhull_a.h" //--- } //--- //--- Because qhull_a.h includes math.h, which can not appear //--- inside a extern "C" declaration. //--- //--- Maybe that why Numerical recipes in C avoid this problem, by removing //--- standard include headers from its header files and add them in the //--- respective source files instead. //--- //--- [K. Erleben] #if defined(__cplusplus) extern "C" { #endif #include #include #include #include #include #include #include #include #include #include #if defined(__cplusplus) } #endif /*********************************************************************/ /* */ /* */ /* */ /* */ /*********************************************************************/ void compute_convex_hull(void) { int dim; /* dimension of points */ int numpoints; /* number of points */ coordT *points; /* array of coordinates for each point */ boolT ismalloc; /* True if qhull should free points in qh_freeqhull() or reallocation */ char flags[]= "qhull Tv"; /* option flags for qhull, see qh_opt.htm */ FILE *outfile= stdout; /* output from qh_produce_output() use NULL to skip qh_produce_output() */ FILE *errfile= stderr; /* error messages from qhull code */ int exitcode; /* 0 if no error from qhull */ facetT *facet; /* set by FORALLfacets */ int curlong, totlong; /* memory remaining after qh_memfreeshort */ /* initialize dim, numpoints, points[], ismalloc here */ exitcode= qh_new_qhull (dim, numpoints, points, ismalloc, flags, outfile, errfile); if (!exitcode) { /* if no error */ /* 'qh facet_list' contains the convex hull */ FORALLfacets { /* ... your code ... */ } } qh_freeqhull(!qh_ALL); qh_memfreeshort (&curlong, &totlong); if (curlong || totlong) fprintf (errfile, "qhull internal warning (main): did not free %d bytes of long memory (%d pieces)\n", totlong, curlong); }; /*********************************************************************/ /* */ /* */ /* */ /* */ /*********************************************************************/ void main() { cout << "Hello world" << endl; cout << "Press any key..." << endl; while(!_kbhit()); };