Skip to content
Snippets Groups Projects
  1. Dec 29, 2018
    • Brad Barber's avatar
      Qhull 2018.0.1 2018/12/28 (7.3.0) · 6ebf10e2
      Brad Barber authored
      merge branch 'next' into master
    • Brad Barber's avatar
    • Brad Barber's avatar
      Qhull 2018.0.1 2018/12/28 (7.3.0) · a0e0374a
      Brad Barber authored
      Qhull options
       - Add option 'Tf' to flush each qh_fprintf for debugging segfaults
       - Add Q14-no-merge-pinched: do not merge pinched vertices for duplicate ridge
         Default if post-merge only ('Cn'), 'Qgood-only', or 2-d convex hulls
       - Add Q15-allow-wide-maxout: do not error on qh_check_maxout failures
       - Add Q16-simplex-merge: test opposite vertex instead of centrum for merges
       - option 'f' (print facets): updated flags for facets
         'seen' and 'seen2' flags not listed (listed if tracing)
         Renamed 'new' to 'newfacet'
         'isarea' if area is listed for the facet
         'cycledone' if qh_mergefacet completed
         Renamed 'MERGE' to 'MERGEridge' in the facet neighors (for merging)
         Renamed 'DUP' to 'DUPLICATEridge' in the facet neighors (for merging)
         Comment '- horizon ridge to visible facet' added for tentative new facets
       - option 'f' (print facets): updated flags for ridges
         'mergevertex' and 'mergevertex2' if a ridge vertex will be merged
         'simplicialtop' and 'simplicialbot' if the top/bottom facet is simplicial
       - option 'f' (print facets): updated flags for vertices
         Renamed 'ridgedeleted' to 'delridge'
         'newfacet' if the vertex belongs to a new facet on qh.newfacet_list
         'seen' and 'seen2' listed if tracing
       - Option 'T3' prepend message number for trace levels 0-3
         e.g., "[QH1040]qh_findhorizon: find horizon..."
       - Option 'TCone_stop' stops before vertex merge due to duplicate ridges (unlikely)
       - Option 'Ts' (qh_initbuild): print command prompt at start of run for segfaults
       - Rename option 'U-coplanar-distance' to 'U-max-coplanar' (qh.MAXcoplanar)
      
      Qhull documentation
       - Explanation of clobbered warning for Qhull::runQhull and qh_new_qhull
       - html/index.htm: Add "Nearly coincident points" to "When to use Qhull"
       - html/index.htm: Add Tomilov's qhullhull.hpp for general position input.
       - html/qh-eg.htm: Add 'Q0' link to eg.14.sphere.corner
       - html/qh-faq.htm,qh-code.htm: merge slivers in a Delaunay triangulation [M. Treacy]
       - html/qh-optq.htm: Update documentation for 'Qx' and its default behavior
       - html/qh-impre.htm: Rewrote notes on 'Nearly coincident points within 1e-13'
       - geom_r.c/qh_distplane: nearly coplanar points may return the same distance for different points
       - Update copyright to 2018
      
      Qhull builds
       - Move 'extern "C" {}' logic from C++ to C headers [C. Atkins, github]
       - build/*-64.vcxproj Updated for tool set 8.1
       - CMakeLists.txt: Add note for "dynamic linking" of qhull executables [M. Atzeri]
      
      Bugs fixed
       - libqulll_r.c/qh_findbest: search from newfacet_list instead of f.next if !bestfacet
       - merge_r.c/qh_find_newvertex: use v.seen to avoid maxvisit > qh.vertex_visit
       - merge_r.c/qh_merge_simplex: repeat with next ridge after qh_delridge_merge
       - merge_r.c/qh_vertexridges: 'qh.visit_id += 2' to avoid visit_id collision
       - poly_r.c/qh_appendfacet: update qh.visible_list if qh.newfacet_list/visible_list are empty
       - poly2_r.c/qh_check_maxout: check qh.min_vertex if qh.VERIFYoutput/CHECKfrequently
       - poly2_r.c/qh_checkpolygon: do not report qh.visible_list error if visible_list and newfacet_list are defined but empty
       - stat_r.c/qh_printallstatistics,qh_printstatistics: 'const char *string' instead of 'char *string' for !qh_KEEPstatistics
      
      Qhull error reporting
       - libqulll_r.c/qh_findhorizon: error if no neighbors for a visible facet
       - libqulll_r.c/qh_findbestnew: error if facet sentinel (!facet->next)
       - libqhull_r.c/qh_nextfurthest: error if infinite loop
       - libqhull_r.c/qh_partitioncoplanar: error if partition into a visible facet
       - libqhull_r.c/qh_partitionpoint: error if partition into a visible facet
       - libqhull_r.c/qh_partitionvisible: error if deleted vertex with an empty qh.newfacet_list
       - merge_r.c/qh_checkdelfacet: check that mergeset does not reference facet
       - merge_r.c/qh_checkdelridge: check that qh_delridge_merge is not needed for deleted ridges
                   Call from qh_mergecycle, qh_makenewfacets, qh_attachnewfacets
       - merge_r.c/qh_maydropneighbor: error if simplicial facet or neighbor
       - merge_r.c/qh_merge_facet: error if wide merge (disabled with 'Q15')
       - merge_r.c/qh_merge_nonconvex: error if unexected mergetype
       - poly_r.c/qh_matchneighbor: convert error QH6106 (two facets with same vertices) to a warning (QH7084) and automatic fix
       - poly2_r.c/qh_check_maxout: error if wide qh.max_outside/min_vertex (disabled with 'Q15')
       - poly2_r.c/qh_check_maxout: warn if wide maxout for vertices (for diagnosing errors)
       - poly2_r.c/qh_check_maxout: warn if point is outside f.outside (for diagnosing errors)
       - poly2_r.c/qh_check_maxout: warn if 'f.maxoutside > qh.max_outside'
       - poly2_r.c/qh_check_maxout: changed comparison from 'dist == maxoutside' to 'dist >= maxoutside' (allow multiple warnings)
       - poly2_r.c/qh_checkfacet: error if 'redundant' or 'degenerate', but neither 'visible' nor qh.degen_mergeset
       - poly2_r.c/qh_checkfacet: error if 'dupridge' or 'newmerge', but not 'newfacet'
       - poly2_r.c/qh_checkfacet: error if neighbor of facet is 'visible' (i.e., deleted)
       - poly2_r.c/qh_checkfacet: report 'OK due to merging' as trace4 (QH4073) instead of error QH6134
       - poly2_r.c/qh_checkpolygon: error if qh.visible_list is after qh.newfacet_list
       - poly2_r.c/qh_checkpolygon: error if f.newfacet before qh.visible_list or qh.newfacet_list
       - poly2_r.c/qh_checkpolygon: error qh.newfacet_list without f.newfacet
       - poly2_r.c/qh_checkpolygon: error if f.visible not on qh.visible_list
       - poly2_r.c/qh_checkpolygon: error if qh.visible_list without f.visible
       - poly2_r.c/qh_checkpolygon: error if qh.newfacet_list is not on qh.facet_list
       - poly2_r.c/qh_checkpolygon: error if v.newfacet not on qh.newvertex_list
       - poly2_r.c/qh_checkpolygon: error if qh.newvertex_list is not on qh.vertex_list
       - poly2_r.c/qh_checkpolygon: error if a facet occurs twice in v.neighbors
       - poly2_r.c/qh_checkpolygon: error if vertex not in f.vertices for facets in v.neighbors
       - poly2_r.c/qh_checkpolygon: error if facet not in v.neighbors for vertices in f.vertices
       - poly2_r.c/qh_delvertex: error if vertex previously deleted but not partitioned as a coplanar point
       - user_r.c/qh_errexit: clear printed flags on statistics (qh_allstatistics)
       - user_r.c/qh_errprint: print vertex and ridge before facets
       - user_r.c/qh_errprint: print vertex and ridge before facets
       - user_r.c/qh_printfacetlist: add 'qh_printfacetlist:' for rapid navigation
      
      Source code additions
       - mergeT: expanded for vertices and ridges
       - mergeType: add MRGconcavecoplanar, MRGtwisted, MRGsubridge, MRGvertices, and MRGcoplanarhorizon
       - qtT.ALLOWwidemaxout: true if 'Q15', allow qh.WIDEmaxoutside increases in qh_check_maxout
       - qtT.FLUSHprint: true if 'Tf', flush output on qh_fprintf
       - qtT.MERGEpinched: false if 'Q14', merge pinched vertex due to duplicate ridge
       - qtT.SIMPLEXmerge: true if 'Q16', test_appendmerge tests opposite vertex instead of centrum
       - qtT.first_newfacet: id of first new facet in qh_buildcone, other new facets were merged
       - qtT.isRenameVertex: true during qh_merge_pinchedvertices
       - qtT.NEWtentative: true while new facets are tentative due to qh.MERGEpinched or ONLYgood
       - qtT.repart_facetid: previous facetid to prevent recursive qh_partitioncoplanar
       - qtT.retry_addpoint: number of retries of qh_addpoint due to qh.MERGEpinched
       - qtT.vertex_mergeset: set of vertex merges for qh_next_vertexmerge
       - ridgeT.mergevertex and mergevertex2 if a ridge vertex will be merged
       - ridgeT.simplicialtop and simplicialbot if the top/bottom facet is simplicial
       - vertexT.partitioned: true if deleted vertex partitioned by qh_partitionvisible
       - geom2_r.c/qh_furthestnewvertex: return furthest unvisited, new vertex to a facet
       - geom2_r.c/qh_furthestvertex: return furthest unvisited vertex to a facet
       - geom2_r.c/qh_vertex_bestdist: return nearest distance between vertices
       - geom2_r.c/qh_vertex_bestdist2: return nearest vertex pair between vertices
       - geom2_r.c/qh_vertex_isbelow: test vertexA distance to vertexB's simplicial facets and vice versa
       - libqhull_r.c/qh_buildcone: split out qh_makenewfacets,etc. from qh_addpoint
       - merge_r.c/qh_all_vertexmerges: perform vertex merges in qh.vertex_mergeset
       - merge_r.c/qh_appendvertexmerge: append vertex merge to qh.vertex_mergeset
       - merge_r.c/qh_delridge_merge: split out ridge maintenance from qh_renameridgevertex and qh_merge_simplex
       - merge_r.c/qh_hasmerge: True if mergeset has mergetype for facetA and facetB
       - merge_r.c/qh_initmergesets,qh_freemergesets: init/free of qh.*_mergeset with error reporting
       - merge_r.c/qh_maybe_duplicateridge: add MRGvertices if neighboring facet has another ridge with the same vertices
       - merge_r.c/qh_maybe_duplicateridges: add MRGvertices if ridges with the same vertices
       - merge_r.c/qh_merge_dupridges: split out conversion of dupridges to MRGridge merges from qh_makeridges
       - merge_r.c/qh_merge_pinchedvertices- merge pinched vertices in qh.vertex_mergeset to avoid qh_forcedmerges of duplicated ridges
       - merge_r.c/qh_merge_twisted: merge twisted facets that are above and below their neighbors (4D+ and non-simplicial)
       - merge_r.c/qh_neighbor_vertices,qh_neighbor_vertices_facet: return neighboring vertices for a vertex (not in subridge)
       - merge_r.c/qh_next_facetmerge: split out next merge from qh_all_merges and replace qsort
       - merge_r.c/qh_next_vertexmerge: select next vertex merge by distance, allow one MRGsubridge merge
       - merge_r.c/qh_opposite_horizonfacet: return horizon facet for a merge facet and its opposite vertex
       - merge_r.c/qh_reducevertices: qh_merge_degenredundant if qh_remove_extravertices or qh_rename_sharedvertex
       - merge_r.c/qh_remove_mergetype: remove mergetype merges from mergeset
       - merge_r.c/qh_rename_adjacentvertex: rename oldvertex as newvertex, must be adjacent (i.e., in the same subridge)
       - merge_r.c/qh_test_cemtrum_merge: split out test centrum convexity from qh_test_appendmerge
       - merge_r.c/qh_test_simplex_merge: test simplex convexity and append non-convex facets to qh.facet_mergeset
       - merge_r.c/qh_test_nonsimplicial_merge: test nonsimplicial convexity and append non-convex facets to qh.facet_mergeset
       - merge_r.h/FOREACHmergeA_,FOREACHmerge_i_: add macros for mergeset iteration
       - poly_r.c/qh_getreplacement: split out new facet for visible facet from qh_partitionvisible and qh_merge_degenredunant
       - poly2_r.c/qh_addfacetvertex: split out add newvertex to f.vertices if not already there from qh_merge_simplex
       - poly2_r.c/qh_matchdupridge_coplanarhorizon: match duplicate ridges with the same coplanar horizon, instead of qh_matchdupridge
       - poly2_r.c/qh_opposite_vertex: return the opposite vertex in facetA to neighbor
       - poly2_r.c/qh_replacefacetvertex: replace oldvertex with newvertex in f.vertices
       - user_r.h/qh_RATIOconcavehorizon: ratio of horizon vertex distance to qh.max_outside for concave, twisted new facets in qh_test_nonsimplicial_merge
       - user_r.h/qh_RATIOconvexmerge: ratio of vertex distance to qh.min_vertex for clearly convex new facets in qh_test_nonsimplicial_merge
       - user_r.h/qh_RATIOcoplanarapex: ratio of best distance for coplanar apex vs. vertex merge in qh_getpinchedmerges
       - user_r.h/qh_RATIOcoplanaroutside: ratio to repartition a coplanar point as an outside point in qh_partitioncoplanar and qh_check_maxout
       - user_r.h/qh_RATIOpinchedsubridge: ratio to qh.ONEmerge to accept vertices in qh_findbest_pinchedvertex
       - user_r.h/qh_RATIOtrypinched: ratio to qh.ONEmerge to merge twisted facets in qh_merge_twisted
       - user_r.h/qh_RATIOtwisted: maximum ratio to qh.ONEmerge to merge twisted facets in qh_merge_twisted
       - user_r.h/qh_WIDEmaxoutside: precision ratio for maximum increase for qh.max_outside in qh_check_maxout
       - user_r.h/qh_WIDEmaxoutside2: precision ratio for maximum qh.max_outside in qh_check_maxout
       - user_r.h/qh_WIDEpinched: merge ratio for distance between pinched vertices compared to current facet width for qh_getpinchedmerges and qh_next_vertexmerge
      
      Source code changes
       - Change " = " to "= " (avoid confusion with " == ")
       - Improved error messages, tracing, and code comments throughout
       - Moved qh_check_dupridge from poly2_r.c to merge_r.c.  It is used for merging
       - Moved qh_printlists from poly2_r.c to io_r.c.  Useful for debugging
       - Removed qh_compareangle and qh_comparemerge.  Replaced by qh_next_facetmerge
       - Renamed 'qh_precision' to 'qh_joggle_restart'.  It restarts qhull to avoid a precision error.
       - Renamed 'Qhull internal error' to 'qhull internal error' for consistency
       - Renamed mergeT.type to mergetype.  Same as parameters and local variables
       - Renamed vertexT.newlist to newfacet. True if on a new facet
       - Renamed qh_matchduplicates to qh_matchdupridge (poly2_r.c).  A 'duplicates' is ridges with duplicate vertices
       - Use coordT for distances instead of realT.  Needs further review.
       - qh_NOmerge: include comments in #ifndef
       - global_r.c/qh_freebuffers: use the same order as qh_initbuffers
       - global_r.c/qh_freebuild: free the global sets, qh.degen_mergeset,etc.
       - io_r.c/qh_printfacetheader: print 'MERGEridge' instead of 'MERGE' to match name of flag
       - io_r.c/qh_printfacetheader: print 'DUPLICATEridge' instead of 'DUP' to match name of flag
       - libqhull_r.c/qh_partitioncoplanar: change qh.findbestnew to a parameter (search all new facets)
       - libqhull_r.c/qh_partitioncoplanar: repartition a coplanar point if far outside
                      typically due to a twisted facet in D4+ with almost coincident vertices
       - libqhull_r.c/qh_partitionpoint: if outside set is empty, set f.newfacet and adjust qh.facet_next
       - libqhull_r.c/qh_partitionvisible: prevent duplicate partitions of deleted vertices
       - libqhull_r.c/qh_partitionvisible: test against !f.next instead of qh.facet_tail.  Both indicate sentinel
       - mrege_r.h/mergeType: reordered mergetypes is preference order
       - merge_r.c: identify MRGconcavecoplanar facets that are above and coplanar with their neighbors
       - merge_r.c/mergetypes: string names for mergeType
       - merge_r.c/qh_all_merges: clear wasmerge and othermerge on qh_reducevertices.  Avoids extra calls
       - merge_r.c/qh_appendmergeset: add parameters for m.dist and m.angle
       - merge_r.c/qh_appendmergeset: initialize all fields of mergeT
       - merge_r.c/qh_copynonconvex: clear old r.nonconvex for consistency.  Ridge will be deleted soon
       - merge_r.c/qh_degen_redundant_neighbors: check neighbors of delfacet instead of facet.  Faster and it matches definition
       - merge_r.c/qh_mark_dupridges: add 'allmerges' parameter for dupridges vs. pinched vertices
       - merge_r.c/qh_mark_dupridges: test for duplicate vertices to avoid duplicate MRGridge
       - merge_r.c/qh_merge_cycle_all: test for duplicate ridges at end of merge_cycle_all (qh_maybe_duplicateridges)
       - merge_r.c/qh_merge_dupridges: clear mergeridge/mergeridge2 flags (not needed on first call)
       - merge_r.c/qh_merge_facet: test for qh_degen_redundant_facet and qh_maybe_duplicateridges
       - merge_r.c/qh_merge_facet: add mergeType parameter for logging
       - merge_r.c/qh_merge_facet: rename 'apex' to 'opposite' (not always apex)
       - merge_r.c/qh_merge_simplex: identify 'isnew' instead of 'issame' (more accurate)
       - merge_r.c/qh_remove_extravertices: skip for simplicial facets
       - merge_r.c/qh_renamevertex: test qh_maybe_duplicateridge if qh_renameridgevertex
       - merge_r.c/qh_renamevertex: test qh_degen_redundant_facet for oldvertex neighbors
       - merge_r.c/qh_renamevertex: test qh_degen_redundant_neighbors for oldvertex nonsimplicial neighbors
       - merge_r.c/qh_renamevertex: test qh_maybe_duplicateridge if qh_renameridgevertex
       - merge_r.c/qh_renamevertex: test qh_degen_redundant_facet oldfacet
       - merge_r.c/qh_tracemerge: add mergeType parameter for logging
       - merge_r.c/qh_test_appendmerge: calls qh_test_simplex_merge, qh_test_centrum_merge, or qh_test_nonsimplicial_merge as needed
       - merge_r.c/qh_vertexridges: add 'allneighbors' parameter to test all neighbors of a vertex
       - merge_r.c/qh_vertexridges_facet: optimize qh_setin by common cases
       - poly_r.c/qh_checkflipped: move call from qh_matchnewfacets to qh_setfacetplane.  Allow call of qh_setfacetplane from qh_initialhull to reverse orientation
       - poly_r.c/qh_matchneighbor: call qh_setfacetplane/qh_checkflipped on-demand to support qh.NEWtentative
       - poly_r.c/qh_matchnewfacets: returns maxdupdist for duplicate ridges
       - poly_r.c/qh_matchnewfacets: move qh_joggle_restart from qh_matchduplicates ("ridge with multiple neighbors")
       - poly_r.c/qh_matchnewfacets: try to match ridges with coplanar horizon (qh_matchdupridge_coplanarhorizon)
       - poly_r.c/qh_updatevertices: use qh_setunique to pdate vertex neighbors (due to pinched vertex merge)
       - poly2_r.c/qh_checkfacet: optimize qh_setequal of ridges with the same vertices
       - poly2_r.c/qh_checkpolygon: do not include visible facets in totvertices
       - poly2_r.c/qh_initialhull: use f.flipped instead of qh_distplane/qh_checkflipped (qh_checkflipped called from qh_setfacetplane)
       - poly2_r.c/qh_matchdupridge: was qh_matchduplicates in qhull 2015.2
       - poly2_r.c/qh_matchdupridge: detect duplicate facets/ridges and force vertex merge
       - poly2_r.c/qh_matchdupridge: separate code for qh_DUPLICATEridge/f.tricoplanar for improved logging
       - poly2_r.c/qh_matchdupridge: if !makematch, collect best match via flipped and qh_getdistance between facets
       - poly2_r.c/qh_resetlists: clear f.dupridge
       - poly2_r.c/qh_triangulate: clear f.degenerate at end (degenerate tricoplanar facets)
       - poly2_r.c/qh_triangulate_link: skip duplicate MRGmirror merges
       - poly2_r.c/qh_triangulate_mirror: skip duplicate MRGmirror merges and previously deleted MRGmirror facets
      a0e0374a
  2. Dec 28, 2018
  3. Sep 26, 2018
    • Antony Lee's avatar
      Fix some apparently missing braces. · 33ace207
      Antony Lee authored
      Caught by gcc's -Wmisleading-indentation.
      
      Note: Technically this changes the execution flow at that point; I
      haven't checked whether this is desired but it looks like the previous
      version was a incorrect...
      33ace207
  4. Jan 21, 2017
  5. Jan 18, 2017
  6. Jun 17, 2016
  7. Jun 15, 2016
  8. Feb 07, 2016
  9. Jan 23, 2016
  10. Jan 20, 2016
    • Chuck Atkins's avatar
      Make C headers safe for C++ inclusion. · 2681baa6
      Chuck Atkins authored
      This commit moves the extern "C" { ... } logic into headers themselves.
      This way, it's the headers responsibility to define it's linkage
      appropriately and the consuming C and C++ code can both use "#include"
      without ifdef guards.
      2681baa6
  11. Jan 19, 2016
    • Brad Barber's avatar
      Qhull 2015.2 2016/01/18 (7.2.0) · 5a79a000
      Brad Barber authored
       - Fixed memory leak in ~QhullQh [M. Sandim]
         QhullQh.cpp: call checkAndFreeQhullMemory() in the destructor.  Otherwise memT is not freed.
         Remove checkAndFreeQhullMemory() from Qhull.h.  It is not needed.
         Remove calls to checkAndFreeQhullMemory in qhulltest.  It is called by ~QhullQh()
         libqhull_r.h: Document qh_ASvornoi and facetT.center
         qh_freeqhull: if qh_NOmem, use qh_ALL
         qh_memalloc: short memory is freed by qh_memfreeshort unless qh_NOmem
         qh_memstatistics (mem.c): call qh_memcheck() as done in mem_r.c
         qh_new_qhull calls qh_memcheck
         qh_newvertex: free vertex on error
         qh_projectinput: Free memory allocations on error
         qh_rboxpoints: free simplex on error
         qh_sethalfspace_all: Fixed memory leak on error QH8032 feasible not inside halfspace
         qh_triangulate_facet: For TRInormals ('Q11') replace qh_copypoints with qh_memalloc
         qh_triangulate_facet: Document qh.TRInormals
         qh_voronoi_center: Free center on error
         qhulltest: Fixed memory leak of s_testcases by calling RoadTest::deleteTests()
         qhulltest: The 'add_*_test' functions append the test object to RoadTest::s_testcases
         ~RoadTest: declare virtual for Q_OBJECT, removeAll not needed
         user_eg2: Check memory at end of each run
         user_r.h: Add QHULL_CRTDBG for invoking Microsoft's memory leak detector
         use _MSC_VER instead of QHULL_OS_WIN for QHULL_CRTDBG
         Call qh_freeqhull with qh_ALL/!qh_ALL instead of 'True/False'
         Include user_r.h with RoadError,h for QHULL_CRTDBG
         Invoke _CrtSetDbgFlag... at beginning of program
         Moved user_r.h/libqhull_r.h/qhull_ra.h as first include (for QHULL_CRTDBG)
         Moved QHULL_OS_WIN from qhull_ra.h to user_r.h
         Removed __CYGWIN__ from QHULL_OS_WIN (same as Qt's qglobal.h)
      
       - check_dupridge: A bounding box is not sufficient to avoid dupridge errors
       - qh_findbestneighor: Error if qh.CENTERtype is qh_ASvoronoi (i.e., no merging now)
       - qh_printstatlevel: Remove unused parameter, 'start'
       - QhullLinkedList::last() and back(): Return T instead of T& (T is computed)
      
       - qh-code.htm: "How to convert code to reentrant Qhull"
         Update "Nearly coincident points on an edge"
         Add 2012 size of data structures to "Qhull on 64-bit computers"
       - html/index.htm: Add CGAL to "When to use"
       - qh-optq.htm: Add documentation for option 'Q12'
       - Move suggestions from Changes.txt to qh-code.htm#enhance
       - user_r.h: Fixed qh-us_r.html links
       - Fixed links in html pages
      
       - QhullIterator and QhullLinkedList: Include <iterator> [B. Boeckel]
       - Moved include file for each C++ source file to the top of the includes
       - Prepend cpp includes with "libqhullcpp/"
       - RoadLogEvent includes RoadLogEvent.h
       - QhullIterator.h: Only QHULL_DECLARE_SEQUENTIAL_ITERATOR is used.
      
       - Compared src/libqhull/* to src/libqhull_r/* and resolved differences
       - qh_printpoint in io.c skips qh_IDnone like io_r.c
       - qhull_p-exports.def: Added three missing exports
       - set_r.h: Removed countT. Too many issues
      
       - libqhull_r/Makefile: Add help prompts to 'make qtest'
       - libqhull.pro: Add '../libqhull/' to sources and headers
       - libqhull/Makefile: Fixed -I,./,,/src
      
       - qhull-zip.sh: Add CMakeModules to tarball [C. Rosenvik]
       - CMakeLists.txt: Add targets qhullp and user_egp for qh_QHpointer and libqhull_p
       - Reorganized 'make help'
       - Makefile cleanall: Delete testqset and qhulltest from bin/
       - Fix filetype of Unix-only files
       - Fix Unix line endings for Makefile and check in qhull-zip.sh
       - Fix Windows line-endings and check in qhull-zip.sh
       - qhull-zip.sh: Check for Unix text files
  12. Jan 09, 2016
  13. Jan 07, 2016
    • Brad Barber's avatar
    • Brad Barber's avatar
      Qhull 2015.1 2016/01/03 (7.1.0) · 41cb4fc8
      Brad Barber authored
       - Add Rbox option 'Cn,r,m' to add nearly coincident points.  Trigger for duplicate ridges
       - Add Qhull option 'Q12' to ignore error on wide merge due to duplicate ridge
      
       - qh_findbestlower: Call qh_findfacet_all to fix rare "flipped or upper Delaunay" error QH6228.
         QH6228 input provided by J. Metz.  Reported (date order): L. Fiaschi, N. Bowler, A. Liebscher, V. Vieira, N. Rhinehart, N. Vance, P. Shafer
       - qh_check_dupridge: Check if wide merge due to duplicate ridge from nearly coincident points
       - qh_initialhull: Fix error messages for initial simplex is flat
       - qh_determinant: increased 2-d and 3-d nearzero by 10x due to a counter-example
       - rbox: Add qh_outcoord() to output coordinates w/ or w/o iscdd
       - qh_meminit (mem.c): Add call to qh_memcheck
       - Compare libqhull/... to libqhull_r/... and resolve differences
      
       - Update builds for DevStudio (qhull.sln for msdev 2005..2009, qhull-32.sln and qhull-64.sln for recent releases)
      
       - qh-impre.htm: Add a section about precision errors for 'Nearly coincident points on an edge'
       - html/index.htm#geomview: Document how to install, build, and use Geomview.
       - html/index.htm: Emphasize program links and move related urls to end
       - qhull/index.htm: Emphasize manual, geomview, and imprecision
       - Fix documentation links in libqhull_r/index.htm
       - Add 'Functions' link to documentation headers
       - Change '<A>...</A>' to '<a>...</a>'
       - libqhull_r/index.htm -- Add instructions for configuring web browsers for source links.
       - libqhull_r/ -- Fix source links for ..._r.htm files
      41cb4fc8
  14. Jan 02, 2016
    • Brad Barber's avatar
      Add rbox option 'Cn,r,m'. It may trigger wide facets due to nearly coincident points. · 0b7fda5b
      Brad Barber authored
      If this occurs, Qhull 2015.1 will report an error.  For Delaunay triangulations a
      workaround is to add a bounding box to the input set.
      
      html/qh-impre.htm
        Add a section about precision errors for 'Nearly coincident points on an edge'
      
      html/index.htm#geomview
        Add instructions for building Geomview on Windows.
        Add instructions for using Geomview to view Qhull examples.
      0b7fda5b
  15. Nov 10, 2015
    • Brad Barber's avatar
      Qhull 2015.0.7 2015/11/09 (7.0.7) · 9f0abe77
      Brad Barber authored
       - Fix return type of operator-> in QhullLinkedList and other collection classes [F. Jares]
       - Fix return types for QhullLinkedList
       - Fix return types for QhullPoints
       - Simplify return type for Coordinates::operator[] (same as QList)
       - Add const to operators for QhullSet::iterator and add documentation
       - Coordinates.h: Fix return types for operations of iterator and const_iterator
       - Drop use of Perforce changelist number in qhull_VERSION of CMakeLists.txt
       - Rename the md5sum files as *.tgz.md5sum instead of *-tgz.md5sum
       - Fix build dependency for testqset_r [asekez]
       - rbox.c depends on Qhull due to qh_lib_check which uses qh_version2 for error messages
       - QhullFacet_test.cpp: Annotate Qhull invocations.   Allows their repetition.
       - QhullFacet_test.cpp: Adjust epsilon on distance tests
       - Do not create libqhullcpp as a shared library.  Qhull C++ classes may change layout and size.
       - qhull-cpp.xml: Make a relative path to road-faq.xsl
      9f0abe77
  16. Nov 04, 2015
  17. Oct 23, 2015
    • Brad Barber's avatar
      Qhull 2015.0.6 2015/10/20 (7.0.6.2013) · 8d4c7240
      Brad Barber authored
       - In the libraries, exit() is only called from qh_exit().  qh_exit may be redefined.
       - Add qh_fprintf_stderr to usermem.c.  May be overridden to avoid use of stderr [D. Sterratt]
         Add usermem to testqset builds
       - Remove most instances of stderr/stdout from libqhull, libqhull_r, and libqhullcpp [D. Sterratt]
         qh_fprintf_stderr may be redefined.  qh_meminit and qh_new_qhull use stderr as the default ferr
       - qh_initflags: Use qh.fout instead of stdout for 'TO file'.  A library caller may define a different qh.fout.
       - qh_settemppush: Call qh_fprintf() instead of fprintf() on error.
       - Rename qh_call_qhull as "Qhull-template" from user.c.  Updated its references.
      
       - qh-code.htm: "How to avoid</a> exit(), fprintf(), stderr, and stdout"
       - html/index.htm: Fix table of contents for qh-code
       - libqhull_r/index.htm: Rewrite introduction to Reentrant Qhull
       - qh-faq.htm: Rewrite "Can Qhull use coordinates without placing  them in a data file?"
       - qh-get.html: Link to github
       - Remove qhull_interface.cpp from the documentation
      8d4c7240
  18. Oct 15, 2015
    • Brad Barber's avatar
      Qhull 2015.0.5 2015/10/12 (7.0.5.1995) · b3f9da21
      Brad Barber authored
      - qh_new_qhull: default 'errfile' is 'stderr'.  outfile and errfile are optional [B. Pearlmutter]
      - qh_new_qhull: returns qh_ERRinput instead of exit() if qhull_cmd is not "qhull ..." [B. Pearlmutter]
      - qhalf_r.c,etc: Add clear of qh.NOerrexit
      - global.c: gcc 4.4.0 mingw32 segfault cleared by adding comment
      - usermem_r-cpp.cpp: Optional file to redefine qh_exit() as throw "QH10003.." [B. Pearlmutter]
        qh_exit() is called by qhull_r when qh_errexit() is not available.
      
      - html/index.htm:  Add bibliographic reference to Golub & van Loan and annotated the source references
      - qhalf.htm: A halfspace is the points on or below a hyperplane [D. Strawn]
      - qh-opto.htm#n: Defined inside, outside, on, above, and below a hyperplane [D. Strawn]
      - qhalf.htm#notes: Recast the linear program using negative halfspaces (as used by Qhull) [D. Strawn]
      - qhull_a.h: Fix comment '#include "libqhull/qhull_a.h" [fe rew]
      
      - build/qhull*.pc.in: Add templates for pkg-config (derived from Fedorra) [P. McMunn]
        https://bitbucket.org/mgorny/pkg-config-spec/src/c1bf12afe0df6d95f2fe3f5e1ffb4c50f018825d/pkg-config-spec.txt?at=master&fileviewer=file-view-default
      - Makefile: Remove user_eg3.o from LIBQHULLCPP_OBJS
      - Makefile: Add .h dependencies for unix_r.o, etc.
      - libqhull/Makefile: Fix build of rbox
      - libqhull_r/Makefile: Fix build -I
      - qhull.sln/user_eg3:  Add dependency on libcpp
      b3f9da21
  19. Oct 01, 2015
    • Brad Barber's avatar
      Updates for www.qhull.org · 3487377b
      Brad Barber authored
      3487377b
    • Brad Barber's avatar
      Qhull 2015.0.4 2015/9/30 (7.0.4.1984) · 3c8360bf
      Brad Barber authored
        Preliminary Qhull release available at http://www.qhull.org/news
      
       - Visual Studio builds for VS-2010+ 32-bit and 64-bit
       - Unix tarball includes version number (e.g., qhull-2015-src-7.1.0.1940.tgz) [Hauptman]
       - qhull -V -- Display Unix version number for qhull [Hauptman]
       - Update eg/make-vcproj.sh for vcxproj Visual Studio builds
      
       - README.txt: updated builds and reentrant Qhull
       - Add documentation for QHULL_LIB_CHECK
       - qh_lib_check: Check for unknown QHULL_LIB_TYPE
       - qh-code.htm: Add memory requirements for 32- and 64-bit
      3c8360bf
  20. Sep 23, 2015
    • Brad Barber's avatar
      Update $Id:$ · b16589eb
      Brad Barber authored
      b16589eb
    • Brad Barber's avatar
      Merge branch 'next' · f25c294a
      Brad Barber authored
      f25c294a
    • Brad Barber's avatar
      Revert "Revert "Merge branch 'next'"" · 859eebca
      Brad Barber authored
      Accidently reverted merge from next
      
      This reverts commit c27f1515.
      859eebca
    • Brad Barber's avatar
      Revert "Revert "Merge branch 'next'"" · bfbde0c6
      Brad Barber authored
      This reverts commit c27f1515.
      bfbde0c6
    • Brad Barber's avatar
      Revert "Merge branch 'next'" · c27f1515
      Brad Barber authored
      This reverts commit f06e487a, reversing
      changes made to db490523.
      c27f1515
    • Brad Barber's avatar
      Merge branch 'next' · f06e487a
      Brad Barber authored
      Minor Conflicts:
      	src/testqset_r/testqset_r.c
      f06e487a
    • Brad Barber's avatar
      Qhull 2015.0.3 · 4092ac3a
      Brad Barber authored
       - qh_mem, qh_merge: Log before 'delete' instead of afterwards [Coverity, K. Schwehr]
       - qh_merge: Test for NULL horizon in qh_checkzero [Coverity, K. Schwehr]
       - qh_matchneighbor: Check for matchfacet not a neighbor of facet [Coverity, K. Schwehr]
       - qh_triangulate: Explicit check for visible==NULL [Coverity, K. Schwehr]
       - qh_findbestfacet (unused by qhull): Fix test of isoutside [Coverity, K. Schwehr]
       - qh_check_maxout: Check bestfacet!=0 for logging its id [Coverity, K. Schwehr]
       - qh_nearvertex: Check for bestvertex not found [Coverity, K. Schwehr]
       - qh_checkfacet: Check for missing neighbors of simplicial facets [Coverity, K. Schwehr]
       - qh_setdelnth: Check 'nth' before using it [Coverity, K. Schwehr]
       - Annotate code for Coverity warnings (most of these protected by qh_errexit) [K. Schwehr]
      
       - qh_printfacet3math: explicit format string (duplicates change to io.c) [B. Pearlmutter]
       - libqhull_r.h: fix spelling error (duplicates change to libqhull.h) [B. Pearlmutter]
       - unix_r.c: fix spelling error (duplicates change to unix.c) [B. Pearlmutter]
       - qhull_a.h: define qhullUnused() only if defined(__cplusplus) [R. Stogner]
       - qh_version: Use const char str[]= "string" instead of const char * str= "string" [U. Drepper, p. 27]
       - qh_newvertex: Use UINT_MAX instead of 0xFFFFFFFF
       - qh_newridge: Use UINT_MAX instead of 0xFFFFFFFF
       - Reviewed FIXUP notes
      
       - QhullRidge_test: t_foreach use 'foreach(const QhullVertex &v, vertices)
       - Made '#include "RoadTest.h" consistent across all C++ tests
      
       - qh-code.htm: May also use libqhull_r (e.g., FOREACHfacet_(...))
       - qh-get.htm: Add list of download build repositories
      
       - Add CMakeModules/CheckLFS.cmake: Enables Large File Support [B. Pearlmutter]
       - Makefile: Use -fpic at all times instead of -fPIC, [U. Drepper p. 15]
      4092ac3a
  21. Sep 19, 2015
  22. Sep 02, 2015
    • Brad Barber's avatar
      Replaced Gitorious with GitHub · a638c042
      Brad Barber authored
      Moved 'to do' comments into Changes.txt
      
      global_r.c: Fixed spelling of /* duplicated in...qh_clear_outputflags */ [K. Schwehr]
      a638c042
  23. Sep 01, 2015
Loading