Commit Graph

248 Commits

Author SHA1 Message Date
Laurent Rineau e5001d1a50 update our CMake version 3.18...3.31
That will suppress the warnings about `CMP0167` (from CMake 3.30):

```
CMake Warning (dev) at cmake/modules/display-third-party-libs-versions.cmake:37 (find_package):
  Policy CMP0167 is not set: The FindBoost module is removed.  Run "cmake
  --help-policy CMP0167" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.
```
2025-02-04 14:32:37 +01:00
Sébastien Loriot 499bcadc4b remove extra template keyword 2024-10-04 16:08:31 +02:00
Sébastien Loriot 1805701903 Merge remote-tracking branch 'cgal/5.6.x-branch' 2024-08-26 15:23:41 +02:00
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:


![image](https://github.com/user-attachments/assets/f18fd662-5ad6-4a01-9a49-a8d0c62cf7fe)

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


![image](https://github.com/user-attachments/assets/5f004941-7f58-4bf3-8416-7dc2144a891f)

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 3a223ebd1e cmake_minimum_required(VERSION 3.12...3.29) 2024-06-06 20:19:44 +02:00
Sébastien Loriot a528464f31 Merge branch 'cgal/master' into PMP-BF_autorefine 2023-08-28 13:44:44 +02:00
Sébastien Loriot bdfa15c08f fixes after merge 2023-06-15 11:34:14 +02:00
Sébastien Loriot 9a0bdb5d96 boost::variant ---> std::variant 2023-06-15 10:57:10 +02:00
Sébastien Loriot 604dcdc435 boost::optional => std::optional 2023-06-15 10:57:09 +02:00
Sébastien Loriot 0551cefa5d add more test from errors while testing thingi10k models 2023-06-07 15:02:10 +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