Commit Graph

400 Commits

Author SHA1 Message Date
Laurent Rineau 743de32052 Merge pull request #6779 from sloriot/Intersections_3-better_tetra_tri
Simpler implementation of Tet vs. Tri intersection
2022-09-13 12:33:08 +02:00
Laurent Rineau 0141404f4d Merge pull request #6809 from lrineau/Filtered_kernel-fix__do_intersect__Bbox_3__Triangle_3__static_filters-GF
Fix static filter of Do_intersect_3(Bbox_3,Triangle_3)
2022-09-13 12:33:03 +02:00
Laurent Rineau 4bc403857d Merge pull request #6779 from sloriot/Intersections_3-better_tetra_tri
Simpler implementation of Tet vs. Tri intersection
2022-09-13 12:32:22 +02:00
Laurent Rineau ad2a07e653 Merge pull request #6809 from lrineau/Filtered_kernel-fix__do_intersect__Bbox_3__Triangle_3__static_filters-GF
Fix static filter of Do_intersect_3(Bbox_3,Triangle_3)
2022-09-13 12:32:20 +02:00
Laurent Rineau e93011ae2a Merge pull request #6779 from sloriot/Intersections_3-better_tetra_tri
Simpler implementation of Tet vs. Tri intersection
2022-09-13 12:31:37 +02:00
Sebastien Loriot d896940470
Cosmetic changes
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2022-09-07 16:08:58 +02:00
Laurent Rineau c61e3a978b Fix typo size/side 2022-08-24 16:18:26 +02:00
Sébastien Loriot bf6e2a2929 remove unused typedefs 2022-08-02 07:34:55 +02:00
Sébastien Loriot 77a50cfd7c compute it once 2022-08-02 07:34:55 +02:00
Sébastien Loriot 5d32639dc0 fix comment 2022-08-02 07:34:55 +02:00
Sébastien Loriot 2193551f42 precompute plane vertex indices 2022-08-02 07:34:54 +02:00
Sébastien Loriot 5c10048d3e add a bitset to track planes containing polygon points
used to avoid computing points and use input tetrahedron vertex
+workaound for kernels with inexact constructions
2022-08-02 07:34:54 +02:00
Sébastien Loriot bf89c548fd simplify Tetra/triangle intersection computation
Testsuite fails for Kernel with non-exact contructions
2022-08-02 07:34:54 +02:00
Sébastien Loriot c9c6b30cf0 Merge sloriot/CGAL-std_type_traits into master 2022-06-23 16:35:37 +02:00
Sébastien Loriot ac8b6d4731 boost::is_same --> std::is_same 2022-06-10 08:18:20 +02:00
Brian Spilsbury 45c5ef7534 Qualify do_intersect to avoid ambiguous dispatch 2022-06-04 13:17:02 +09:00
Mael Rouxel-Labbé d355a56d66 Merge remote-tracking branch 'cgal/master' into AABB_tree-Multiple_prim_per_datum-GF 2022-03-24 12:44:28 +01:00
Laurent Rineau ba0053461f Merge pull request #6344 from sloriot/CGAL-static_constexpr
Add missing static keyword
2022-02-24 09:49:38 +01:00
Laurent Rineau eb86d35ab0 Merge pull request #6344 from sloriot/CGAL-static_constexpr
Add missing static keyword
2022-02-24 09:44:47 +01:00
Sébastien Loriot 6f6bd08e2e add missing static keyword 2022-02-22 12:42:41 +01:00
Andreas Fabri 35eee1b117 Both types must be coerced 2022-02-03 15:47:17 +00:00
Andreas Fabri a7ff075f37 Use Coercion_traits::Cast 2022-02-03 13:21:11 +00:00
Andreas Fabri 29fc20fc04 Fix by constructing a CFT from the double before doing operator-() ; Comment the testcase in Number_types 2022-01-20 13:04:12 +00:00
Sébastien Loriot 1491983b93 add missing include directives 2022-01-18 11:36:56 +01:00
Sébastien Loriot 1e9cad98a8 better fix 2021-09-14 09:32:40 +02:00
Sébastien Loriot b67589e16b workaround sign issue 2021-09-14 08:41:34 +02:00
Mael Rouxel-Labbé 7049d667e5 Avoid copying arrays 2021-09-10 18:12:30 +02:00
Mael Rouxel-Labbé afa4279a54 Merge branch 'Filtered_kernel-Do_intersect_3-GF-old' into Filtered_kernel-Do_intersect_3-GF 2021-09-10 17:50:28 +02:00
Mael Rouxel-Labbé e829dc73d3 Merge branch 'Filtered_kernel-Do_intersect_3-GF-old' into Filtered_kernel-Do_intersect_3-GF 2021-09-10 17:46:08 +02:00
Mael Rouxel-Labbé 9f32bd1a79 Update header includes 2021-09-02 17:36:44 +02:00
Andreas Fabri a95858fc55 Revert "Work around CGAL_AND as explained in the manual"
This reverts commit 7d2321cecd.
2021-08-31 08:56:56 +01:00
Andreas Fabri 7d2321cecd Work around CGAL_AND as explained in the manual 2021-08-25 16:05:03 +01:00
Mael Rouxel-Labbé 5b94d2db56 Actually erase duplicate internal points 2021-08-25 14:52:22 +02:00
Mael Rouxel-Labbé 6dfe06a286 Fix conversion warnings 2021-08-23 11:49:45 +02:00
Andreas Fabri 3d04ab1e9e Explicitely use CGAL::sign This only fixes some compilation errors, but not the runtime errors of AABB_tree for VC++ 2021-08-13 10:27:36 +01:00
Mael Rouxel-Labbé 2f253b1f63 Remove useless sort 2021-08-06 10:13:00 +02:00
Mael Rouxel-Labbé db4c3fbc76 Fix misc issues within intersection tests themselves 2021-08-06 10:12:37 +02:00
Mael Rouxel-Labbé 5662b4cd41 Fix assuming some member functions actually return const& 2021-08-03 14:34:05 +02:00
Mael Rouxel-Labbé 9c6456f949 Fix some precision issues for Bbox_3 / kernel object do_intersect tests
The previous code relied on the kernel's FT having at least as much precision
as double, which isn't always the case.

Plenty of code still do this in Intersections_23...
2021-07-29 14:23:40 +02:00
Mael Rouxel-Labbé e118e28e72 Rewrite CGAL::intersection(Tetrahedron_3, Triangle_3) 2021-07-05 22:02:11 +02:00
Mael Rouxel-Labbé 2b41096f69 Fix Sphere_3 Triangle_3/Tetrahedron_3 do_intersect 2021-06-30 11:26:13 +02:00
Mael Rouxel-Labbé 3afa3b546b Re-enable tests + enhancements 2021-06-29 09:25:40 +02:00
Mael Rouxel-Labbé 6b6ab287a8 Fix Segment_3-Sphere_3 do intersect: detect fully contained segments 2021-06-28 13:26:28 +02:00
Mael Rouxel-Labbé e70a62ac62 Fix Iso_cuboid_3 / Line_3 Do_intersect() 2021-06-25 20:16:29 +02:00
Mael Rouxel-Labbé c2d1adfb69 Fix missing, extra do_intersect()/intersection() overloads
and reorganize everything...
2021-06-23 17:34:48 +02:00
Sébastien Loriot 9bfe21144e fix incorrect return type 2021-06-17 12:56:32 +02:00
Sébastien Loriot cdaabd3d72 static filter for do_intersect bbox/triangle 2021-06-16 13:56:08 +02:00
Sébastien Loriot 5f2c6fdbdf refactor the code prior to plug static filters 2021-06-16 11:27:21 +02:00
Sébastien Loriot 93476f0b43 use sign 2021-06-15 15:24:00 +02:00
Sébastien Loriot 65d630536b factorize 2021-06-15 15:24:00 +02:00
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