Commit Graph

81 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 6b87fe393d Fix various grammar issues 2020-12-05 11:11:33 +01:00
Mael Rouxel-Labbé 7385ebb806 Refresh priority queues before calling top() if simultaneous events are present 2020-11-09 18:22:33 +01:00
Mael Rouxel-Labbé 9c8aeb0242 Fix strict ordering's asymmetry condition not being satisfied in Split Event PQ 2020-11-06 17:27:43 +01:00
Mael Rouxel-Labbé d609a9607e Fix Split Queue Comparer in edge case of two invalid pseudo-splits 2020-11-06 17:26:59 +01:00
Sébastien Loriot d493dfce88 exclude speed harmonization at compile time 2020-11-03 11:09:15 +01:00
Mael Rouxel-Labbé 05e4c44216 Misc minor fixes 2020-10-16 14:38:11 +02:00
Mael c5326a4832
Commit fixes from @sloriot's review
Co-authored-by: Sebastien Loriot <sebastien.loriot@cgal.org>
2020-10-13 09:56:32 +02:00
Mael Rouxel-Labbé 145f204517 Misc minor fixes 2020-10-09 18:36:53 +02:00
Mael Rouxel-Labbé 6bba0da37f Various minor fixes 2020-10-06 17:54:24 +02:00
Mael Rouxel-Labbé 75137526b6 Misc tiny fixes 2020-10-05 18:35:08 +02:00
Mael Rouxel-Labbé b6333ed459 Harmonize speeds of collinear input segments + caching for non-filtered kernels 2020-10-05 18:29:34 +02:00
Mael Rouxel-Labbé 2930624d7f Prevent tangleness in multisplits using certified angle-based local queue sorts
The goal is to prevent multi splits that can cross each other without noticing.
such as a square with four square holes, and two diagonal splits
in the middle.

Local split queues are sorted to give  priority to the smallest angle among possible split
events, we forbid diagonal splits and thus a later split cannot have
a triedge with two different subparts of the polygon.

The exact criterion for sorting is the angle within a triedge,
between the bisector and the supporting line of e2 (possibly swapped
in case of pseudo-splits, see code).
2020-09-29 20:02:06 +02:00
Mael Rouxel-Labbé 4d85f845e7 Enhance debug output 2020-09-29 20:00:55 +02:00
Mael Rouxel-Labbé 655d4275f6 Add missing header includes in SS2 2020-09-11 15:00:27 +02:00
Mael Rouxel-Labbé 79378f6871 Do multiple passes to remove multi nodes
Fix for https://github.com/CGAL/cgal/issues/4533

In a configuration like in Issue 4533, there are a lot of faces
with multi-nodes, with all degenerate halfedges being
the same vertex (the origin). Because of locks in the current implementation,
it is not possible to (combinatorially) collapse all degenerate halfedges
at once.

With this fix, the algorithm attempts to collapse multiple times, until
nothing can be done.

A better fix would be to rewrite the way halfedges are collapsed,
but this is a lot of work, so this quick fix will be used for now.

In theoretical degenerate cases, the complexity could be quadratic,
but it should never happen in real life (the norway data set
or example does not even have multi-nodes)
2020-09-02 18:15:02 +02:00
Sébastien Loriot 587d402452 use local lists instead of a global one for lookup on SLAV 2020-08-19 17:20:19 +02:00
Sébastien Loriot c30f674bbc Add caching mechanism for time of trisegments 2020-08-10 16:35:08 +02:00
Jane Tournois d9892c23e0 fix compilation for msvc
in boost.hpp, the macro BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
opens namespace boost { namespace mpl {
before defining struct bool_
2020-08-10 11:40:55 +02:00
Sébastien Loriot 72925b8a03 add missing include directive 2020-08-10 10:39:01 +02:00
Sébastien Loriot 7ca248e566 add a filter to limit the number of split events in reflex vertex priority queues
the rational is that we consider all polygon segments that are intersected
by the reflex vertex bisector that are oriented so that they are on the
left side of the reflex vertex. The time at which the bisector intersect
that segment is a bound for the split event to be selected
2020-07-31 15:10:56 +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
Mael Rouxel-Labbé 26c857a431 Moved unary/binary_function to CGAL::cpp98 2018-06-13 15:58:19 +02:00
Andreas Fabri 599e2019df SLS 2018-01-18 14:08:08 +00:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Laurent Rineau 2b35bddfb2 Replace all std::binary_function by CGAL::binary_function 2017-10-04 16:36:32 +02: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
Andreas Fabri e96dd75d15 fix for clang: assertions do not work on intrusive_ptr 2013-09-25 13:02:28 +02:00
Laurent Rineau db194534c7 First big patch to fix -Wunused-local-typedefs
-Wunused-local-typedefs is a new warning flag of gcc-4.7, and it will enabled
 by -Wall since gcc-4.8 (not yet released).

The fix is a big set of removals of unused typedefs (or comments, or moves,
depending on the context).
2012-08-01 13:29:16 +00:00
Laurent Rineau f4a19f0a0b Remove unused variables 2012-01-23 08:03:33 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Laurent Rineau 7fea74cad6 Replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE in Straight_skeleton_2
(that had been reverted a few months ago, after the massive changes of all
CGAL_BEGIN_NAMESPACE in the CGAL repository).
2010-11-23 11:20:03 +00:00
Fernando Cacciola 72ed56006a Reverting to release 3.6 2010-08-19 05:06:11 +00:00
Fernando Cacciola 20b7f183ee Misc compiler fixes and doc updates 2010-06-16 20:00:43 +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
Fernando Cacciola de48d61720 Weighted straight skeleton API update 2010-05-03 18:25:25 +00:00
Fernando Cacciola 60b038972e Weighted straight skeleton API update 2010-04-27 16:57:58 +00:00
Fernando Cacciola fef1031474 Working test suite 2010-02-02 17:57:16 +00:00
Fernando Cacciola c9c10cdb3c SS weighted version 2010-01-17 15:13:08 +00:00
Fernando Cacciola d12124c350 Partial skeletons for faster offsetting 2008-04-28 17:03:23 +00:00
Fernando Cacciola 9f60e34b3e Permissions fixed 2008-01-11 15:46:07 +00:00
Fernando Cacciola 010ff53cbc Simplified API documentation 2007-11-27 22:06:55 +00:00
Fernando Cacciola 6187ff621b Simplified API and polygon offset arrangement 2007-11-23 22:35:44 +00:00
Fernando Cacciola 34166f5342 Simplified API added 2007-11-21 15:55:09 +00:00
Fernando Cacciola bcf644e5bf Skeleton converted added and documentation/examples updated 2007-11-19 16:33:25 +00:00
Fernando Cacciola 2409987df8 Skeleton Converter added 2007-11-19 12:57:13 +00:00
Fernando Cacciola 60cc71c58a Bug fixes 2007-09-10 14:07:00 +00:00
Andreas Fabri a892df2927 removed unused parameters 2007-03-17 09:24:49 +00:00