Commit Graph

400 Commits

Author SHA1 Message Date
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
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