intersect_hulls - Finds the intersection of convex hulls.
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
unsigned long options,
This routine finds the intersection of a list of convex hulls and returns
the result as a convex hull.
The first argument "hull_list_head" is the address of the queue containing
the list of convex hulls to process. Only lists of 2-D or 3-D hulls are
The second argument "options" contains the flags controlling the data
returned in the output hull structure. For most circumstances, the value of
DEFAULT_HULL_OPTIONS will suffice. See the man page for "find_convex_hull"
for a description of the option flags.
The method of hull intersection is under user control via the option
hull-intersection-method. One method "a" is a discrete approximationl. A
faster, more accurate method is the dual space method "d". In the case of the
discrete approximation, the resolution of the descrete space is user settable
with the "hir" option, provided that the KJB library options are made
available to the user (recommended!). The dual space method also makes use of
the resolution when finding an intial point inside the hull. The dual space
method normally returns an answer independent of the resolution, but the
resolution does set the smallest amount that hulls can intersect, and still
be recognized as intersecting (with all methods).
NO_ERROR on success, with the address of the result in "result_hp_ptr",
NO_SOLUTION if the intersection in empty, and ERROR if there are more
create_hull, find_convex_hull, Hull, Queue_element
This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
Lindsay Martin and Kobus Barnard