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
Sébastien Loriot
0698f79aff
add SPDX identifier for files under the LGPL-3+ license
2017-11-12 10:17:50 +01:00
Laurent Rineau
c826500c7d
Merge pull request #1551 from mglisse/Number_types-gmpxx_coercion-glisse
...
Misc GMPXX fixes
2016-10-20 09:47:39 +02:00
Andreas Fabri
9cd1b0fd62
We declare the third case default so that there is no fallthrough warning
2016-10-17 13:57:39 +02:00
Laurent Rineau
b14da4c496
Merge pull request #1568 from lrineau/Intersection-fix_inter_plane_seg-lrineau
...
Fix a bug in Intersect_3()(Plane_3, Segment_3)
2016-10-17 10:01:21 +02:00
Marc Glisse
030d81e3f7
Fixes for FT=mpq_class.
...
In particular, the constructor from std::string is explicit.
test_nef_3_io_EPEC is still broken because of that.
2016-10-14 00:37:11 +02:00
Laurent Rineau
afb8d3693d
Fix a bug in Intersect_3()(Plane_3, Segment_3)
...
That bug has been detected by a warning:
https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-4.10-Ic-16/Intersections_3/TestReport_lrineau_Ubuntu-latest-GCC6-CXX1z.gz
```
/mnt/testsuite/include/CGAL/Intersections_3/intersection_3_1_impl.h: In function 'typename CGAL::Intersection_traits<K, typename K::Plane_3, typename K::Segment_3>::result_type CGAL::internal::intersection(const typename K::Plane_3&, const typename K::Segment_3&, const K&) [with K = CGAL::Simple_cartesian<CGAL::Gmpq>]':
/mnt/testsuite/include/CGAL/Intersections_3/intersection_3_1_impl.h:1105:13: warning: this statement may fall through [-Wimplicit-fallthrough]
}
^
/mnt/testsuite/include/CGAL/Intersections_3/intersection_3_1_impl.h:1107:9: note: here
case ON_NEGATIVE_SIDE:
^~~~
/mnt/testsuite/include/CGAL/Intersections_3/intersection_3_1_impl.h:1071:9: warning: this statement may fall through [-Wimplicit-fallthrough]
switch (target_side) {
^~~~~~
/mnt/testsuite/include/CGAL/Intersections_3/intersection_3_1_impl.h:1090:5: note: here
case ON_NEGATIVE_SIDE:
^~~~
```
Now, the incorrect fallthrough is replaced by the return of the empty
set.
2016-10-12 11:20:07 +02:00
Laurent Rineau
51f5697d3d
Add missing #include
2016-09-30 15:23:14 +02:00
Andreas Fabri
1f989622e7
replace \code with real examples
2015-02-09 10:54:24 +01:00
Laurent Rineau
e965b6293e
Fix compilation errors with C++11 and Boost-1.56
...
Use *explicit* conversions to `bool`, for boost::shared_ptr and
boost::optional.
2015-01-14 14:47:29 +01:00
Laurent Rineau
be079cb5a3
Fix compilation with Boost-1.56 and later
...
In Boost-1.56 and later, with C++11, boost::optional::operator bool() is
explicit.
2015-01-13 16:21:04 +01:00
Laurent Rineau
f85c7e34e1
Bug fix proposed by Jean-Philippe Pons
2014-06-20 16:34:34 +02:00
Laurent Rineau
cabf490132
Fix includes
2014-06-20 16:34:22 +02:00
Laurent Rineau
ad798d8390
Rename variables
2014-06-20 16:33:01 +02:00
Andreas Fabri
fa4697ba59
Add a cheap test, namely if one of the two points of segment or ray is in the bbox
...
make_mesh_3 without mesh optimizer, and criteria only on facets, is 2-4
faster on data sets like fandisk, rocker-arm.off, cheese.off
2013-12-20 17:07:12 +01:00
Sébastien Loriot
61dfe46ab9
fix regression in the Triangle_3-Triangle_3 intersection computation
...
this has been introduced when rewriting the code for the removal
of Object
2013-11-28 17:19:52 +01:00
Sébastien Loriot
e1b3a2d582
fix incorrect else
2013-09-25 18:09:42 +02:00
Andreas Fabri
6c547e5663
Mainly added includes
2013-09-13 22:24:30 +02:00
Sébastien Loriot
a19023e2ef
Merge branch 'General-fix_warning-sloriot'
...
Successfully tested in 4.3-Ic-73
2013-06-27 08:38:30 +02:00
Sébastien Loriot
7dcfef5a53
Merge branch 'Polyhedron-demo_header_cleanup_and_new_plugins-sloriot'
...
Successfully tested in CGAL-4.3-Ic-68
approved by the Release Manager
2013-06-24 12:30:25 +02:00
Sébastien Loriot
bff4e98d01
fix warnings mainly coming from the merge of the replace object feature branch
2013-06-24 08:44:47 +02:00
Sébastien Loriot
496d75c256
update licenses that were incorrect after merging replace object feature branch
2013-06-21 15:06:17 +02:00
Sébastien Loriot
3d23a59a73
Merge branch 'inside_polyhedron_test-GF'
...
Conflicts:
Polyhedron/demo/Polyhedron/CMakeLists.txt
2013-06-20 16:34:02 +02:00
iyaz
43c8084ceb
Merge branch 'inside_polyhedron_test-GF-old' into inside_polyhedron_test-GF
...
Conflicts:
.gitattributes
2013-06-11 17:56:31 +03:00
Sébastien Loriot
88cc2621a1
Result is no longer used
2013-05-23 09:12:52 +02:00
Sébastien Loriot
14429d2b8e
fix compilation errors
2013-03-14 18:32:14 +01:00
Sébastien Loriot
f97d6b8bd9
s/boost::result_of/cpp11::result_of/g
2013-03-14 10:38:13 +01:00
Sébastien Loriot
d6905c61be
Merge branch 'Kernel-replace_object-pmoeller-old' into Kernel-replace_object-pmoeller
...
Conflicts:
AABB_tree/include/CGAL/AABB_tree.h
Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
Intersections_3/include/CGAL/Intersections_3/intersection_3_1_impl.h
Kernel_23/doc/Kernel_23/CGAL/intersections.h
Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
STL_Extension/doc/STL_Extension/CGAL/iterator.h
2013-03-14 10:29:31 +01:00
Laurent Rineau
2d8da664a3
Merge branch 'CGAL-fix_warnings-gdamiand'
...
Conflicts:
.gitignore
Skin_surface_3/examples/Skin_surface_3/CMakeLists.txt
2013-02-22 13:02:37 +01:00
Sébastien Loriot
0a0d1c1c5d
fix conversion warning
2013-02-15 07:20:28 +01:00
Sébastien Loriot
32cd27f1d1
using coercions traits to determine a common type
...
in case FT is float, we need double as coercion_type
2013-02-14 10:20:35 +01:00
Sébastien Loriot
1ca5410df0
a plane is not a point!
2013-02-09 16:22:51 +01:00
Sébastien Loriot
0b21facc96
we must use the construction object
2013-02-08 09:26:16 +01:00
Philipp Möller
03151d7bb7
intersection_return now also uses result_of
2012-12-10 17:20:36 +01:00
Philipp Möller
81b8604c76
Move Circular intersection results from the traits to result_of
2012-12-10 15:56:09 +01:00
Philipp Möller
4c02c6d1d6
Remove unused variable
2012-12-07 18:00:46 +01:00
Philipp Möller
4764e5d361
call_test should also use result_of
2012-12-06 17:27:23 +01:00
Philipp Möller
d198458ca7
Merge branch 'origin-gsoc2011-boost_object-pmoeller' into Kernel-replace_object-pmoeller
...
Conflicts:
.gitattributes
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
AABB_tree/include/CGAL/AABB_traits.h
AABB_tree/include/CGAL/AABB_tree.h
AABB_tree/test/AABB_tree/AABB_test_util.h
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2/arr_queries.tex
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/Arr_trapezoid_ric_point_location.tex
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/intro.tex
Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h
Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h
Arrangement_on_surface_2/test/Arrangement_on_surface_2/point_location.cpp
Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h
Filtered_kernel/include/CGAL/Lazy.h
Filtered_kernel/include/CGAL/Lazy_kernel.h
Intersections_2/include/CGAL/Triangle_2_Iso_rectangle_2_intersection.h
Intersections_2/test/Intersections_2/test_intersections_2.cpp
Intersections_3/test/Intersections_3/test_intersections_3.cpp
Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
Kernel_23/include/CGAL/Kernel/Type_mapper.h
Kernel_d/doc_tex/Kernel_d_ref/Kernel.tex
2012-12-04 17:57:53 +01:00
Marc Glisse
a758751485
Remove / comment out unused local typedefs. Fix one place where FT was used instead of RT (homogeneous coordinates, probably never compiled).
2012-07-28 06:21:06 +00:00
Sébastien Loriot
f1bdb9c8a7
merge from next
2012-07-10 14:33:09 +00:00
Sébastien Loriot
fb7a7e2e95
remove warning
2012-07-06 12:35:29 +00:00
Laurent Rineau
eef769cf9a
Fix Do_intersect_3(Bbox_3, Segment_3)
...
svn merge --reintegrate \^/branches/features/Intersection_3-fix_do_intersect_bbox_segment-lrineau
2012-06-25 08:37:32 +00:00
Philipp Möller
67fdbf93d1
Prevent spurious warning in the test-suite. Leave the one that is
...
actually suspicious.
2012-06-22 11:52:14 +00:00
Laurent Rineau
19ab08d6e9
Fix a warning from clang
...
The warning was:
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:353:9: warning: variable 'b' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
if( (px == qx) || // <=> (dmin == 0)
^~~~~~~~~~
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:408:12: note: in instantiation of function template specialization 'CGAL::internal::do_intersect_bbox_segment_aux<float, true, true, false>' requested here
return do_intersect_bbox_segment_aux<FT, true, true, false>(
^
[...]/include/CGAL/Kernel/function_objects.h:2052:14: note: in instantiation of function template specialization 'CGAL::internal::do_intersect<CGAL::Simple_cartesian<float> >' requested here
{ return internal::do_intersect(t1, t2, K()); }
^
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:428:10: note: in instantiation of function template specialization 'CGAL::CommonKernelFunctors::Do_intersect_3<CGAL::Simple_cartesian<float> >::operator()<CGAL::Segment_3<CGAL::Simple_cartesian<float>>, CGAL::Bbox_3>' requested here
return typename K::Do_intersect_3()(segment, bbox);
^
[...]/cmake/platforms/x86-64_Linux-2.6_llvm-clang-with-g++-4.6.2_F16/test/Intersections_3/bbox_other_do_intersect_test.cpp:67:12: note: in instantiation of function template specialization 'CGAL::do_intersect<CGAL::Simple_cartesian<float> >' requested here
bool b = CGAL::do_intersect(t,bbox);
^
[...]/cmake/platforms/x86-64_Linux-2.6_llvm-clang-with-g++-4.6.2_F16/test/Intersections_3/bbox_other_do_intersect_test.cpp:416:12: note: in instantiation of function template specialization 'test_aux<CGAL::Segment_3<CGAL::Simple_cartesian<float>> >' requested here
bool b = test_aux(s12,"s12",bbox,false);
^
[...]/cmake/platforms/x86-64_Linux-2.6_llvm-clang-with-g++-4.6.2_F16/test/Intersections_3/bbox_other_do_intersect_test.cpp:665:12: note: in instantiation of function template specialization 'test<CGAL::Simple_cartesian<float> >' requested here
bool b = test<K>(exact_predicates) &&
^
[...]/cmake/platforms/x86-64_Linux-2.6_llvm-clang-with-g++-4.6.2_F16/test/Intersections_3/bbox_other_do_intersect_test.cpp:678:7: note: in instantiation of function template specialization 'test_kernel<CGAL::Simple_cartesian<float> >' requested here
b = test_kernel<CGAL::Simple_cartesian<float> >(false);
^
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:360:25: note: uninitialized use occurs here
if(is_indeterminate(b)) return b; // Note that the default-constructed
^
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:353:9: note: remove the '||' if its condition is always false
if( (px == qx) || // <=> (dmin == 0)
^~~~~~~~~~~~~
[...]/include/CGAL/internal/Intersections_3/Bbox_3_Segment_3_do_intersect.h:351:23: note: initialize the variable 'b' to silence this warning
Is_greater_value b;
^
= false
2012-06-20 10:32:46 +00:00
Laurent Rineau
eecf1e94be
Fix for MSVC: protect the CGAL::max calls to prevent macro substitution
2012-06-20 09:53:56 +00:00
Laurent Rineau
23ab39f2df
Remove calls to CGAL::abs for Ray_3 and Segment_3
...
As t1 and t2 are, by construction, greater than 0, for rays and segments,
no need to call CGAL::abs on t[xyz]min and t[xyz]max.
2012-06-19 10:08:04 +00:00
Laurent Rineau
ab28ccf740
Fix bugs in overflow/underflow handling
2012-06-18 16:05:29 +00:00
Laurent Rineau
5142588eb3
Better performance (~10-15% better)
...
By removing several tests (and use CGAL::max instead), the generated
assembly is more efficient.
2012-06-18 16:05:04 +00:00
Laurent Rineau
090b93f229
Fix compilation for MSVC
2012-06-18 09:41:39 +00:00
Laurent Rineau
6c240a4ae2
Cleanup: remove unused code.
2012-06-15 15:49:33 +00:00
Laurent Rineau
28c9507c17
Go back to the version of revision 69620. That was faster.
2012-06-15 15:38:45 +00:00
Laurent Rineau
02754f17f9
Revert previous commit for CGAL/internal/Intersections_3/Bbox_3_Line_3_do_intersect.h
...
The code cannot be easily reused because a line does not store
two points but the a, b, c, d coefficients.
2012-06-15 15:27:17 +00:00
Laurent Rineau
a3587eabf3
A version with less branches and more numerical computation
2012-06-15 15:12:04 +00:00
Laurent Rineau
41ba29e19a
Factorize code of Do_intersect(Bbox_3, <something>)
...
Uniform use of do_intersect_bbox_segment_aux(..) with various Boolean
template arguments.
2012-06-15 15:06:34 +00:00
Laurent Rineau
a72bd80380
Pass the bbox as argument instead of the six coordinates
...
That increased the perfs! :-)
2012-06-14 17:04:35 +00:00
Laurent Rineau
503d441f1e
merge changes from next
2012-06-13 15:51:29 +00:00
Philipp Möller
17797b7271
Merge next into this branch. There have been conflicts in the
...
AABB_tree documentation, Intersections_3 and Arrangement_on_surface_2.
The merge also introduced a regression for a bug fixed in R68387 which
fixed a bug in Triangle_3 Segment_3 intersections. The relevant
testcase is in triangle_other_intersection_test.cpp.
2012-04-24 15:06:19 +00:00
Sébastien Loriot
8db3036330
BUGFIX
...
correct error in intersection computation of triangle_3 segment_3
when the segment is collinear with a triangle edge.
2012-04-05 11:57:58 +00:00
Sébastien Loriot
ab57806db7
missing enum_cast
2012-03-22 11:08:05 +00:00
Sébastien Loriot
ba760bbdb2
need to use an enum for having the different cases:
...
when the end point is on the facet, any ray have the endpoint in the
plane of the facet.
2012-03-22 10:39:23 +00:00
Sébastien Loriot
b058a2a4f3
modify the internal do_intersect Ray_3 vs Triangle_3 function
...
to be able to known whether the endpoint of the ray lies inside the
plane of the triangle. The running time is the public do_intersect function
should remain the same.
2012-03-21 18:20:04 +00:00
Laurent Rineau
672d2dd292
Commit work in progress
2012-03-21 16:58:29 +00:00
Laurent Rineau
439dd0abb9
Fix typo
...
- Remove a line that was rewritten but not removed.
- Add a comment
2012-03-21 14:34:53 +00:00
Laurent Rineau
b5d987a4b5
Increasing the perf of the filtered predicate
...
When FT is Interval_nt, it is better that the
Do_intersect_bbox_segment_aux_is_greater returns a Uncertain<bool> instead
of a bool. That can delay the conversion of Uncertain<bool> to bool, and
hence better perf.
2012-03-21 14:24:31 +00:00
Laurent Rineau
e940d97a75
Prepare the code factorization with the static filter of Do_intersect_3
2012-03-21 13:59:45 +00:00
Laurent Rineau
0e6dbc4b40
Reorganize expressions that are evaluation of the sign of a determinant
...
There are six of them in do_intersect(Bbox_3, Segment_3)
2012-03-21 11:49:30 +00:00
Laurent Rineau
c291e92442
Less tests of sign of expressions
...
Followup to previous commit.
I have managed to transform most of the tests to simple comparison of input
coordinates. That will ease the writing of static filters. Only six
determinant signs have to be exactly determined.
2012-03-21 11:40:29 +00:00
Laurent Rineau
671464db4c
Less tests of sign of expressions
...
I have managed to transform most of the tests to simple comparison of input
coordinates. That will ease the writing of static filters.
2012-03-21 11:13:19 +00:00
Laurent Rineau
e54df14afb
Code optimized for all x-, y-, and z-axis
2012-03-20 17:47:55 +00:00
Laurent Rineau
0358937f01
Code optimized for x-axis
2012-03-20 16:56:13 +00:00
Laurent Rineau
1aa69b5a8b
Factorize the _aux function for do_intersect(BBox_3, Ray_3|Segment_3)
2012-03-19 12:07:20 +00:00
Laurent Rineau
b5703e9cf8
Add a note about a test that is already covered by previous test.
2012-03-16 16:14:47 +00:00
Laurent Rineau
71d1ba01e1
This version should be correct.
2012-03-15 13:27:06 +00:00
Laurent Rineau
c8bc77e46d
Submit work in progress. The old code was really wrong!
2012-03-14 16:41:03 +00:00
Laurent Rineau
68b48a7151
Commit current version
...
To be reviewed fully.
2012-03-14 15:54:19 +00:00
Andreas Fabri
be573d2316
Fix for Windows 'min/max' bug
2012-01-18 09:52:23 +00:00
Laurent Rineau
5b5dd33848
merge changes from next
2012-01-09 12:33:39 +00:00
Laurent Rineau
5685e10669
reintegrate \^/branches/features/Static_filter_do_intersect-GF
2011-11-25 17:45:11 +00:00
Laurent Rineau
fb796dbc97
Missing match for Intersect_3::operator()(Ray_3, Triangle_3)
...
There was only Intersect_3::operator()(Triangle_3, Ray_3).
The specializations for CGAL::intersection were for both order however.
2011-11-25 17:40:02 +00:00
Laurent Rineau
ede47077ce
cleanup
2011-11-24 14:43:25 +00:00
Andreas Fabri
c4c4a24029
cleanup
2011-11-24 14:15:32 +00:00
Laurent Rineau
e0c80037ae
merge changes from next
2011-11-23 15:53:51 +00:00
Laurent Rineau
fc5a23bc06
Comments to help debugging
2011-11-21 14:53:16 +00:00
Philipp Möller
3fe7c7b9dd
Removed cruft from Intersection_traits and Kernel_d now uses the macros do declare global functions
2011-11-21 13:52:39 +00:00
Sébastien Loriot
59f5cc0ba0
optimise Bbox_3-line_3 do_intersect (prevent filter failures)
2011-11-21 13:43:45 +00:00
Laurent Rineau
1ea6830233
New version of Do_intersect_3 static filter
...
This time we hope it is correct.
2011-11-18 15:34:26 +00:00
Philipp Möller
ee09ef2297
Overloading intersection and do_intersect now work by introducing a better match for every possible function
2011-11-18 14:14:41 +00:00
Philipp Möller
450f438518
IT shortcut not circumvents specifying a kernel making it an actual shortcut and nicer for exposure in APIs
2011-11-10 11:06:26 +00:00
Philipp Möller
c2bfb68112
* Now dispatching on Ambient_dimension
...
* incorporated result_type == Object to remove more ifdefs
2011-11-09 11:35:04 +00:00
Philipp Möller
33430eef68
Intersections_3 now fully uses CGAL_INTERSECTION_VERSION
2011-11-08 17:37:24 +00:00
Philipp Möller
0929a0f92a
Move the define to Intersection_traits. Those will be included every time.
2011-11-08 14:38:32 +00:00
Philipp Möller
a6f4cb16ae
Macro for versioning the intersections and support for both versions in the top level function.
2011-11-08 11:56:57 +00:00
Sébastien Loriot
91a5327fa8
change LGPLv2 -> LGPLv3
2011-10-10 13:48:25 +00:00
Sébastien Loriot
dff6dda8b3
Remove from copyright holder
...
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
2011-09-21 19:46:31 +00:00
Philipp Möller
b07e2df018
* Circular_kernel is now Object free, doesn't compile with Lazy yet,
...
* hack for ternary function
2011-08-25 21:40:12 +00:00
Philipp Möller
5b925d6f6e
* Reworked Intersection_traits into a single traits, adjusted
...
intersections accordingly, turned on IT<....> as return type
* removed result_type from the intersection functors
2011-08-25 10:18:31 +00:00
Philipp Möller
fad504838f
* Circular_kernel: - Intersections now use variants
...
- removed most internal uses of Object
* Intersections: more traits, typofix, doc typofix, aliases IT23d
2011-07-20 22:54:03 +00:00
Philipp Möller
b457bcc7c8
merged next, fiddled with deprecation warning to resolve tree conflict
2011-07-18 18:14:21 +00:00
Philipp Möller
12f79a7d1e
Object includes and last intersection stragglers
2011-07-18 17:31:20 +00:00
Philipp Möller
525fe15e9a
Internals switched to variant.
2011-07-15 14:13:55 +00:00
Sébastien Loriot
bbc56adedc
raffine bugfix of 64734
...
(remove unneed code added)
2011-07-13 14:35:58 +00:00
Philipp Möller
6987321d4e
More overloads removed and another test.
2011-07-12 17:35:19 +00:00
Philipp Möller
2f9b36d618
* intersection and do_intersection now pick their appropriate
...
overloads automatically;
* a test for the availability of all calls has been added
2011-07-12 16:53:49 +00:00
Sébastien Loriot
0331ea939b
BUGFIX: Bbox_3-line_3 do_intersect missing two cases when the y-slope or z-slope
...
of the line is 0. Add a testsuite for Bbox_3-Line_3 do_intersect.
2011-07-12 07:05:40 +00:00
Laurent Rineau
369498d1e5
Cancel revision 64607. There had been a problem with the branch.
...
| ------------------------------------------------------------------------
| r64607 | efif | 2011-07-05 17:27:04 +0200 (Tue, 05 Jul 2011) | 1 line
|
| Merged feature-branch Aos_2-new_functors-tau into next
| ------------------------------------------------------------------------
2011-07-06 11:11:58 +00:00
Laurent Rineau
a618b1db81
Cherry-pick this patch:
...
| ------------------------------------------------------------------------
| r61610 | sloriot | 2011-03-09 17:32:05 +0100 (Wed, 09 Mar 2011) | 2 lines
| Changed paths:
| M /branches/experimental-packages/Mesh_3-protecting_balls-branch/Intersections_3/include/CGAL/Triangle_3_Segment_3_do_intersect.h
|
| split an internal function to reuse it
|
| ------------------------------------------------------------------------
2011-06-17 13:12:31 +00:00
Sébastien Loriot
a03f2c88c0
bug fix in tersection of 3D colinear segments.
...
Update test-suite to test all possible configurations.
2011-05-20 08:52:12 +00:00
Sébastien Loriot
1674fa6240
use coplanar intersection (avoid retesting it)
2011-05-16 17:12:06 +00:00
Sébastien Loriot
a372589e67
intersection can be empty
2011-04-11 08:06:51 +00:00
Andreas Fabri
ab7736631e
QPL -> LGPL
2011-03-10 21:15:14 +00:00
Andreas Fabri
dcf575beb3
Remove unused variable
2010-11-12 08:33:25 +00:00
Sébastien Loriot
b2f7df6513
add do_intersect for Ray_3 vs {Line_3,Segment_3,Ray_3}
...
add intersection for Ray_3 vs {Line_3,Segment_3,Ray_3}
append test to the testsuite
correct a variable name in line vs segment intersection
2010-10-28 15:13:53 +00:00
Sébastien Loriot
799a3448ab
merge modifications made in the branch branches/experimental-packages/AABB_tree-faster-BBox_3_Triangle_do_intersect
...
created at r56349 and last modifications at r56671
modification in r56464 requires that the function point() of triangle returns a const ref
to the triangle point. This has already been done in the trunk at r56954.
Details:
*For Bbox_3 plane_3 intersection:
For floating point arithmetic everything is ok,
but in the presence of floating point filters
things start getting slightly more complicated.
The supporting plane/bbox test uses
the orientation of the normal of the plane
for finding two corners of the cube for a
sidedness test.
For planes parallel to the xy, xz, yz plane
this immediatly leads to problems.
We introduce CGAL::Uncertain, etc in order
to avoid switching to an exact arithmetic
as long as possible.
*For Bbox_3 triangle_3:
Idem. Fine with floating point or exact type
but get into troubles with interval arithmetic when one
triangle boundary is collinear with an axis.
Remember that the implementation is based on the
separating axis theorem. Amongst axis tested, the
one discribed by the cross product of the triangle boundary
and the bbox boundary is tested. In the case they are collinear
this directly fail.
To handle this we added a small part testing whether the triangle
has one boundary collinear to an axis to avoid this situation.
Also, The "underlying" code has been factorized using the swap function.
2010-10-15 08:57:22 +00:00
Marc Glisse
51e7039a93
Remove extra ';'
2010-09-05 09:12:08 +00:00
Sébastien Loriot
d01decf3ad
correct include path
2010-09-01 20:40:33 +00:00
Sébastien Loriot
458b5136cc
add missing symetric function
2010-09-01 10:11:57 +00:00
Sébastien Loriot
1daecf3943
move BBox vs {sphere,plane,triangle} do_intersect from AABB_tree to Intersections_3,
...
and update accordingly include directives. Update testsuite
remove unneed CMakeLists.txt from AABBtree testsuite
Remove Triangle_3_Plane_3 intersection from AABB_tree (I define it in Intersections_3 some days ago, thus a conflict)
2010-09-01 08:49:24 +00:00
Sébastien Loriot
663099d82d
add intersection Triangle_3,Triangle_3
...
add intersection Plane_3,Triangle_3
update documentation (also for Segment_3,Line_3 and Segment_3,Segment_3)
2010-08-31 13:42:40 +00:00
Sébastien Loriot
6bdfdf8f70
extract from intersection(segment,segment), intersection_collinear_segments
...
that be used internally.
2010-08-26 09:18:32 +00:00
Sébastien Loriot
a5f3b43834
add intersection and do_intersect for segment_3 vs line_3
2010-08-24 13:33:07 +00:00
Sébastien Loriot
4b4f91a5eb
add intersection computation and test for segment_3 vs segment_3
2010-08-24 08:28:00 +00:00
Sébastien Loriot
15079cf214
correct bug in triangle_3-segment_3 intersection:
...
in the case when the segment is coplanar with the triangle plane
and the segment is on the supporting line of one triangle segments.
The case when the intersection is reduced to a point was not handled.
2010-07-12 06:34:17 +00:00
Stéphane Tayeb
d7e1d01f4f
Fix warnings: remove unused variables.
2010-07-02 15:06:05 +00:00
Sébastien Loriot
52317dd49f
add python script (replace_CGAL_NAMESPACE.py) to replace CGAL_BEGIN_NAMESPACE and CGAL_END_NAMESPACE
...
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
2010-06-09 07:37:13 +00:00
Stéphane Tayeb
71165c8ef4
Fix compilation on x86-64_Linux-2.6_llvm-clang-with-g++-4.4.1_F11: declare function do_intersect_coplanar before using it.
2010-05-20 07:02:56 +00:00
Michael Hemmer
ec4cdbe976
ajust for other kernels
2010-01-28 17:02:09 +00:00
Michael Hemmer
b379564462
mv Bbox_3 intersect with line/ray/segment to bbox_intersection_3.h file,
...
it must be a template function since it depends on the Kernel
rm Intersections_3/src/CGAL/Bbox_3_intersections.cpp since it is empty
2010-01-28 15:40:48 +00:00
Stéphane Tayeb
6494ffc972
Move do_intersect(Bbox,Bbox/Line/Ray/Seg) and intersection(Triangle,Line/Ray/Seg) from AABB_tree.
2009-12-18 15:12:59 +00:00
Stéphane Tayeb
9cd2160f03
* Fix previous commit...
...
* Minor fix: replace COLLINEAR by COPLANAR (4 point orientation predicate result)
2009-11-20 12:36:02 +00:00
Stéphane Tayeb
93c5a15f51
Fix minor bug in intersection(segment,plane): ensure a line is never returned.
2009-11-20 12:05:32 +00:00
Stéphane Tayeb
12d4519a2b
revert r52901-52902 (moving predicate from AABB_tree to Intersections_3)
2009-11-10 16:57:37 +00:00
Stéphane Tayeb
6743dbccef
Move intersection predicates and constructions from AABB_tree to Intersection_3.
2009-11-09 12:10:11 +00:00
Sylvain Pion
8573fe26ce
Rename CGALi to internal.
2009-08-24 17:10:04 +00:00
Sylvain Pion
ca964c7f42
Add missing do_intersect() functions for Iso_cuboid_3.
2008-08-29 14:33:12 +00:00
Sylvain Pion
4c79d1d5cf
Rename Bool_type to Boolean.
2008-08-26 13:40:26 +00:00
Sylvain Pion
173ef7c590
Allow propagation of Uncertain-ty in more places, to reduce the number of exceptions.
...
- Use K::Bool_type, K::Orientation... instead of bool, CGAL::Orientation...
- More functions around Uncertain<> : make_certain(), extract_singleton(),
possible conversions tightenning.
Many conversions still remain, e.g. for switch and if statements, &&, ||...
2008-07-16 13:45:13 +00:00
Pedro Machado Manhaes de Castro
60928dd80b
fixing warnings
2008-06-09 07:58:50 +00:00
Pedro Machado Manhaes de Castro
fdae4d0aec
avoiding unecessary warnings
2008-06-06 16:49:06 +00:00
Pedro Machado Manhaes de Castro
fc45f43179
Adding Circle_3 object to the Kernel.
2008-06-03 12:17:16 +00:00
Laurent Rineau
aa7926685b
unused variable (when CGAL_NDEBUG is defined).
2008-04-25 14:00:52 +00:00
Sylvain Pion
a90de08bf3
Remove obsolete config flag CGAL_CFG_MATCHING_BUG_4 and its dependency CGAL_WRAP.
2007-08-08 15:15:20 +00:00
Sylvain Pion
3bebf1b352
remove warning
2007-02-28 16:52:55 +00:00
Andreas Fabri
7e401a82f5
minmax fixes
2006-08-18 20:57:55 +00:00
Sylvain Pion
cb6639b85a
Introduce wmult_hw(), a new abstraction for Homogeneous/Cartesian,
...
similar to wmult(), for calls .hw() on the last argument
(i.e., does absolutely nothing in the Cartesian case).
2006-08-07 12:34:24 +00:00
Sylvain Pion
0789aa3b4e
Style optimization (replace default-ctor+assignment by copy-ctor, etc...)
2006-08-07 11:55:37 +00:00
Sylvain Pion
e35d01bd80
Philippe Guigue's intersection code is post-GALIA, hence INRIA-owner only.
2006-07-30 16:50:53 +00:00
Sylvain Pion
8070c73bc1
Move <CGAL/intersection_3_1.C> to
...
<CGAL/Intersections_3/intersection_3_1_impl.h>
2006-05-25 17:44:06 +00:00