1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- --- contrib/libs/qhull/libqhull_r/user_r.c (index)
- +++ contrib/libs/qhull/libqhull_r/user_r.c (working tree)
- @@ -123,6 +123,12 @@
- */
- int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
- char *qhull_cmd, FILE *outfile, FILE *errfile) {
- + return qh_new_qhull_feaspoint(qh, dim, numpoints, points, ismalloc,
- + qhull_cmd, outfile, errfile, NULL);
- +}
- +
- +int qh_new_qhull_feaspoint(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
- + char *qhull_cmd, FILE *outfile, FILE *errfile, coordT* feaspoint) {
- /* gcc may issue a "might be clobbered" warning for dim, points, and ismalloc [-Wclobbered].
- These parameters are not referenced after a longjmp() and hence not clobbered.
- See http://stackoverflow.com/questions/7721854/what-sense-do-these-clobbered-variable-warnings-make */
- @@ -158,7 +164,24 @@ int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc
- /* points is an array of halfspaces,
- the last coordinate of each halfspace is its offset */
- hulldim= dim-1;
- - qh_setfeasible(qh, hulldim);
- + if(feaspoint)
- + {
- + if (!(qh->feasible_point= (pointT*)qh_malloc(hulldim * sizeof(coordT)))) {
- + qh_fprintf(qh, qh->ferr, 6079, "qhull error: insufficient memory for 'Hn,n,n'\n");
- + qh_errexit(qh, qh_ERRmem, NULL, NULL);
- + }
- + coordT* coords = qh->feasible_point;
- + coordT* value = feaspoint;
- + int i;
- + for(i = 0; i < hulldim; ++i)
- + {
- + *(coords++) = *(value++);
- + }
- + }
- + else
- + {
- + qh_setfeasible(qh, hulldim);
- + }
- new_points= qh_sethalfspace_all(qh, dim, numpoints, points, qh->feasible_point);
- new_ismalloc= True;
- if (ismalloc)
- --- contrib/libs/qhull/libqhull_r/libqhull_r.h (index)
- +++ contrib/libs/qhull/libqhull_r/libqhull_r.h (working tree)
- @@ -1029,6 +1029,8 @@ void qh_errexit(qhT *qh, int exitcode, facetT *facet, ridgeT *ridge);
- void qh_errprint(qhT *qh, const char* string, facetT *atfacet, facetT *otherfacet, ridgeT *atridge, vertexT *atvertex);
- int qh_new_qhull(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
- char *qhull_cmd, FILE *outfile, FILE *errfile);
- +int qh_new_qhull_feaspoint(qhT *qh, int dim, int numpoints, coordT *points, boolT ismalloc,
- + char *qhull_cmd, FILE *outfile, FILE *errfile, coordT* feaspoint);
- void qh_printfacetlist(qhT *qh, facetT *facetlist, setT *facets, boolT printall);
- void qh_printhelp_degenerate(qhT *qh, FILE *fp);
- void qh_printhelp_internal(qhT *qh, FILE *fp);
|