diff --git a/cpp/Qhull.cpp b/cpp/Qhull.cpp index e6cdddb42842924eedf557fb4f1de69a5999e1f4..04797d494d5e9786f370d7cdb95b8d3bacd0993f 100644 --- a/cpp/Qhull.cpp +++ b/cpp/Qhull.cpp @@ -426,7 +426,7 @@ maybeThrowQhullMessage(int exitCode, int noThrow) throw() >-------------------------------</a><a name="qh_fprintf">-</a> qh_fprintf(fp, msgcode, format, list of args ) - fp is ignored. + fp is ignored (replaces qh_fprintf() in userprintf.c) s_qhull_output == Qhull notes: diff --git a/cpp/QhullQh.cpp b/cpp/QhullQh.cpp index f7444efef24d821d496af65e6e7dd784e3b068f9..a990d35c53955397ce89269146cf8337fb829312 100644 --- a/cpp/QhullQh.cpp +++ b/cpp/QhullQh.cpp @@ -116,7 +116,7 @@ void QhullQh:: checkIfQhullRan() // FIXUP -- use successful runQhull instead of TEMPsize? Many calls OK even if runQhull error'd { if(qh TEMPsize==0){ // qh_initqhull_buffers() not called - throw QhullError(10023, "Qhull error: output does not exist. Call runQhull() first."); + throw QhullError(10023, "Qhull error: checkIfQhullRan failed. Call runQhull() first."); } }//checkIfQhullRan diff --git a/cpp/RboxPoints.cpp b/cpp/RboxPoints.cpp index 5782e220468eca92cad473210c0d5e99d9034073..dae858cbe1f43151ce6017e50e1b92ac66cce8a0 100644 --- a/cpp/RboxPoints.cpp +++ b/cpp/RboxPoints.cpp @@ -148,7 +148,7 @@ appendPoints(const char *rboxCommand) >-------------------------------</a><a name="qh_fprintf_rbox">-</a> qh_fprintf_rbox(fp, msgcode, format, list of args ) - fp is ignored. + fp is ignored (replaces qh_fprintf_rbox() in userprintf.c) rbox_output == RboxPoints notes: diff --git a/cpp/qhulltest/Qhull_test.cpp b/cpp/qhulltest/Qhull_test.cpp index 7d133bbd59dbcad4a042b935b0b021f98afb5213..dd23b4b695a17e2cad31b4d327fe7afc54fb6005 100644 --- a/cpp/qhulltest/Qhull_test.cpp +++ b/cpp/qhulltest/Qhull_test.cpp @@ -135,11 +135,11 @@ t_message() }catch (const std::exception &e) { const char *s= e.what(); cout<< "INFO : Caught " << s; - QVERIFY(q.hasQhullMessage()); - QCOMPARE(QString::fromStdString(q.qhullMessage()), QString::fromStdString(s).remove(0, 7)); - QCOMPARE(QString::fromStdString(q.qhullMessage()).left(9), QString("qhull err")); + QVERIFY(!q.hasQhullMessage()); // Removed when copied to QhullError + // QCOMPARE(q.qhullMessage(), QString::fromStdString(s).remove(0, 7)); + QCOMPARE(QString::fromStdString(s).left(6), QString("QH6029")); QCOMPARE(q.qhullStatus(), 6029); - q.clearQhullMessage(); + q.clearQhullMessage(); // FIXUP -- review decision to clearQhullMessage at QhullError() QVERIFY(!q.hasQhullMessage()); } q.appendQhullMessage("Append 1"); diff --git a/cpp/road/RoadError.cpp b/cpp/road/RoadError.cpp index 2400a44ded3866b0222639c4ec070ed14574571e..886327bd249ab5c7267fa0e70606e351ed53e771 100644 --- a/cpp/road/RoadError.cpp +++ b/cpp/road/RoadError.cpp @@ -49,7 +49,6 @@ RoadError(const RoadError &e) , log_event(e.log_event) , error_message(e.error_message) { - cerr << "FIXUP RoadError copy construct\n"; }//copy construct RoadError:: diff --git a/cpp/user_eg3.cpp b/cpp/user_eg3.cpp index d45ac623c9368abc78b482204e6be8691e128c84..40dbb0575cbf05c8327969b22ace1e4f8253456e 100644 --- a/cpp/user_eg3.cpp +++ b/cpp/user_eg3.cpp @@ -37,6 +37,9 @@ user_eg3 -- demonstrate calling rbox and qhull from C++.\n\ qhull \"d p\" ... Run qhull and produce output\n\ qhull-cout \"o\" ... Run qhull and produce output to cout\n\ \n\ +For example\n\ + user_eg3 rbox \"10 D2\" \"2 D2\" qhull \"s p\"\n\ +\n\ "; diff --git a/qtpro/qhull-qt/qhull-qt.pro b/qtpro/qhull-qt/qhull-qt.pro index 5330bb4acaa21c1801db346e22496cbb05ffffcf..62b6612c375d3676d4062ec533318aa3f2acb240 100644 --- a/qtpro/qhull-qt/qhull-qt.pro +++ b/qtpro/qhull-qt/qhull-qt.pro @@ -3,9 +3,7 @@ # ------------------------------------------------- QT -= gui TARGET = qhull-qt -CONFIG += console \ - qtestlib \ - debug +CONFIG += console qtestlib CONFIG -= app_bundle TEMPLATE = app LIBS = ../../libqhull.a @@ -81,4 +79,3 @@ HEADERS += cpp/UsingQhullLib.h HEADERS += cpp/road/RoadError.h HEADERS += cpp/road/RoadLogEvent.h HEADERS += cpp/road/RoadTest.h -QMAKE_MOC_SRC += cpp/qhulltest/UsingQhullLib_test.cpp diff --git a/qtpro/qhull/qhull.pro b/qtpro/qhull/qhull.pro new file mode 100644 index 0000000000000000000000000000000000000000..7ddc9996f262b033c3d28fe9d2bbbd3829ccff6d --- /dev/null +++ b/qtpro/qhull/qhull.pro @@ -0,0 +1,17 @@ +# ------------------------------------------------- +# qhull.pro -- Qt project file for qhull.exe +# ------------------------------------------------- +QT -= gui +TARGET = qhull +CONFIG += console +CONFIG -= app_bundle +TEMPLATE = app +LIBS = ../../libqhull.a +DESTDIR = ../.. +OBJECTS_DIR = ../../tmp/obj +MOC_DIR = ../../tmp/moc +RCC_DIR = ../../tmp/rcc +INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp +VPATH = ../.. +SOURCES += src/unix.c +HEADERS += src/qhulllib.h diff --git a/qtpro/qhulllib/qhulllib.pro b/qtpro/qhulllib/qhulllib.pro index 76189a8b3c54f4984c8530427e1d6255e96189ed..c6fd8633561970a09cc8bcca4440474067af703b 100644 --- a/qtpro/qhulllib/qhulllib.pro +++ b/qtpro/qhulllib/qhulllib.pro @@ -4,7 +4,6 @@ # configure -commercial -no-qt3support -no-opengl -no-rtti -qt-style-plastique QT -= gui TARGET = ../../qhull -CONFIG += debug CONFIG -= app_bundle TEMPLATE = lib DESTDIR = ../../tmp/lib diff --git a/qtpro/qhulltest/qhulltest.pro b/qtpro/qhulltest/qhulltest.pro new file mode 100644 index 0000000000000000000000000000000000000000..681364b20edcd9df3afd942dd69d05a3bb44ad1b --- /dev/null +++ b/qtpro/qhulltest/qhulltest.pro @@ -0,0 +1,133 @@ +# ------------------------------------------------- +# qhull-qt.pro -- Qt project file +# ------------------------------------------------- +QT -= gui +TARGET = qhulltest +CONFIG += console qtestlib +CONFIG -= app_bundle +TEMPLATE = app +DESTDIR = ../.. +OBJECTS_DIR = ../../tmp/obj +MOC_DIR = ../../tmp/moc +RCC_DIR = ../../tmp/rcc +INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp +VPATH = ../.. +SOURCES += cpp/Coordinates.cpp +SOURCES += cpp/QhullVertexSet.cpp +SOURCES += cpp/QhullHyperplane.cpp +SOURCES += cpp/PointCoordinates.cpp +SOURCES += cpp/Qhull.cpp +SOURCES += cpp/QhullError.cpp +SOURCES += cpp/QhullEvent.cpp +SOURCES += cpp/QhullFacet.cpp +SOURCES += cpp/QhullFacetList.cpp +SOURCES += cpp/QhullFacetSet.cpp +SOURCES += cpp/QhullPoint.cpp +SOURCES += cpp/QhullPoints.cpp +SOURCES += cpp/QhullPointSet.cpp +SOURCES += cpp/QhullQh.cpp +SOURCES += cpp/QhullRidge.cpp +SOURCES += cpp/QhullSet.cpp +SOURCES += cpp/QhullStat.cpp +SOURCES += cpp/QhullVertex.cpp +SOURCES += cpp/RboxPoints.cpp +SOURCES += cpp/UsingQhullLib.cpp +SOURCES += cpp/road/RoadError.cpp +SOURCES += cpp/road/RoadLogEvent.cpp +SOURCES += cpp/road/RoadTest.cpp +SOURCES += cpp/qhulltest/Coordinates_test.cpp +SOURCES += cpp/qhulltest/PointCoordinates_test.cpp +SOURCES += cpp/qhulltest/Qhull_test.cpp +SOURCES += cpp/qhulltest/QhullFacet_test.cpp +SOURCES += cpp/qhulltest/QhullFacetList_test.cpp +SOURCES += cpp/qhulltest/QhullFacetSet_test.cpp +SOURCES += cpp/qhulltest/QhullHyperplane_test.cpp +SOURCES += cpp/qhulltest/QhullLinkedList_test.cpp +SOURCES += cpp/qhulltest/QhullPoint_test.cpp +SOURCES += cpp/qhulltest/QhullPoints_test.cpp +SOURCES += cpp/qhulltest/QhullPointSet_test.cpp +SOURCES += cpp/qhulltest/QhullRidge_test.cpp +SOURCES += cpp/qhulltest/QhullSet_test.cpp +SOURCES += cpp/qhulltest/qhulltest.cpp +SOURCES += cpp/qhulltest/QhullVertex_test.cpp +SOURCES += cpp/qhulltest/UsingQhullLib_test.cpp +SOURCES += cpp/qhulltest/RboxPoints_test.cpp +HEADERS += cpp/Coordinates.h +HEADERS += cpp/QhullHyperplane.h +HEADERS += cpp/functionObjects.h +HEADERS += cpp/PointCoordinates.h +HEADERS += cpp/Qhull.h +HEADERS += cpp/QhullError.h +HEADERS += cpp/QhullEvent.h +HEADERS += cpp/QhullFacet.h +HEADERS += cpp/QhullFacetList.h +HEADERS += cpp/QhullFacetSet.h +HEADERS += cpp/QhullIterator.h +HEADERS += cpp/QhullLinkedList.h +HEADERS += cpp/QhullPoint.h +HEADERS += cpp/QhullPoints.h +HEADERS += cpp/QhullPointSet.h +HEADERS += cpp/QhullQh.h +HEADERS += cpp/QhullRidge.h +HEADERS += cpp/QhullSet.h +HEADERS += cpp/QhullSets.h +HEADERS += cpp/QhullStat.h +HEADERS += cpp/QhullVertex.h +HEADERS += cpp/RboxPoints.h +HEADERS += cpp/UsingQhullLib.h +HEADERS += cpp/road/RoadError.h +HEADERS += cpp/road/RoadLogEvent.h +HEADERS += cpp/road/RoadTest.h + + + +# Add all files explicitly. The library did not work +# ------------------------------------------------- +# qhulllib.pro -- Qt project file +# ------------------------------------------------- +# configure -commercial -no-qt3support -no-opengl -no-rtti -qt-style-plastique + +SOURCES += src/geom.c +SOURCES += src/geom2.c +SOURCES += src/global.c +SOURCES += src/io.c +SOURCES += src/mem.c +SOURCES += src/merge.c +SOURCES += src/poly2.c +SOURCES += src/poly.c +SOURCES += src/qhulllib.c +SOURCES += src/qset.c +SOURCES += src/random.c +SOURCES += src/rboxlib.c +SOURCES += src/stat.c +SOURCES += src/user.c +# SOURCES += src/usermem.c +# SOURCES += src/userprintf.c +OTHER_FILES += src/Changes.txt +OTHER_FILES += src/index.htm +OTHER_FILES += src/Make-config.sh +OTHER_FILES += src/Makefile.txt +OTHER_FILES += src/Mborland +OTHER_FILES += src/qh-geom.htm +OTHER_FILES += src/qh-globa.htm +OTHER_FILES += src/qh-io.htm +OTHER_FILES += src/qh-mem.htm +OTHER_FILES += src/qh-merge.htm +OTHER_FILES += src/qh-poly.htm +OTHER_FILES += src/qh-qhull.htm +OTHER_FILES += src/qh-set.htm +OTHER_FILES += src/qh-stat.htm +OTHER_FILES += src/qh-user.htm +HEADERS += src/geom.h +HEADERS += src/io.h +HEADERS += src/mem.h +HEADERS += src/merge.h +HEADERS += src/poly.h + +# qhull.h is for backwards compatibility +HEADERS += src/qhulllib.h +HEADERS += src/qhull_a.h +HEADERS += src/qset.h +HEADERS += src/random.h +HEADERS += src/stat.h +HEADERS += src/user.h diff --git a/qtpro/rbox/rbox.pro b/qtpro/rbox/rbox.pro new file mode 100644 index 0000000000000000000000000000000000000000..6872b22776976e643ddaca341a643766b8fe4e21 --- /dev/null +++ b/qtpro/rbox/rbox.pro @@ -0,0 +1,17 @@ +# ------------------------------------------------- +# qhull.pro -- Qt project file for qhull.exe +# ------------------------------------------------- +QT -= gui +TARGET = rbox +CONFIG += console +CONFIG -= app_bundle +TEMPLATE = app +LIBS = ../../libqhull.a +DESTDIR = ../.. +OBJECTS_DIR = ../../tmp/obj +MOC_DIR = ../../tmp/moc +RCC_DIR = ../../tmp/rcc +INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp +VPATH = ../.. +SOURCES += src/rbox.c +HEADERS += src/qhulllib.h diff --git a/qtpro/user_eg3/user_eg3.pro b/qtpro/user_eg3/user_eg3.pro new file mode 100644 index 0000000000000000000000000000000000000000..1bd7ceeeaa1c8df736774918435defa904445c84 --- /dev/null +++ b/qtpro/user_eg3/user_eg3.pro @@ -0,0 +1,100 @@ +# ------------------------------------------------- +# user_eg3.pro -- Qt project file for cpp demonstration program +# ------------------------------------------------- +QT -= gui +TARGET = user_eg3 +CONFIG += console +CONFIG -= app_bundle +TEMPLATE = app +DESTDIR = ../.. +OBJECTS_DIR = ../../tmp/obj +MOC_DIR = ../../tmp/moc +RCC_DIR = ../../tmp/rcc +INCLUDEPATH = ../../cpp;../../cpp/road;../../tmp +VPATH = ../.. +SOURCES += cpp/user_eg3.cpp +SOURCES += cpp/Coordinates.cpp +SOURCES += cpp/QhullVertexSet.cpp +SOURCES += cpp/QhullHyperplane.cpp +SOURCES += cpp/PointCoordinates.cpp +SOURCES += cpp/Qhull.cpp +SOURCES += cpp/QhullError.cpp +SOURCES += cpp/QhullEvent.cpp +SOURCES += cpp/QhullFacet.cpp +SOURCES += cpp/QhullFacetList.cpp +SOURCES += cpp/QhullFacetSet.cpp +SOURCES += cpp/QhullPoint.cpp +SOURCES += cpp/QhullPoints.cpp +SOURCES += cpp/QhullPointSet.cpp +SOURCES += cpp/QhullQh.cpp +SOURCES += cpp/QhullRidge.cpp +SOURCES += cpp/QhullSet.cpp +SOURCES += cpp/QhullStat.cpp +SOURCES += cpp/QhullVertex.cpp +SOURCES += cpp/RboxPoints.cpp +SOURCES += cpp/UsingQhullLib.cpp +SOURCES += cpp/road/RoadError.cpp +SOURCES += cpp/road/RoadLogEvent.cpp + +HEADERS += cpp/Coordinates.h +HEADERS += cpp/QhullHyperplane.h +HEADERS += cpp/functionObjects.h +HEADERS += cpp/PointCoordinates.h +HEADERS += cpp/Qhull.h +HEADERS += cpp/QhullError.h +HEADERS += cpp/QhullEvent.h +HEADERS += cpp/QhullFacet.h +HEADERS += cpp/QhullFacetList.h +HEADERS += cpp/QhullFacetSet.h +HEADERS += cpp/QhullIterator.h +HEADERS += cpp/QhullLinkedList.h +HEADERS += cpp/QhullPoint.h +HEADERS += cpp/QhullPoints.h +HEADERS += cpp/QhullPointSet.h +HEADERS += cpp/QhullQh.h +HEADERS += cpp/QhullRidge.h +HEADERS += cpp/QhullSet.h +HEADERS += cpp/QhullSets.h +HEADERS += cpp/QhullStat.h +HEADERS += cpp/QhullVertex.h +HEADERS += cpp/RboxPoints.h +HEADERS += cpp/UsingQhullLib.h +HEADERS += cpp/road/RoadError.h +HEADERS += cpp/road/RoadLogEvent.h + +# Add all files explicitly. The library did not work +# ------------------------------------------------- +# qhulllib.pro -- Qt project file +# ------------------------------------------------- +# configure -commercial -no-qt3support -no-opengl -no-rtti -qt-style-plastique + +SOURCES += src/geom.c +SOURCES += src/geom2.c +SOURCES += src/global.c +SOURCES += src/io.c +SOURCES += src/mem.c +SOURCES += src/merge.c +SOURCES += src/poly2.c +SOURCES += src/poly.c +SOURCES += src/qhulllib.c +SOURCES += src/qset.c +SOURCES += src/random.c +SOURCES += src/rboxlib.c +SOURCES += src/stat.c +SOURCES += src/user.c +SOURCES += src/usermem.c +# SOURCES += src/userprintf.c + +HEADERS += src/geom.h +HEADERS += src/io.h +HEADERS += src/mem.h +HEADERS += src/merge.h +HEADERS += src/poly.h + +# qhull.h is for backwards compatibility +HEADERS += src/qhulllib.h +HEADERS += src/qhull_a.h +HEADERS += src/qset.h +HEADERS += src/random.h +HEADERS += src/stat.h +HEADERS += src/user.h diff --git a/src/Changes.txt b/src/Changes.txt index 1e29433931f27dac761207edc85fe9fbeaf9ed49..34b56c95a883985e82179f9017197e298a66849f 100644 --- a/src/Changes.txt +++ b/src/Changes.txt @@ -71,8 +71,12 @@ To do - Redo Coordinates w/o vector<> - Change #include to specific -> general - Remove class-static code, check K_GLOBAL_STATIC + - Rename rboxlib and qhulllib to librbox and libqhull + user_eg3 rbox 10 qhull does nothing qhull 2009.1 2008/03/20 + - Use gcc 4.4.0 or later. gcc 4.2.1, 4.2.2, and 4.3.2 -O2 segfaults in qset.c . gcc 4.1.1 was OK + - Bug report http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html - Added user_eg3 as an example of Qhull.cpp - Renamed html/qh-in.htm to html/qh-code.htm - Report not enough points if d points, Delaunay, and not Qz diff --git a/src/user.h b/src/user.h index e19d59e5be1c087f95bdca9e0ce1bb16be1a7ae9..adcfa6625f26bb049723c4455374708c8da778d7 100644 --- a/src/user.h +++ b/src/user.h @@ -47,7 +47,7 @@ Code flags -- If add new messages, assign these values and increment. - def counters = [27, 1047, 2059, 3025, 4068, 5003, 6231, 7078, 8143, 9410] + def counters = [27, 1047, 2059, 3025, 4068, 5003, 6232, 7078, 8143, 9410] See: qh_ERR* [qhulllib.h] */ diff --git a/src/userprintf.c b/src/userprintf.c index d780b06e6414d0549ff64bb1ee213f3ae8c42925..2afe46ce2e066cb048ecc6a6e882b094f70aacba 100644 --- a/src/userprintf.c +++ b/src/userprintf.c @@ -42,6 +42,10 @@ void qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... ) { va_list args; + if (!fp) { + fprintf(stderr, "QH6232 Qhull internal error (userprintf.c): fp is 0. Wrong qh_fprintf called.\n"); + qh_errexit(6232, NULL, NULL); + } va_start(args, fmt); if (qh ANNOTATEoutput) { fprintf(fp, "[QH%.4d]", msgcode); @@ -55,6 +59,10 @@ void qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... ) { void qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... ) { va_list args; + if (!fp) { + fprintf(stderr, "QH6231 Qhull internal error (userprintf.c): fp is 0. Wrong qh_fprintf_rbox called.\n"); + qh_errexit_rbox(6231); + } if (msgcode >= MSG_ERROR && msgcode < MSG_STDERR) fprintf(fp, "QH%.4d ", msgcode); va_start(args, fmt);