Commit Graph

400 Commits

Author SHA1 Message Date
Sébastien Loriot 46b112dd54 split the function to avoid the switch 2021-06-15 15:24:00 +02:00
Andreas Fabri f45e843cd0 trailing whitespace 2021-05-06 08:03:53 +02:00
Andreas Fabri 28a6a91453 Intersections_3: Make do_intersect(sphere/triangle) work if FT is division free 2021-05-05 16:54:05 +02:00
Laurent Rineau c091c7f86e Merge pull request #5532 from lrineau/Kernel_23-Do_interesect__without_division-GF
Remove operator/ from CGAL::Mpzf and implement Do_intersect_3 with RT only (without division)
2021-04-28 15:24:15 +02:00
Andreas Fabri 8ede8fc7ae Remove unused parameter 2021-04-27 14:16:55 +01:00
Andreas Fabri 9473da27f8 Address warning: unused parameter 'k' [-Wunused-parameter] 2021-04-22 09:23:48 +01:00
Mael 8226666398
Merge branch 'master' into Triangulation_on_sphere_2-GF 2021-04-17 11:22:30 +02:00
Andreas Fabri a192a45f5b Fix warning: using the result of an assignment as a condition without parentheses [-Wparentheses] 2021-04-07 12:09:16 +01:00
Laurent Rineau 1b54449dc5 Merge pull request #4878 from danston/Kernels-decltypes-danston
Improve decltype/result_of/invoke_result
2021-04-06 15:13:21 +02:00
Laurent Rineau 58ddf16295 Merge pull request #5507 from afabri/PMP-vtune_isotropic_remeshing-GF
PMP:  Accelerate isotropic remeshing
2021-04-06 15:13:11 +02:00
Andreas Fabri abe6aa1eca remove unused typedefs 2021-04-01 19:48:44 +01:00
Andreas Fabri 7ebdd07a4c Add <RT> to rank as expression templates don't match 2021-03-30 14:28:55 +01:00
Andreas Fabri dbfb7157bb Rename compare() to compare_quotients() 2021-03-30 10:14:02 +01:00
Andreas Fabri 99a52959c3 Add the do_intersect for 3 planes using the rank() written by Sebastien 2021-03-29 17:15:53 +01:00
Andreas Fabri 23f1badd85 Use is_zero() instead of == FT(0) 2021-03-22 09:03:50 +01:00
Andreas Fabri 8eea3e70bb typename 2021-03-21 18:17:13 +01:00
Mael Rouxel-Labbé 717fedc588 Use better variable names 2021-03-19 17:28:04 +01:00
Andreas Fabri 75a2541d12 Add Plane/Ray 2021-03-18 14:37:34 +01:00
Andreas Fabri 2e0f01be94 WIP: make several do_intersect division free and several no longer compute the intersection. Plane/Plane/Plane as well as Plane/Ray are still wrong 2021-03-18 14:18:11 +01:00
Dmitry Anisimov 00c185b028
Merge branch 'master' into Kernels-decltypes-danston 2021-03-12 12:06:20 +01:00
Laurent Rineau dcf9dfd0fe Merge pull request #5435 from afabri/Intersect_3-fix_isocuboid_plane-GF
Intersect_3: Fix Iso_cuboid_3/Plane_3 and Tetrahedon_/Plane_3 intersection using PMP::clip internal function

# Conflicts:
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/clip.h
2021-03-03 17:30:04 +01:00
Andreas Fabri 7785a9c2b1 Use certainly() 2021-03-03 15:25:30 +00:00
Andreas Fabri 2ac977b7c5 Early exit in do_intersect of Sphere/Bbox_3 2021-03-03 13:21:24 +00:00
Andreas Fabri d5a5b20ce8 Make it clear that the functor is not part of the Kernel concept 2021-02-19 20:23:20 +00:00
Andreas Fabri 4bc161a332 Return a triangle not a vector 2021-02-12 09:42:52 +00:00
Andreas Fabri 75cb1593d0 WIP: try to do plane/tet intersection. I think the edge indexing is wrong 2021-02-10 15:41:45 +00:00
Sébastien Loriot 231e9f1b93 handle cases when plane contains an edge 2021-02-10 10:29:02 +01:00
Dmitry Anisimov 81d9556707 Merge remote-tracking branch 'upstream/master' into Kernels-decltypes-danston 2021-02-10 10:06:45 +01:00
Sébastien Loriot 38142dc101 update include directives 2021-02-09 18:51:38 +01:00
Sébastien Loriot 81a6fe16e8 remove idmap 2021-02-09 18:27:58 +01:00
Sébastien Loriot 95bd626bbd use one vector 2021-02-09 18:01:55 +01:00
Sébastien Loriot b363977c87 clean up 2021-02-09 17:58:25 +01:00
Sébastien Loriot fb731259d7 fix comparison 2021-02-09 17:51:01 +01:00
Andreas Fabri 6d438a0f94 WIP 2021-02-09 15:48:03 +00:00
Andreas Fabri d71057ce96 Test if there is something on the optional 2021-02-05 12:25:27 +00:00
Sébastien Loriot 1fcabd581b fix warnings (and indentation) 2020-11-27 14:04:13 +01:00
Andreas Fabri aa4c8f2f5a changes after Sebastien's comments 2020-11-09 21:23:41 +00:00
Sébastien Loriot 87b8f66e14 update from master 2020-10-20 09:19:13 +02:00
Andreas Fabri fd351091d8 Less operations thanks to Mael 2020-10-20 09:17:15 +02:00
Andreas Fabri fefbc4bc1a Add funcion intersection_point for Line/Plane 2020-10-20 09:17:15 +02:00
Andreas Fabri eafad68789 Add a function that only constructs a point intersection for 3 planes 2020-10-20 09:17:15 +02:00
Andreas Fabri 46698620e3 Hack for a fix of do_intersect(Plane_3,Plane_3,Plane_3) 2020-10-20 09:17:15 +02:00
Laurent Rineau 51f11605c0 Merge pull request #5022 from janetournois/Intersections_3-fix_do_intersect_3planes-GF
Intersections_3 - fix do_intersect(Plane_3, Plane_3, Plane_3)
2020-10-16 13:41:19 +02:00
Jane Tournois f005bd40a4 Merge branch 'Intersections_3-fix_do_intersect_3planes-GF' into Intersections_3-fix_do_intersect_3planes-master-GF
# Conflicts:
#	Filtered_kernel/include/CGAL/internal/Static_filters/Do_intersect_3.h
2020-10-06 17:30:29 +02:00
Jane Tournois 10456676ab fix compilation of do_intersect(plane, plane, plane) for msvc 2020-10-06 17:20:22 +02:00
Sébastien Loriot dc1ccb5c2d Merge remote-tracking branch 'cgal/releases/CGAL-5.0-branch' 2020-08-11 16:59:55 +02:00
Sébastien Loriot 8199d5308d Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2020-08-11 16:59:19 +02:00
Michael Hemmer a11b69e319 Fix do_intersect for Tetrahedron_3 Tetrahedron_3
In Line 65 in function do_intersect_tetrahedron_bounded (tr,tet,p,k) we eval  k.has_on_bounded_side_3_object()(tet, p), where tr=lh_tet and tet=rh_tet.
Thus p must be generated from lh_tet, or L65 is always true. 

This is a flyby and has not been tested.
2020-08-07 10:45:27 +02:00
Michael Hemmer 52d8238f3b
Fix dispatch do_intersect(Tetrahedron_3, Bbox_3)
Moving do_intersect(Tetrahedron_3, Bbox_3) below do_intersect(Bbox_3, Tetrahedron_3)

Before do_intersect(Tetrahedron_3, Bbox_3)  called do_intersect(Iso_cuboid_3, Tetrahedron_3), which compiled due to implicit conversion. 
AFAIKT it even worked, up to instances with degenerated Bbox_3/Iso_cuboid_3 executed in debug mode.
2020-08-06 15:15:53 -07:00
Dmitry Anisimov ad813b4cb0 further removed result_of and result 2020-07-30 16:19:02 +02:00
Mael f42d19b37e
Use kernel functors (suggestions from @sloriot)
Co-authored-by: Sebastien Loriot <sloriot.ml@gmail.com>
2020-07-08 12:39:18 +02:00
Michael Hemmer b3dbae08fc
Update Tetrahedron_3_Bounded_3_do_intersect.h
Fixing typo.
2020-06-24 17:54:30 +02:00
Laurent Rineau 269d1f3505
Fix trailing whitespace 2020-06-19 15:55:46 +02:00
Michael Hemmer 9ea41185f0
Update Tetrahedron_3_Bounded_3_do_intersect.h
Going back to 
  if (certainly(b)) return b;
  if (is_indeterminate(b)) result = b;

as there seems to be a compiler issues
2020-06-19 12:56:04 +02:00
Michael Hemmer 241737bf0d
Update Tetrahedron_3_Bounded_3_do_intersect.h
Using certainly(result) to have early exit.
2020-06-19 11:42:40 +02:00
Michael Hemmer 17afba2e1f
Update Tetrahedron_3_Bounded_3_do_intersect.h
changed the || to operator |, for more details see  https://doc.cgal.org/latest/STL_Extension/classCGAL_1_1Uncertain.html#aee84a3df3e0b7494f32eb9d56c1335c3
2020-06-10 17:14:38 +02:00
Michael Hemmer bbf26e22ec
Adding specific code for Tet + Bbox_3 do_intersect as it should be ok for Bbox_3 to degenerate.
Adding specific code for Tet + Bbox_3 do_intersect as it should be ok for Bbox_3 to degenerate. 

The previous code failed in case Bbox_3 is degenerate. 

I use the result = result || predicate(); to keep the maybe inside result. 
If certain the code returns early. 
I also avoid the %4 as this is a slow operation, but not sure that this is worth compared to the rest.
2020-06-03 16:58:49 +02:00
Sébastien Loriot 8b4118912d extra run of the script to remove tabs and trailing whitespaces 2020-03-26 18:58:21 +01:00
Sébastien Loriot fedc29e23c Update branch from master after trailing whitespaces and tabs removal 2020-03-26 18:57:54 +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
Maxime Gimeno 401e06c64c fix warning 2020-03-25 15:24:07 +01:00
Maxime Gimeno 586987e377 fix warning. 2020-03-23 11:56:14 +01:00
Maxime Gimeno d395e096f2 fix warnings 2020-03-20 10:55:29 +01:00
Maxime Gimeno fe0d4d0a6e more clean-up 2020-03-19 16:41:59 +01:00
Maxime Gimeno ce4cbe6d06 Fix licenses 2020-03-19 11:41:57 +01:00
Maxime Gimeno 8a6bdd90b3 Fix after review 2020-03-19 11:31:35 +01:00
Maxime Gimeno 0f3305f983 Enhancements after review 2020-01-16 17:20:13 +01:00
Maxime Gimeno c368b349d5 clean-up 2020-01-15 15:26:02 +01:00
Maxime Gimeno 90d2e03fdc Merge remote-tracking branch 'cgal/master' into Intersections_23-Add_missing_intersections-GF 2020-01-15 13:32:11 +01:00
Sébastien Loriot 530fa6be62 Merge remote-tracking branch 'cgal/releases/CGAL-4.14-branch' 2019-12-20 09:48:05 +01:00
Laurent Rineau 6f3db341f9 Fix issue #4357
Compilation error if <CGAL/Intersections_3/Triangle_3_Triangle_3.h> is included first.
2019-12-04 09:40:59 +01:00
Laurent Rineau bbe02d9f7b Fix the license header 2019-10-29 15:22:49 +01:00
Laurent Rineau ee357fd5dd Merge remote-tracking branch 'cgal/master' into Intersections_3-Add_T_3_Cub_3-maxGimeno 2019-10-29 15:19:24 +01:00
Maxime Gimeno 3000cbbf8b Fix warning 2019-10-23 11:20:48 +02:00
Maxime Gimeno 2bfa95a2ed more indentation fixes 2019-10-23 09:56:56 +02:00
Maxime Gimeno 9a8f26ced7 More changes after review 2019-10-22 16:28:57 +02:00
Mael Rouxel-Labbé a5f09f89a6 Partial code cleaning (and fix some typedefs) 2019-10-22 12:36:58 +02:00
Mael Rouxel-Labbé b4fb7cb779 Minor improvements to Cuboid/Tr computations
- Slight robustness improvements by storing in memory that the intersection
  points are by construction on the plane.
- const& and such

Pair programming w/ mgimeno!
2019-10-22 11:23:35 +02:00
Mael Rouxel-Labbé ee054a862c Minor improvements to Cuboid/Tr computations
- Slight robustness improvements by storing in memory that the intersection
  points are by construction on the plane.
- const& and such

Pair programming w/ mgimeno!
2019-10-22 11:19:45 +02:00
Maxime Gimeno ea3dc6c936 Add Cub_3-T_3 intersection 2019-10-21 16:18:46 +02:00
Maxime Gimeno e9a0b2d695 Fixes after review 2019-10-21 15:51:36 +02:00
Sébastien Loriot 52164b1fba First pass on removing license notice in header for LGPL files 2019-10-19 15:40:30 +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
Maxime Gimeno 3c875e8a18 WIP review 2019-10-04 15:30:52 +02:00
Maxime Gimeno b9d33c7ffa Fix Conflicts 2019-06-25 13:25:57 +02:00
Maxime Gimeno 89b35a5b17 Add missing case for Pl / Cub 2019-06-25 13:15:51 +02:00
Laurent Rineau 55c9a175b5 Merge branch 'releases/CGAL-4.13-branch' into releases/CGAL-4.14-branch 2019-06-21 10:34:18 +02:00
bryantcurto 056e846e0d Fixed do_intersect() ambiguity.
Occurs when compiling with clang
2019-06-21 10:33:46 +02:00
Laurent Rineau 53ba851c89 Merge pull request #3990 from bryantcurto/patch-1
do_intersect() Ambiguity
2019-06-20 14:21:05 +02:00
Maxime Gimeno d9b09ef001 Clean-up loop 2019-06-17 15:54:25 +02:00
Maxime Gimeno e58b4475e7 clean-up 2019-06-17 15:24:43 +02:00
Maxime Gimeno 3e5d3acb2f Replace the virtual helper class with a CRTP pattern to avoid the virtual methods. 2019-06-17 15:17:58 +02:00
Maxime Gimeno 6f2930acac Add missing license headers 2019-06-14 13:19:06 +02:00
Maxime Gimeno a9facfc574 Add misisng intersections for bbox_3 2019-06-13 10:31:20 +02:00
Maxime Gimeno c391e0e876 add Cub_tr as a Lazy implementation. Remains only Bbo intersections for the 3D 2019-06-13 10:27:16 +02:00
Maxime Gimeno 5e9891ea75 Tet / tr 2019-06-13 10:27:17 +02:00
Maxime Gimeno 38bf604b4a Add intersections for Tet/plane 2019-06-13 10:27:16 +02:00
Maxime Gimeno abeb0cf52d Add intersection Ray_3 / Tetrahedron_3 2019-06-13 10:27:00 +02:00
Maxime Gimeno 107e4e2abd Add intersection Ray_3 / Tetrahedron_3 2019-06-13 10:26:28 +02:00
Maxime Gimeno 9cb1173a41 Add intersection Tetrahedron_3 / Segment_3 2019-06-13 10:26:28 +02:00
Maxime Gimeno 469ed5396b Add Tet / line intersections 2019-06-13 10:26:28 +02:00
Maxime Gimeno 119ca0dff8 Add Intersection between Bbox_3 and Bbox_3 2019-06-13 10:26:28 +02:00
bryantcurto 39bceb093c
Fixed do_intersect() ambiguity.
Occurs when compiling with clang
2019-06-07 11:57:19 -04:00
Andreas Fabri 4581f1b7a8 Morte replacements 2019-06-05 08:39:55 +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
Laurent Rineau 4d3671024d Merge pull request #3855 from sgiraudot/Intersections_3-Fix_almost_collinear_segments_bug-GF
Intersections_3: Fix almost collinear segment bug

# Conflicts:
#	Intersections_3/include/CGAL/Intersections_3/internal/intersection_3_1_impl.h
2019-05-06 15:45:41 +02:00
Laurent Rineau 3586946e96 Merge pull request #3855 from sgiraudot/Intersections_3-Fix_almost_collinear_segments_bug-GF
Intersections_3: Fix almost collinear segment bug
2019-05-06 15:26:49 +02:00
Simon Giraudot 258179a707 Prevent construction of line with NaN coordinates 2019-04-30 11:23:47 +02:00
Sébastien Loriot 1d908c1c0b remove code for CGAL_INTERSECTION_VERSION 1 2019-03-29 13:28:32 +01:00
Laurent Rineau 9c426075b6 Optimized version of do_intersect with Tetrahedron_3 and something
The optimization is to delay the switch to the exact number type as
much as possible.

I was not able to find a good benchmark showing the improvement,
though. Maybe because the `do_intersect(Bbox_3, Triangle_3)` is not
optimized the same way.
2019-02-11 13:31:40 +01:00
Andreas Fabri e58de4baa1 cleanup 2018-12-03 12:52:06 +01:00
Andreas Fabri aac8ac4e6b Some changes after Sebastien's review 2018-11-29 15:58:34 +01:00
Sébastien Loriot 057f4eafe7 fix warning + cosmetic changes 2018-11-02 14:17:16 +01:00
Andreas Fabri d868969a07 Add tests 2018-05-30 15:58:04 +01:00
Andreas Fabri 93d19591da To intersect a Circle_2 means to intersect the boundary 2018-05-30 15:24:50 +01:00
Andreas Fabri a82b920b97 Include <CGAL/double.h> 2018-05-23 09:47:42 +01:00
Andreas Fabri 2f8515067c Add #include for CGAL::abs() 2018-05-22 10:51:39 +01:00
Andreas Fabri 9bfbd567d5 Remove CGAL_NO_INTERSECTION_FUNCTION and functions doing nothing 2018-05-17 14:30:30 +01:00
Andreas Fabri 162241066b Remove CGAL_NO_INTERSECTION_FUNCTION and functions doing nothing 2018-05-17 11:52:58 +01:00
Andreas Fabri e1eacead95 Add #includes of kernel object types 2018-05-09 12:20:11 +01:00
Andreas Fabri e65eba0301 Add #includes 2018-05-04 09:00:09 +02:00
Andreas Fabri 8abfad66ab inline 2018-05-04 09:00:08 +02:00
Andreas Fabri 92dcb7ca48 Reorganize header files 2018-05-04 09:00:08 +02:00
Andreas Fabri 4111e3e20c Reorganize header files 2018-05-04 09:00:07 +02:00
Andreas Fabri 09c7fe1103 move purely internal files 2018-05-04 08:57:57 +02:00
Andreas Fabri ffb13b07d6 Remove some functions added by Maxime 2018-05-04 08:57:57 +02:00
Andreas Fabri 0d3ac75518 Introduce namespace Intersections 2018-05-04 08:57:56 +02:00
Andreas Fabri 78b90d2614 Fix bugs revealed with g++ 2018-05-04 08:57:56 +02:00
Andreas Fabri 77f5a4e556 Remove typename; Comment after #endif 2018-05-04 08:57:56 +02:00
Sébastien Loriot 72cdc05152 fix headers 2018-05-04 08:57:56 +02:00
Andreas Fabri 12a5cd9f82 Add the remaining missing functions 2018-05-04 08:57:55 +02:00
Andreas Fabri 5d5f4d0a3d split header files 2018-05-04 08:57:55 +02:00
Andreas Fabri 702eafafdc Add Iso_cuboid / Sphere 2018-05-04 08:57:54 +02:00
Andreas Fabri 7dd25721f7 Add do_intersect(Bbox_3, Iso_cuboid_3) 2018-05-04 08:57:53 +02:00
Andreas Fabri 42762b7efb Add do_intersect(Iso_cuboid_3, Plane_3/Triangle_3) 2018-05-04 08:57:53 +02:00
Andreas Fabri e783228551 Share code between Iso_cuboid_3/BBox_3 for do_intersect with Ray_3 Nd Segment_3 to profit from static filter 2018-05-04 08:57:52 +02:00
Maxime Gimeno 318e7a7d12 Add missing overloads for Point_3 intersections 2018-05-04 08:56:05 +02:00
Laurent Rineau a2bfde2c06 Merge pull request #2869 from afabri/CGAL-fallthrough-GF
Intersections_3: Deal with fallthrough warnings
2018-03-02 16:32:57 +01:00
Andreas Fabri d3027734ca fix indentation 2018-02-23 19:07:36 +00:00
Andreas Fabri ae1923aa2e Deal with Triangle_Line and Triangle_Ray 2018-02-22 17:31:23 +00:00
Laurent Rineau 78e7060525 Merge pull request #2712 from afabri/CGAL-VC+warnlevel_4-GF
Deal with VC++ warnings of level /W4
2018-02-19 14:27:06 +01:00
Andreas Fabri 1170433885 Comment what default means 2018-02-09 14:23:40 +00:00
Andreas Fabri 6f79d2c6f0 fix typo 2018-02-08 15:30:25 +00:00
Andreas Fabri fbc1a9b1d3 Replace last case with default and remove fallthrough 2018-02-08 15:11:48 +00:00
Andreas Fabri e9c652d63f Add several fallthrough 2018-02-08 15:03:39 +00:00
Andreas Fabri 2e14ff9f04 Kernel 2018-01-17 19:59:11 +00:00
Andreas Fabri 7675141f2b AABB_tree 2018-01-17 19:43:47 +00:00
Andreas Fabri 38b2e57b11 PMP 2018-01-17 17:59:35 +00:00