Commit Graph

14 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 13b4060644 Fix eddy/bykat returning collinear vertices on the hull
In these two algorithms, points farthest from a line must be found.
In case of multiple points at the same distance, an "extremity"
of this set of points must be returned.

This was properly documented in the Less_signed_distance_to_line_2
functor of the ConvexHullTraits_2 concept:

[ ... ]
The predicate must provide a total order compatible with convexity,
<I>i.e.</I>, for any line segment \f$ s\f$ one of the endpoints
of \f$ s\f$ is the smallest point among the points on \f$ s\f$,
with respect to the order given by `Less_signed_distance_to_line_2`.
[ ... ]

And specific models did respect this requirement. However, the kernel
is supposed to also be a model of ConvexHullTraits_2, but
Kernel_23::LessSignedDistanceToLine_2 does not require this, and
the models (EPICK, Simple_Cartesian, etc.) do not implement it.
Hence, if a kernel was used as geometric traits for 2D Convex Hull
algorithms, one might not get the expected extreme point when
there are multiple points at the same distance to a line at some
point in the algorithm.

The algorithm recovered, but this created extra points on the hull.

Fixing the functor in the kernel would create an inconsistency
with Kernel_23::Compare_signed_distance_to_line_2, so instead
this commit changes the concept and the code to require
providing Compare_signed_distance_to_line_2 and then uses Less_xy
in the code in case of EQUAL return (that is actually how it was
done in the Convex_hull_2-specific versions of the ConvexHullTraits_2
model).
2022-07-01 13:35:59 +02:00
Sébastien Loriot 0779373835 extra run of the script to remove tabs and trailing whitespaces
right after the  merge of 4.14 release branch

+ manual fix on one line in:
    * Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
    * .travis/generate_travis.sh
2020-03-26 14:16:06 +01:00
Sébastien Loriot 254d60f642 First pass on removing license notice in header for GPL files 2019-10-19 15:23:19 +02:00
Sébastien Loriot 7356421d80 introduce Commercial license SPDX tag 2019-10-19 12:15:19 +02:00
Sébastien Loriot 9bd9c68b83 update LGPL[23]+ and GPL[23]+ SPDX tags
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Sébastien Loriot 50510c05ea add include directive for license of all GPL header files
done using:
ack-grep "^GPL" */package_info/*/license.txt -l | awk -F "/" '{print $1}' > /tmp/gpl_packages
for i in `cat /tmp/gpl_packages | \
          grep -v Operations_on_polyhedra | \
          grep -v Algebraic_kernel_for_circles | \
          grep -v Algebraic_kernel_for_spheres | \
          grep -v Polyhedron_IO`;
do
  echo $i
  python Scripts/developer_scripts/add_license_in_pkg_header.py $i
done
python Scripts/developer_scripts/add_license_in_pkg_header.py Operations_on_polyhedra Polygon_mesh_processing
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_circles Circular_kernel_2
python Scripts/developer_scripts/add_license_in_pkg_header.py Algebraic_kernel_for_spheres Circular_kernel_3
python Scripts/developer_scripts/add_license_in_pkg_header.py Polyhedron_IO Polyhedron
2017-01-19 15:20:25 +01:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Sébastien Loriot 52317dd49f add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00
Sylvain Pion 85dc12f2a7 Remove empty lines at beginning and end of files
(apply Scripts/developer_scripts/remove_empty_lines.pl).
2010-02-01 12:55:28 +00:00
Ron Wein df2ec0d736 Changed files with *.C prefix to *_impl.h, and moved some non-interface
include files to a the Convex_hull_2 subfolder.
2006-05-29 09:01:56 +00:00
Laurent Saboret db6a8f948c Change CVS keywords to SVN style 2006-02-16 14:30:13 +00:00
Laurent Saboret 1aad55d4cb Change CVS keywords to SVN style 2006-02-14 10:08:15 +00:00
Laurent Saboret 20e0dc0e01 Move packages to trunk root 2006-02-14 08:58:14 +00:00