27 #ifdef _MSC_VER // Microsoft Visual C++ -- warning level 4 28 #pragma warning( disable : 4611) // interaction between '_setjmp' and C++ object destruction is non-portable 29 #pragma warning( disable : 4996) // function was declared deprecated(strcpy, localtime, etc.) 37 const char s_not_output_options[]=
" Fd TI A C d E H P Qb QbB Qbb Qc Qf Qg Qi Qm QJ Qr QR Qs Qt Qv Qx Qz Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 R Tc TC TM TP TR Tv TV TW U v V W ";
69 Qhull(
const char *inputComment2,
int pointDimension,
int pointCount,
const realT *pointCoordinates,
const char *qhullCommand2)
76 runQhull(inputComment2, pointDimension, pointCount, pointCoordinates, qhullCommand2);
87 char *s=
static_cast<char *
>(p);
88 char *s2=
static_cast<char *
>(p2);
90 throw QhullError(10074,
"Qhull error: QhullQh at a different address than base type QhT (%d bytes). Please report compiler to qhull.org",
int(s2-s));
99 cerr<<
"\nQhull output at end\n";
113 throw QhullError(10023,
"Qhull error: checkIfQhullInitialized failed. Call runQhull() first.");
227 char *command=
const_cast<char*
>(cmd.c_str());
266 runQhull(
const char *inputComment2,
int pointDimension,
int pointCount,
const realT *pointCoordinates,
const char *qhullCommand2)
269 throw QhullError(10027,
"Qhull error: runQhull called twice. Only one call allowed.");
274 char *command=
const_cast<char*
>(s.c_str());
293 pointT *newPoints=
const_cast<pointT*
>(pointCoordinates);
294 int newDimension= pointDimension;
295 int newIsMalloc=
False;
302 qh_init_B(
qh_qh, newPoints, pointCount, newDimension, newIsMalloc);
329 qh_fprintf(
qh_qh,
qh_qh->
ferr, 6209,
"qhull error: missing feasible point for halfspace intersection. Use option 'Hn,n' or Qhull::setFeasiblePoint before runQhull()\n");
void qh_clear_outputflags(void)
void * qh_malloc(size_t size)
const char s_unsupported_options[]
QhullPoint inputOrigin()
Return origin point for qh.input_dim.
QhullRidge – Qhull's ridge structure, ridgeT, as a C++ class.
bool hasQhullMessage() const
hasQhullMessage does not throw errors (~Qhull)
void maybeThrowQhullMessage(int exitCode)
void qh_prepare_output(void)
POD type equivalent to qhT. No virtual members.
QhullPointSet otherPoints() const
void qh_fprintf(FILE *fp, int msgcode, const char *fmt,...)
Qhull()
call runQhull() next
coordT * qh_sethalfspace_all(int dim, int count, coordT *halfspaces, pointT *feasible)
void qh_check_output(void)
#define FORALLfacet_(facetlist)
Coordinates origin_point
qhT for this instance
bool run_called
origin for qh_qh->hull_dim. Set by runQhull()
QhullPoints points() const
QhullVertexList vertexList() const
Return vertices of the convex hull.
void initializeFeasiblePoint(int hulldim)
void defineVertexNeighborFacets()
Automatically called if merging facets or Voronoi diagram.
QhullVertex beginVertex() const
QhullFacetList facetList() const
void qh_check_points(void)
Coordinates feasible_point
True at start of runQhull. Errors if call again.
void clearQhullMessage()
clearQhullMessage does not throw errors (~Qhull)
QhullFacet beginFacet() const
void setDimension(int pointDimension)
void checkIfQhullInitialized()
Interface to Qhull from C++.
void qh_produce_output2(void)
const char s_not_output_options[]
void qh_init_B(coordT *points, int numpoints, int dim, boolT ismalloc)
void qh_setfeasible(int dim)
coordT * coordinates() const
void runQhull(const RboxPoints &rboxPoints, const char *qhullCommand2)
For qhull commands, see http://www.qhull.org/html/qhull.htm or html/qhull.htm.
QhullVertex endVertex() const
QhullPoint origin()
non-const due to QhullPoint
std::string qhullMessage() const
qhullMessage does not throw errors (~Qhull)
Coordinates feasiblePoint() const
void qh_errexit(int exitcode, facetT *facet, ridgeT *ridge)
void qh_vertexneighbors(void)
std::string comment() const
void qh_initflags(char *command)
void qh_getarea(facetT *facetlist)
void qh_initqhull_outputflags(void)
QhullLinkedList< QhullVertex > QhullVertexList
void append(int pointDimension, coordT *c)
QhullFacet endFacet() const
void qh_checkflags(char *command, char *hiddenflags)