Sébastien Loriot
b682c47c56
Merge remote-tracking branch 'cgal/5.5.x-branch' into HEAD
2024-08-26 15:22:53 +02:00
Sebastien Loriot
9dea168da5
Fix for Line_3 Ray_3 do_intersect ( #8398 )
...
## Summary of Changes
Some non intersection is wrongfully detected as an intersection for the
Line_3 Ray_3 combination. Here is an illustration:

The base code is :
```cpp
if(!do_intersect(l, r.supporting_line()))
return false;
typename K::Coplanar_orientation_3 pred = k.coplanar_orientation_3_object();
CGAL::Orientation p0p1s = pred(l.point(0), l.point(1), r.source());
if(p0p1s == COLLINEAR)
return true;
CGAL::Orientation stp0 = pred(r.source(), r.second_point(), l.point(0));
if(stp0 == COLLINEAR)
return Ray_3_has_on_collinear_Point_3(r,l.point(0),k);
return (p0p1s != stp0);
```
The supporting line of the ray intersects the line, and then nothing is
collinear, so we check L0,L1,R1 vs R0,R1,L0, which are of opposite sign
so there is an intersection... but there is none.
This check is very similar to what is done in Ray_3-Ray_3, where it is
correct.
I did a naive fix for now: without loss of generality we can go to the
configuration below

and so we have an intersection as long as the ray "points" in the other
slab wrt to the line. And so, in coplanar orientation checks, if the
orientation L0,L1,R0 differs from L0, L1, (L0 + (R1-R0)).
I feel like I could probably skip at least a translation by having
something like Coplanar_orientation(P3, P3, P3, V3), and maybe even
more...
## Release Management
* Affected package(s): `Intersections_3`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
2024-08-26 15:21:21 +02:00
Sébastien Loriot
ca2907fbfc
avoid creating degenerate planes
2024-08-20 10:09:23 +02:00
Mael Rouxel-Labbé
c1e5926e70
Add new Intersection_3 test cases
2024-08-06 10:36:09 +02:00
Laurent Rineau
8a6b583780
Merge pull request #6880 from soesau/PMP-tests_only_for_epeck-soesau
...
Pmp tests only for epeck
2023-01-27 21:02:26 +01:00
Mael
0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113
2022-12-06 22:21:06 +01:00
Laurent Rineau
e8ec440859
Merge branch 'master' into Kernel-Compare_distance_3_RT_FT__always_Filtered_predicate_RT_FT-GF
...
# Conflicts:
# STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h
2022-12-05 14:51:31 +01:00
Laurent Rineau
2f92fdded4
Merge pull request #7082 from MaelRL/Intersections_3-L3_bug-GF
...
Fix Line_3-Tet_3 intersection test
2022-12-05 12:21:56 +01:00
Laurent Rineau
3135821001
Merge pull request #7082 from MaelRL/Intersections_3-L3_bug-GF
...
Fix Line_3-Tet_3 intersection test
2022-12-05 11:57:11 +01:00
Mael
da0b13699c
Merge branch 'master' into Kernel-Compare_distance_3_RT_FT__always_Filtered_predicate_RT_FT-GF
2022-12-02 23:19:29 +01:00
Mael Rouxel-Labbé
87960efc48
Fix Line_3 Tet_3 intersection test
...
The construction of the line is only valid if the tet is well oriented
2022-11-24 12:41:05 +01:00
Mael Rouxel-Labbé
a758101038
Remove some useless includes
2022-11-22 12:35:44 +01:00
albert-github
45478184de
spelling corrections
...
Some spelling corrections (Directories starting with `E`-` L`),
some backward work
some forward work
2022-11-15 13:39:40 +01:00
Sven Oesau
cd3d7528ec
intersection is only validated for exact construction kernels
2022-10-01 16:08:26 +02:00
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
Mael Rouxel-Labbé
bc9aa692c3
Add a few more tests to Tr-Tet
2022-09-07 16:00:59 +02:00
Sébastien Loriot
f0f01b70ba
remove trailing whitespace
2022-09-07 08:44:42 +02:00
Andreas Fabri
550e4306c8
Add triangles completelty to the left of the bbox parallel/projection on face inside, projection on face intersects
2022-08-25 13:09:18 +01:00
Sébastien Loriot
eaffbfb886
add new test from issue
2022-08-02 07:34:54 +02:00
Sébastien Loriot
445be90c04
update triangle (permutation)
2022-08-02 07:34:54 +02:00
Laurent Rineau
734c96e951
Merge branch 'master' into pr/lrineau/6558
2022-05-06 16:25:32 +02:00
Laurent Rineau
2288225448
Massive update of CMake policies to version 3.23
2022-05-06 09:34:35 +02:00
Andreas Fabri
21ebead9b0
Intersect_3: Fix assert in the testsuite
2022-05-03 11:54:19 +01:00
Sébastien Loriot
ab48f63e30
update latest cmake version tested
2021-11-09 10:58:47 +01:00
Mael Rouxel-Labbé
d61680e324
Fix warning
2021-08-31 11:08:39 +02:00
Mael Rouxel-Labbé
529da2ff68
Explicit the random seed in triangle/other tests
2021-08-29 13:54:01 +02:00
Mael Rouxel-Labbé
f0b00551f6
Fix constructing degenerate spheres in Plane_3 intersection tests
2021-08-29 13:53:33 +02:00
Mael Rouxel-Labbé
fe37492692
Remove debug print
2021-08-25 08:39:25 +02:00
Mael Rouxel-Labbé
cc6e76dd85
Lower verbosity of Intersection_3 tests
2021-08-24 11:40:26 +02:00
Mael Rouxel-Labbé
e1d6f75579
Fix bad tests
2021-08-23 11:49:54 +02:00
Mael Rouxel-Labbé
6dfe06a286
Fix conversion warnings
2021-08-23 11:49:45 +02:00
Mael Rouxel-Labbé
db4c3fbc76
Fix misc issues within intersection tests themselves
2021-08-06 10:12:37 +02:00
Mael Rouxel-Labbé
0002c4ae61
Enhance tests
2021-08-03 14:34:37 +02:00
Mael Rouxel-Labbé
bdba6eedfe
Fix accidentally calling API-only tests
2021-07-29 14:24:54 +02:00
Mael Rouxel-Labbé
98b7235aea
Add missing helper file
2021-07-29 13:43:40 +02:00
Mael Rouxel-Labbé
989f8b79de
More tests for the intersection Tet_3/Tr_3
2021-07-05 22:02:54 +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é
65b7d11acd
Test improvements
2021-06-25 21:28:54 +02:00
Mael Rouxel-Labbé
d1b456cd70
Add a lot more testing to Intersections_3
2021-06-23 17:39:52 +02:00
Laurent Rineau
38812be5eb
Merge pull request #5680 from afabri/Intersections-fix_RT-GF
...
Intersections_3: Fix do_intersect(sphere/triangle) if FT has no division
2021-05-27 19:12:35 +02:00
Andreas Fabri
4f7703fd94
trailing whitespace
2021-05-06 08:07:39 +02:00
Andreas Fabri
b7b2e19555
Add the sphere ray tests
2021-05-05 17:39:59 +02:00
Andreas Fabri
10e1b51ed3
Add &s
2021-05-05 17:24:37 +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