Commit Graph

267 Commits

Author SHA1 Message Date
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
Clement Jamin 82c89aa58e Fix template params 2014-06-30 15:52:24 +02:00
Clement Jamin a09ed46810 Thread-safe version of incident_cells and incident_facets 2014-06-23 10:45:26 +02:00
Clement Jamin 9f5927af61 Move function from C3T3_helpers to TDS
Move C3T3_helpers::get_incident_cells_without_using_tds_data to TDS::incident_cells_threadsafe
2014-06-23 08:21:09 +02:00
Clement Jamin 05efa677a1 Merge branch 'Triangulation-higher_dimensions-odevil_shornus-old' into Triangulation-higher_dimensions-odevil_shornus
Conflicts:
	NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_functors.h
	NewKernel_d/test/NewKernel_d/Epick_d.cpp
2014-05-28 14:53:26 +02:00
Clement Jamin c9c8335811 More code clean-up 2014-05-27 13:46:34 +02:00
Sébastien Loriot 3fa09693a3 Merge branch 'Mesh_3-compare_index-GF-old' into Mesh_3-compare_index-GF
Conflicts:
	Mesh_3/include/CGAL/Mesh_3/Detect_features_in_polyhedra.h
	Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h
	Mesh_3/include/CGAL/Mesh_polyhedron_3.h
	Mesh_3/test/Mesh_3/test_meshing_polylines_only.cpp
	STL_Extension/include/CGAL/Compact_container.h
	STL_Extension/test/STL_Extension/test_Compact_container.cpp
2014-05-21 18:24:17 +02:00
Clement Jamin f3c00442fd Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2014-05-14 19:05:40 +02:00
Clement Jamin db3a642de4 Missing include 2014-05-14 17:35:16 +02:00
Andreas Fabri a45ed40f5d Do not use the call stack for a recursive function as it may overflow 2014-03-25 16:01:27 +01:00
Jane Tournois ffc3bdfc2f there is no need to compare "ts". Comparing Vertex_handle's is enough 2014-02-14 15:22:54 +01:00
Jane Tournois 8d7ec0ef19 use time stamps in make_canonical(vertex_triple) 2014-02-14 12:55:29 +01:00
Olivier Devillers d8197fb718 merge master and Triangulation 2013-11-29 13:40:14 +01:00
Clement Jamin 6b65ad71da Changes in the "lock data structure" concept and models
The concept is now much more generic (SurjectiveLockDataStructure).
The names have been changed accordingly.
2013-10-16 12:17:56 +02:00
Clement Jamin 5101c3d2e7 Added my name in a few places + implementation history 2013-10-15 11:14:58 +02:00
Clement Jamin 29525dfcb7 Back-quotes for could_lock_zone and true + minor fixes + replace 0 by NULL 2013-10-15 10:27:35 +02:00
Clement Jamin a173372321 Fixes for GCC + removed trailing spaces 2013-09-25 11:18:18 +02:00
Clement Jamin 18895e6f42 Use the TBB's scalable allocator in a few places
=> better scalability of the parallel remove
2013-07-23 17:51:06 +02:00
Clement Jamin 8aaee67985 Removed some "p_" prefixes in variable names 2013-07-12 15:49:45 +02:00
Clement Jamin 206b20bc15 Merge branch 'Mesh_3-parallel-cjamin-old' into Mesh_3-parallel-cjamin 2013-07-02 17:37:50 +02:00
Clement Jamin fcdf906f06 Option to add temporary points on a far sphere before insertion
Helps to reduce contention on the infinite vertex
But removing those points in the end takes time
so it's only worth it when points lie on a surface.
2013-07-02 12:57:26 +02:00
Clement Jamin 2dc6c405b8 Drop the use of the TBB malloc proxy, use TBB allocators manually instead
The TBB's "malloc proxy", which allows to replace all calls to the standard
allocators by calls to the TBB scalable allocator, is not available on MacOS.
Instead, we use the TBB allocators manually, where relevant.
2013-06-27 15:29:47 +02:00