Commit Graph

151 Commits

Author SHA1 Message Date
Sebastien Loriot bdc2f3e0db
Merge pull request #5076 from lrineau/Triangulation_2-improve_CDT_plus_2-GF
Triangulation_2: improve CDT_plus_2
2020-10-20 13:28:12 +02:00
Laurent Rineau e37c290841 Better debug messages 2020-10-15 15:08:21 +02:00
Laurent Rineau 871c97273a Merge pull request #4496 from lrineau/CGAL-move_semantic_for_triangulations-GF
Add move-semantic to Compact_container and Triangulations
2020-06-03 16:23:22 +02:00
Laurent Rineau 20bc78a7d7 Merge pull request #4726 from afabri/Mesh_2-deterministic_V2-GF
Mesh_2: Make it deterministic  V2
2020-05-27 16:33:28 +02:00
Laurent Rineau 14b18f81ee Merge pull request #4735 from lrineau/Triangulation_2-fix_CDT_2_degenerate_case-GF
Fix a bug in <CGAL/Constrained_triangulation_2.h>
2020-05-27 16:33:21 +02:00
Laurent Rineau a8fca35b1d Merge pull request #4735 from lrineau/Triangulation_2-fix_CDT_2_degenerate_case-GF
Fix a bug in <CGAL/Constrained_triangulation_2.h>
2020-05-27 16:32:49 +02:00
Laurent Rineau 0ea385712f Fix compatibility with C++03 2020-05-22 14:52:18 +02:00
Laurent Rineau 3cd52cdc3e Fix a bug in <CGAL/Constrained_triangulation_2.h>
The function parameter was locally shadowed by a local `int i`
variable!

Then the edge `(f, i)` in the call `remove_constrained_edge(f, i)` was
the wrong one!

The bug was introduced by ecfd82e287,
ten years ago.

The bug was only triggered on degenerated cases, when two constraints
intersect, but the code failed to compute the intersection. Then, if
the intersection vertex `vi` was either `vaa` or `vbb` (and not `vcc`
or `vdd`), then the edge `(f, i)` was the wrong one.
2020-05-19 17:25:10 +02:00
Laurent Rineau 12c0ec0935 New debug code in <CGAL/Constrained_triangulation_2.h>
... tested in `test/Triangulation_2/test_cdt_degenerate_case.cpp`.
2020-05-19 17:25:10 +02:00
Andreas Fabri 243a8b68c9 Add using and typedef 2020-05-18 15:27:59 +01:00
Andreas Fabri 8a53e00155 polish 2020-05-15 15:27:02 +01:00
Andreas Fabri 7a6bdc1946 Mesh_2: make it deterministic 2020-05-15 14:16:56 +01:00
Sébastien Loriot 86e25f7e71 Update branch from master after trailing whitespaces and tabs removal 2020-03-26 19:23:54 +01:00
Sébastien Loriot 8bb22d5b2c extra run of the script to remove tabs and trailing whitespaces
right after the merge of the 5.0 release branch

+ manual fix of the files (indentation was changed in the meantime):
   * Spatial_sorting/include/CGAL/Multiscale_sort.h
   * Spatial_sorting/test/Spatial_sorting/test_multiscale.cpp
2020-03-26 14:26:59 +01: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 590612a563 run the script to remove tabs and trailing whitespaces 2020-03-26 13:25:16 +01:00
Sébastien Loriot ef6949419f Merge remote-tracking branch 'cgal/releases/CGAL-5.0-branch' 2020-03-17 18:16:39 +01:00
Sébastien Loriot bda5680629 Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2020-03-17 18:13:56 +01:00
Mael Rouxel-Labbé 1c622e0ba5 Base CDT2's edge sets on geometry to ensure determinism
When using face addresses, we do get the same combinatorics and
geometry in the result, but it is possible to create
different TDS' from one run to another, with a given face
not having the same order of points in memory.
2020-03-12 13:11:32 +01:00
Laurent Rineau 75ec5c0da7 Add move-semantic to T_2, CT_2, Dt_2, and CDT_2
Still todo: `Constrained_triangulation_plus_2`, and
`Triangulation_hierarchy_2`.
2020-01-31 15:48:45 +01:00
Laurent Rineau 14b8930f79 Fix a clang-tidy warning by using nullptr instead of 0 2020-01-31 15:48:45 +01:00
Andreas Fabri 48fedbae06 Typos: splitted -> split 2019-12-11 16:57:34 +01:00
Mael cf83a22e2d
Merge branch 'master' into T2-Throw_on_collinear_strongly_intersecting_segments-GF 2019-12-02 16:32:29 +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 962e8b10a6
Fix typo 2019-10-03 08:12:16 +02:00
Mael Rouxel-Labbé ea8e6f3c98 Update CDT2 intersection tag documentation 2019-09-19 18:32:58 +02:00
Mael Rouxel-Labbé 7a50939809 Deprecate No_intersection_tag
Introduce two new tags instead, to make the behavior change clearer.

Default tag for CDT2 is changed to keep the same behavior as before
(what was called 'No_intersection_tag' and is now called
'No_constraint_intersection_requiring_constructions_tag')
2019-09-19 18:11:33 +02:00
Mael Rouxel-Labbé 9b2a7f09d7 Merge branch 'T2-Throw_on_collinear_strongly_intersecting_segments-GF-old' into T2-Throw_on_collinear_strongly_intersecting_segments-GF 2019-09-19 15:50:49 +02:00
Mael Rouxel-Labbé e955c38215 Add a new tag allowing constraints to intersect if no construction is required 2019-08-22 12:44:16 +02:00
Mael Rouxel-Labbé 013272a466 Fix not throwing on T-like segment intersection (extremity on interior) 2019-08-19 17:55:39 +02:00
Mael Rouxel-Labbé 59e0e87e24 Readability (no real changes) 2019-08-19 17:55:26 +02:00
Mael Rouxel-Labbé f3ccb18da0 Fix typo 2019-08-19 17:18:55 +02:00
Mael Rouxel-Labbé 869baed46f Fix not throwing on overlapping constraints 2019-08-19 17:18:29 +02:00
Andreas Fabri 22a8edd750 doc 2019-06-04 16:52:33 +02:00
Laurent Rineau 90782d4b7f Revert the merge of two pull-requests that target CGAL-4.14-branch
- Revert "Merge pull request #3857 from MaelRL/CGAL-Fix_duplicate_non_manifold_vertices-GF"
- Revert "Merge pull request #3898 from lrineau/Mesh_3-stop_during_protection-lrineau"
2019-05-14 17:50:45 +02:00
Andreas Fabri a3d535c553 Fix compilation, Add documentation, Add test for IO 2019-05-02 10:41:12 +02:00
Andreas Fabri 4bb714fd7b Fix OTR and T2 2019-01-18 10:34:47 +01:00
Mael Rouxel-Labbé 26c857a431 Moved unary/binary_function to CGAL::cpp98 2018-06-13 15:58:19 +02:00
Laurent Rineau aa38a024c2 Merge pull request #3098 from lrineau/Triangulation_2-Debug_CDT2-lrineau
Fix CDT_2 errors, using snapping of intersection points
2018-06-01 17:26:16 +02:00
Andreas Fabri 1123afb70e Add Bbox_{2,3}.dilate(int) so that the snapping in the CT_2 also works with Projection_traits classes 2018-05-30 14:34:34 +02:00
Laurent Rineau c40d7124d0 Fix CDT_2 errors, using snapping of intersection points
When `Constrained_triangulation_2` computes the intersection of two
segments, with a floating-point number type, and with
`Exact_predicates_tag`, the computed intersection point is snapped to an
extremity of the two segments, if it is closest to 4 ulp (with the l-inf
distance).

That value `4` can be changed by defining the macro
`CGAL_CDT_2_INTERSECTION_SNAPPING_ULP_DISTANCE` to another value.
2018-05-30 14:34:34 +02:00
Sébastien Loriot ad813dc4fe improving the doc 2018-04-30 09:19:15 +02:00
Maxime Gimeno 5fa7181360 changes in displayed text. 2018-04-30 09:19:15 +02:00
Maxime Gimeno 50ffa39ba6 Remove duplicated overload 2018-04-30 09:19:15 +02:00
Maxime Gimeno 121e4c3c50 Replace Throw_on_intersection_tag by the existing No_intersection_tag 2018-04-30 09:19:15 +02:00
Maxime Gimeno 944b540c54 Rename exception 2018-04-30 09:19:15 +02:00
Maxime Gimeno 3165eb1971 add a specific macro to silence the new warning 2018-04-30 09:19:15 +02:00
Maxime Gimeno fe07a1973c add doc in the right place. 2018-04-30 09:19:15 +02:00
Maxime Gimeno 6266570fc3 Move information from cerr to compilation warning and add an exception thrown with a new documented tag 2018-04-30 09:19:14 +02:00
Andreas Fabri 6c791f161a Triangulation_2 2018-01-17 16:12:12 +00:00
Laurent Rineau 42b11ddf29 Revert the merge of PR #2478
This reverts the merge commit 46cc91e787 onto
488c3e2879.
2018-01-04 17:54:08 +01:00
Laurent Rineau 1c2e9df8cf Merge branch 'releases/CGAL-4.11-branch' 2017-12-19 16:29:10 +01:00
Laurent Rineau 5181cd7474 Merge branch 'releases/CGAL-4.10-branch' into releases/CGAL-4.11-branch
# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
2017-12-19 16:19:22 +01:00
Andreas Fabri 029888f85c Derecursify insert_constraint(Vhandle,Vhandle); Increment depth of propagating_flip() 2017-11-23 15:50:26 +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
Mael Rouxel-Labbé aaeaf35380 Introduced the tag "Periodic_tag" to mark distinguish periodic triangulations 2017-08-23 16:18:05 +02:00
Laurent Rineau fc8aacc017 Fix compilation errors with non-MSVC compilers 2017-07-18 16:46:38 +02:00
Andreas Fabri 8463b1a251 Add implementation and test of Constrained_edges_iterator 2017-07-18 13:44:21 +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
Laurent Rineau e2d04e54e0 Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'
> 3176b37 Merge pull request #1452 from mglisse/Number_types-Eigen_Literal-glisse
> 1705702 Merge pull request #1417 from afabri/Polyline_simplification-Bugfix_choose_correct_Itag-GF
> 3bef239 Merge pull request #1462 from sloriot/PMP-add_missing_include
2016-09-15 17:25:20 +02:00
Andreas Fabri 147ebae4d6 Fix bug in polyline simplification:
We had hardwired that we use Exact_predicates_tag which is slow for EPEC
in particular with Quotient<MP_float> or leda::real

We determine the appropriate tag using Algebraic_structure_traits<FT>::Is_exact
2016-09-14 16:16:28 +02:00
Andreas Fabri 9776c053d6 simplify template parameters, Add _ postfix to Itag (thank you Marc) 2016-03-31 13:09:54 +02:00
Andreas Fabri 31dae1898f Just Default as default does not compile, so we put the 'real' default types 2016-03-23 16:51:13 +01:00
Andreas Fabri 7a0c53496d Mention Default in the ref manual 2016-03-23 12:43:17 +01:00
Andreas Fabri 47090906f0 Introduce CGAL::Default for the TDS of constrained triangulations 2016-03-23 10:27:39 +01:00
Andreas Fabri 9243e1eb69 Unify APIs: Add insertion of a polyline 2014-07-16 15:30:14 +02:00
Andreas Fabri 80798869fc Add Constrained_triangulation_plus_2::insert_constraints(..)
Before it inherited from the base class and did not update
the constraint hierarchy.
2014-05-21 17:17:40 +02:00
Andreas Fabri 85b29aed5f treat merge conflicts 2014-05-15 16:09:24 +02:00
Laurent Rineau 650419f631 Trivial warning bug-fix for master (for CGAL-4.3) 2013-09-16 12:16:27 +02:00
Andreas Fabri 121ada60a4 Function must not only be declared but also defined to avoid VC++ warning 2013-09-12 12:49:04 +02:00
Sébastien Loriot 22b0d44f4a make the move function private to disable the inherited version 2013-08-02 07:52:09 +02:00
Andreas Fabri f9cd5ec08a Merge remote-tracking branch 'origin/Triangulation_2-NewPolylineConstraint-GF' into Triangulation_2-NewPolylineConstraint-GF
Conflicts:
	.gitattributes
2013-01-21 14:33:33 +01:00
Sébastien Loriot 3e750c6fd7 temporary hack to work around assertion 2012-07-17 12:08:49 +00:00
Philipp Möller da6f1be1d2 Typenamified constrained_triangulation, partially integrated skiplist 2012-05-04 13:39:22 +00:00
Andreas Fabri c8c67ab24c Add insert_constraint(Vertex_handle vaa, Vertex_handle vbb, OutputIterator out) 2012-04-20 10:10:08 +00:00
Sébastien Loriot a7456a2736 merge from next 2012-01-16 15:28:51 +00:00
Sébastien Loriot fca9a7bf54 *add operator>> for Constrained_triangulation_2
*update demo
*add save CDT for demo

see the related small feature:
https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Add_read_istream_for_constrained_triangulation.
2012-01-16 13:32:05 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Laurent Rineau 1caaf5665c - triangulate_half_hole was quadratic because std::list::size is a linear
function (not with all compilers, but at least with g++-4.4).

I have a very nasty test case where list_edges.size is more than
700000. With a quadratic function, mmy cruncher computer was not even able
to insert *one* constraint in half a day.


- Remove also the unused variable vb, and the initialization of tempo
(which is re-initialized a second time later, without using its first
value).
2010-11-23 11:07:42 +00:00
Laurent Rineau 8aaa43a8eb Cosmetic: minimize the diff between
Constrained_triangulation_2::insert_constraint 
    and
  Constrained_triangulation_plus_2::insert_subconstraint

(Add a comment, adjust the whitespace)
2010-11-12 10:26:33 +00:00
Laurent Rineau ecfd82e287 Fix an infinite loop in CDT<EPIC, TDS, Exact_predicates_tag>
Add a test, that know passes, and previously failed.
2010-11-10 18:42:53 +00:00
Andreas Fabri 4d5300f583 Finally use ptrdiff_t as return type for insert(beg, end) 2010-06-23 13:29:04 +00:00
Andreas Fabri 8e75125383 int -> size_type/std::size_t 2010-06-21 13:19:03 +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
Laurent Rineau 75cc6f6057 Better C++ compliance (errors detected by Intel Compiler strict-ansi mode) 2010-05-08 10:07:13 +00:00
Andreas Fabri e91fc65a70 Add 'using' for strict ANSI compliance 2010-05-05 12:36:24 +00:00
Andreas Fabri be700acaba Change rng; Remove random_shuffle 2010-01-27 15:22:31 +00:00
Laurent Rineau b1022ef45b Result from:
svn merge
  '^/branches/experimental-packages/Triangualtion_2-projection_traits/Triangulation_2@48316'
  '^/branches/experimental-packages/Triangulation_2-projection_traits/Triangulation_2'
  .

I have merged the Triangulation_2 part of the branch
experimental-packages/Triangulation_2-projection_traits into the trunk.

This adds two files (traits classes), and a small patch to
Contrained_triangulation_2 (pass geomtraits by const ref instead of a
copy).

T2 testsuite locally launched successfully.
2009-12-08 11:11:33 +00:00
Sylvain Pion c1ae415b18 Remove short name macros. See PR 1551. 2009-04-21 18:28:04 +00:00
Sylvain Pion eb945bae48 SUNPRO workaround not needed anymore 2008-01-20 20:47:32 +00:00
Sylvain Pion c2651f99e7 Get rid of CGAL_REP_CLASS_DEFINED 2008-01-03 18:49:18 +00:00
Sylvain Pion 88ed563f44 Remove some workarounds for SunPRO + RW's STL:
CGAL_CFG_MISSING_TEMPLATE_VECTOR_CONSTRUCTORS_BUG
CGAL_CFG_RWSTD_NO_MEMBER_TEMPLATES  (partially so far)
CGAL_make_vector
CGAL_make_list
2008-01-03 14:50:13 +00:00
Sylvain Pion f11efea26a Slight optimization 2007-06-11 16:18:58 +00:00
Sylvain Pion 6ad01b8bc6 Use CGAL_make_vector 2007-04-02 20:40:18 +00:00
Christophe Delage c3450d9161 Added spatial_sort support in iterator range insert() & ctors.
This adds requirements to TriangulationTraits2 concept :
Less_x_2 and Less_y_2 predicates.

Also fixes a few bugs in RT2 (hidden points were sometimes forgotten
in degenerate dimensions.)
2007-03-21 15:29:30 +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