Commit Graph

288 Commits

Author SHA1 Message Date
Maxime Gimeno 41175cd505 WIP 2020-07-16 14:47:41 +02:00
Jane Tournois 9e8d12d9cf Merge remote-tracking branch 'cgal/master' into Triangulation_segment_traverser_3-tvanlank__rewrote_history-GF
# Conflicts:
#	Installation/CHANGES.md
2020-07-06 06:57:32 +02:00
Laurent Rineau 07eacf5231 Merge pull request #4795 from janetournois/Mesh_3-fix_optimisers_parallel-jtournois
Mesh_3 - fix parallel optimisers
2020-06-30 16:38:05 +02:00
Laurent Rineau ad23db27a3 Merge pull request #4795 from janetournois/Mesh_3-fix_optimisers_parallel-jtournois
Mesh_3 - fix parallel optimisers
2020-06-30 16:36:58 +02:00
Jane Tournois bce4b4e80a Revert "add an assertion in make_canonical"
This reverts commit f55ffabbe0.
In the exuder, it can happen that this function takes the triple
(Vertex_handle(), Vertex_handle(), Vertex_handle())
so the assertion does not hold
2020-06-26 14:57:02 +02:00
Jane Tournois daaf92d0ac rename make_canonical() to make_canonical_oriented_triple()
to make it more explicit
2020-06-19 13:31:51 +02:00
Jane Tournois f55ffabbe0 add an assertion in make_canonical
it also helps to make the code more explicit
2020-06-19 13:31:51 +02:00
Jane Tournois ad9c357f33 add adjacent_vertices_threadsafe and use it in nearest_power_vertex() 2020-06-19 13:31:50 +02:00
Laurent Rineau dcc4fb1cc1 Merge remote-tracking branch 'cgal/master' into CGAL-move_semantic_for_triangulations-GF
# Conflicts:
#	STL_Extension/include/CGAL/Compact_container.h
2020-05-20 09:46:26 +02:00
Jane Tournois 9a722c4ef1
Merge branch 'master' into Triangulation_segment_traverser_3-tvanlank__rewrote_history-GF 2020-04-20 06:40:24 +02:00
Sébastien Loriot d845d6ce8d Merge remote-tracking branch 'cgal/master' 2020-04-10 18:16:18 +02:00
Mael Rouxel-Labbé c16c1a7ea3 Merge remote-tracking branch 'cgal/master' into CGAL-Optimal_bounding_box-GF 2020-04-10 16:10:11 +02:00
Jane Tournois 163f3c59fb add range iterators 2020-04-07 07:05:19 +02:00
Jane Tournois 1ef0d4b83d segment traverser end() does not need s and t as parameters
the API gets simpler and easier with these changes

+ fix last valid value of the simplex iterator in some cases

after this commit, only the test test_triangulation_on_a_grid() keeps failing
2020-04-03 18:02:37 +02:00
Jane Tournois b9660603b9 add the new API in the code
and adapt examples and tests consistently
2020-04-03 06:52:25 +02:00
Maxime Gimeno b6a5f23e4e remove trailing whitespaces 2020-04-02 15:02:27 +02:00
Maxime Gimeno e02a3fc37e Merge remote-tracking branch 'cgal/master' into TDS-file_input-maxGimeno 2020-04-02 15:00:23 +02:00
Maxime Gimeno 383eb3d147 Merge tag 'master_before_no_tws_nor_tabs' into TDS-file_input-maxGimeno 2020-04-02 14:56:03 +02: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 9f2eafd06e extra run of the script to remove tabs and trailing whitespaces 2020-03-26 19:17:02 +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
Mael Rouxel-Labbé 2556196dad Merge remote-tracking branch 'cgal/master' into CGAL-Optimal_bounding_box-GF 2020-03-23 08:59:49 +01:00
Sébastien Loriot d10359d09e Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2020-03-19 16:27:55 +01:00
Mael Rouxel-Labbé 100304667d Remove CGAL::internal::boost_::function_property_map
This file was duplicated from BOOST 1.64 because it appeared in a boost
release that was younger than the oldest boost release supported by CGAL
when the file was first required.

The minimum boost version (1.57) now required by CGAL is younger
than the version in which the file appeared in boost (1.51)
and it can thus be removed.
2020-03-12 20:58:44 +01:00
Mael Rouxel-Labbé fe1fd95d23 Fix always returning by copy when it is possible to return by reference 2020-03-09 15:31:51 +01:00
Maxime Gimeno 52cf9815e4 Remove free function and fix TDS3 test 2020-02-28 15:33:03 +01:00
Laurent Rineau b311ab59ed [modernize-use-nullptr] (clang-tidy) 2020-01-31 12:11:16 +01:00
Laurent Rineau b56cdcb743 Add move-semantic to CGAL (non-periodic) 3D triangulations
- For `Triangulation_3`, the rule-of-zero cannot be used, because of
  the infinite vertex. A special copy-constructor and copy-assignment
  operators are required. But one can `= default the move-constructor
  and move-assignment operator, as well as the destructor.
- For `Delaunay_triangulation_3`, the rule-of-zero is
  sufficient. Nothing to do.
- For `Regular_triangulation_3`, the `hidden_point_visitor` data
  member is a function that is constructed with the `this` pointer, so
  the rule-of-zero cannot be used. Probably the move-constructor
  and move-assignment operator could be explicitly defaulted.
2020-01-31 12:01:43 +01:00
Maxime Gimeno 065a7ac0c6 Add a test for file_input() 2020-01-10 13:14:31 +01:00
Mael 8a48be1dd8
Remove unused macro 2019-12-12 13:10:25 +01:00
Laurent Rineau c08c632fc8 Merge branch 'releases/CGAL-5.0-branch' into T3_accelerate_insert_in_hole-rebased 2019-12-10 13:02:24 +01:00
Laurent Rineau 435bb4d4c4 Cleanup the patch 2019-12-10 10:59:13 +01:00
Andreas Fabri 7c9ef9c9f2 Move code into TDS_3 and make it work for parallel mode 2019-12-10 10:20:12 +01:00
Andreas Fabri 27a93fc25a First cleanup 2019-12-10 10:19:07 +01:00
Andreas Fabri 9303a3318a Use small_vector for find_conflicts() 2019-12-10 10:19:07 +01:00
Laurent Rineau a9abea6dc7 Use local small-indices, 2% win. 2019-12-10 10:18:57 +01:00
Laurent Rineau a93dd81642 Cleanup 2019-12-10 10:17:08 +01:00
Andreas Fabri f2eea9cf78 Call clear() 2019-12-10 10:17:08 +01:00
Andreas Fabri a3fc6790ca Use a boost::small_vector instead of a std::deque in a stack 2019-12-10 10:17:08 +01:00
Andreas Fabri 6462016ce3 Use an unordered map to find neighbor cells 2019-12-10 10:17:03 +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
Laurent Rineau dbb1cb6c9b Merge pull request #3974 from afabri/Triangulation-add_ranges-GF
Triangulation_{2,3):  Add ranges
2019-07-01 11:16:05 +02:00
Andreas Fabri f7b7b9957f Merge remote-tracking branch 'cgal/master' into CGAL-null_ptr-GF 2019-06-05 14:47:11 +02:00
Andreas Fabri e2d19b0c8d Replace NULL and Nullptr_t with nullptr and nullptr_t 2019-06-04 23:45:44 +02:00
Andreas Fabri 285cdd5be5 Add more ranges and a testsuite 2019-06-04 10:40:13 +02:00
Andreas Fabri 4c9bda8169 Use C++11 for loop in examples 2019-06-03 17:23:32 +02:00
Andreas Fabri edd84534a9 Fix code 2019-06-03 17:02:18 +02:00
Andreas Fabri b42fd4428d Triangulation_{2,3): Add ranges 2019-06-03 15:36:34 +02:00
Andreas Fabri 2d1c78fdd9 Unify T3 2019-05-20 18:23:08 +02:00
Sébastien Loriot 0ce7fc09b5 turns iterator pairs into iterable ranges 2019-03-29 13:28:22 +01:00
Sébastien Loriot d60f5645aa replace BOOST_FOREACH by c++ ranged-based for loop
some of the command used for the replacement:
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\(([a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((const typename [a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack --cpp  BOOST_FOREACH -l  | xargs sed -i -E "s/BOOST_FOREACH\((typename [<>a-zA-Z_:&0-9]+)\s(\w+)\,/for(\1 \2 :/"
ack "boost/foreach.hpp" -l --cpp | xargs sed -i '/boost\/foreach.hpp>/d'
2019-03-29 13:22:15 +01:00
Mael Rouxel-Labbé 17d46e9211 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-04-26 11:55:17 +02:00
Andreas Fabri 063a91a771 Use CGAL::random_shuffle 2018-04-04 14:00:23 +01:00
Mael Rouxel-Labbé c28e05be0c Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2018-02-23 12:50:06 +01:00
Andreas Fabri 6cc385c6ec Number_types 2018-01-17 15:47:18 +00:00
Mael Rouxel-Labbé c5993c95b3 Replaced a postcondition
When manually building a triangulation, we might have inserted vertices but
not yet cells, and thus the dimension is 0 but point() should still work.
This is the case in tet_soup_to_c3t3 for example.
2017-12-12 00:46:01 +01:00
Mael Rouxel-Labbé ba3a59ed5a Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-11-30 15:54:00 +01:00
Mael Rouxel-Labbé 812109df83 Added Mesh_3_regular_triangulation_3_wrapper
This wrapper around Regular_triangulation_3 adds undocumented, straightforward
functions which are required for Mesh_3 because of Periodic_3_mesh_3:
they are functions for which both (periodic and non-periodic) triangulations
have fundamentally different implementations, usually because Periodic_3_mesh_3
does not know the offset of a point and must brute-force check all
possibilities. To allow Periodic_3_mesh_3 to use Mesh_3's files,
each mesh triangulation implements its own version.
2017-11-22 14:23:59 +01:00
Sébastien Loriot ee57fc2d6c add SPDX identifier for files under the GPL-3+ license 2017-11-12 10:17:51 +01:00
Mael Rouxel-Labbé 7d7fb2f81d Generalized the signatures of some predicate wrappers
Since construct_point() is used, the arguments can be either Point_3 or
Weighted_point_3.
2017-11-06 14:40:29 +01:00
Mael Rouxel-Labbé 5c9e18a2f6 Improved readability of Regular/Delaunay_triangulation_3
The quest continues
2017-11-01 15:09:18 +01:00
Mael Rouxel-Labbé 9edd4194ba Fixed Triangulation_3.h indentation and whitespace (no real changes) 2017-10-31 18:23:31 +01:00
Mael Rouxel-Labbé ac0a27cdfd Made Mesh_3's optimizers work with periodic triangulations 2017-10-31 15:47:23 +01:00
Mael Rouxel-Labbé 1f4475d471 Merge branch 'Periodic_3_mesh_3-Feature-MBogdanov-old' into Periodic_3_mesh_3-Feature-MBogdanov 2017-10-27 16:26:27 +02:00
Mael Rouxel-Labbé bae6f15fa5 WIP commit 2017-10-27 15:34:33 +02:00
Mael Rouxel-Labbé 7b379d4338 Temporarily moved code from RT3 to T3 2017-10-22 23:40:45 +02:00
Mael Rouxel-Labbé aaeaf35380 Introduced the tag "Periodic_tag" to mark distinguish periodic triangulations 2017-08-23 16:18:05 +02:00
Mael Rouxel-Labbé 7943d0877e Fixed taking reference to temporary (ter) 2017-06-30 11:40:14 +02:00
Mael Rouxel-Labbé 02a9a91e40 Cleaned off useless 'using' 2017-06-30 11:32:07 +02:00
Mael Rouxel-Labbé 4ac89861ba Fixed (?) taking reference to temporary 2017-06-28 10:17:14 +02:00
Mael Rouxel-Labbé 8c7bda5f2d Changed from boost::function_property_map to CGAL::internal::boost_'s
This is so it's always available, even if using an old version of boost
2017-06-28 10:17:14 +02:00
Mael Rouxel-Labbé ddfc4fc0fe T2/T3 now use Perturbation_order in tests with symbolic perturbations 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 87e0ae40b0 Closed a parenthesis 2017-06-28 10:16:23 +02:00
Mael Rouxel-Labbé 4b556707a4 Use boost::function_property_map to apply spatial_sort to weighted points 2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 47b3e7193e Comparison result should be of type Comparison_result
(it worked anyway since Comparison_result is a Sign internally)
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé 94abc23da9 Adapted the call to spatial_sort() to handle weighted points
Downside: we copy points at each comparison, which is terrible! No noticeable
changes when profiling the construction of a triangulation.

We need this copy because of Lazy kernel: despite construct_point_3 having
const Point_3& construct_point_3_object()(const Point_3&)
the Lazy kernel can return some copies.

Other solutions that were not used:
-- Distinguish the Ouput type of Unary_function_to_property map depending on
   the type of Kernel (ugly and not safe)
-- Use Weighted_point_mappers traits (but that blood will not be on my hands)
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé cd9a908393 Ensured that we call kernel functions with the correct (bare) point type
Note that if the type `Point` is already `Point_3`, Construct_point_3 does not
do anything (except in the lazy kernel, but in that case, the running time is
horrible anyway).
2017-06-28 10:14:35 +02:00
Mael Rouxel-Labbé ae1fb2bfec Deduce Triangulation_3's point type from the TDS
Since we have a distinc vertex_base for regular triangulations and that this
regular vertex base defines a type Point, it is redundant to get the Point
type from the Geom_traits.

This also allows to remove the Weighted_point_mapper trick, and pass more easily
custom point types.
2017-06-28 10:14:35 +02:00
Andreas Fabri 787d46ffb8 Disable Point_3(const Weighted_point_3&) 2017-06-28 10:14:35 +02:00
Laurent Rineau dce8bb77ba Merge pull request #2053 from cjamin/Mesh_3-code_improvements-cjamin
Mesh_3: code improvements + bug fix
2017-04-14 18:32:05 +02:00
Clement Jamin 6ea82bbe2a Unnecessary double "if" blocks 2017-03-09 17:46:46 +01:00
Laurent Rineau c55e391f97 WIP: works with one thread 2017-02-17 16:37:11 +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
Andreas Fabri e5e0cdd5f9 fix a typedef 2016-11-22 17:48:53 +01:00
Andreas Fabri ea50fb811d Cleanup. The 2D and 3D triangulation testsuite pass 2016-11-03 13:07:50 +01:00
Laurent Rineau 1f5fb012ba Merge pull request #1015 from afabri/Mesh_3-accelerations-GF
Accelerate vertex removal in a 3D triangulation and saving a mesh
2016-04-22 15:24:06 +02:00
Andreas Fabri abd9bfb125 std::map -> boost::unordered_map 2016-04-15 20:54:51 +02:00
Laurent Rineau 535c5bb5b2 Speed-up Triangulation_3::read_cells...
... by a factor 5 for big triangulations! The old code was using:

    std::map<size_t, Vertex_handle> V;
    std::map<size_t, Cell_handle> C;

whereas the indices are contiguous: from 0 to n. `std::vector` is a lot
better for that use case!
2016-04-06 16:03:55 +02:00
Andreas Fabri 4c477c853c Accelerete 3D version of inexact_locate as we do it for 2D 2016-02-15 10:57:59 +01:00
Clement Jamin 8f259e5dea Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus 2014-09-09 11:20:33 +02:00
Laurent Rineau 3deb8e7910 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Create an integration branch for 'Mesh_3-compare_index-GF': a new branch
created from 'master', where I merged the previous version of
'Mesh_3-compare_index-GF'.

There was a conflict with two features recently merged into 'master' for
CGAL-4.5:

- the move of two files from include/CGAL/Mesh_3/ to include/CGAL/. See
  the small feature:
    http://cgal.org/wiki/Features/Small_Features/New_constructor_in_Label_mesh_domain_3_and_new_function_wrapper

- parallelism for Triangulation_3 and Mesh_3:
    http://cgal.org/wiki/Features/Parallel_Mesh_3

Conflicts:
	Combinatorial_map/include/CGAL/Cell_attribute.h
	Mesh_3/include/CGAL/Implicit_mesh_domain_3.h
	Mesh_3/include/CGAL/Labeled_image_mesh_domain_3.h
	Mesh_3/include/CGAL/Mesh_3/Sliver_perturber.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_3.h
	Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron.cpp
	Mesh_3/test/Mesh_3/test_meshing_polyhedron_with_features.cpp
	Polyhedron/demo/Polyhedron/Polyhedron_type.h
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp

I also modified the following files during the conflict resolution:

	Linear_cell_complex/include/CGAL/Cell_attribute_with_point.h
	Mesh_3/include/CGAL/Labeled_mesh_domain_3.h
	Mesh_3/include/CGAL/Polyhedral_mesh_domain_with_features_3.h
2014-07-18 15:47:14 +02:00
Clement Jamin aa1aa597bb Restore commit a09ed468 with a bug fix
"Thread-safe version of incident_cells and incident_facets"
2014-07-15 20:13:30 +02:00
Andreas Fabri 13bb5e38aa remove unused parameters 2014-07-09 16:02:45 +02:00
Clement Jamin da4cf8fc1d Fix gcc warnings (reorder + unused variables & typedef...) 2014-07-03 15:54:39 +02:00
Clement Jamin 0a4267b7ce Temporarily revert "Thread-safe version of incident_cells and incident_facets" 2014-07-03 15:41:02 +02:00
Clement Jamin 65e8d40e33 Fix warning 2014-07-03 09:26:25 +02:00
Clement Jamin 7af8f8b768 Fix compilation with GCC 2014-06-30 19:58:44 +02:00