Commit Graph

309 Commits

Author SHA1 Message Date
Simon Giraudot 886c7bce5b Fix AND boolean operation with CGAL::possibly 2018-01-16 12:19:28 +01:00
Simon Giraudot bf03a53e1c Bugfix: use largest scalar when computing Plane_3::point() to avoid badly defined point 2018-01-15 10:18:29 +01:00
Laurent Rineau 42b11ddf29 Revert the merge of PR #2478
This reverts the merge commit 46cc91e787 onto
488c3e2879.
2018-01-04 17:54:08 +01:00
Andreas Fabri d95a6e8a4c Fix for Construct_bbox_2::operator(Triangle_3) with Simple_cartesian<Interval_nt<0>> 2017-11-30 16:36:53 +00:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Mael Rouxel-Labbé b9c9a67bbc Fixed Compute_squared_radius_2's return type 2017-08-22 14:22:25 +02:00
Laurent Rineau ec3d605316 Merge pull request #2245 from lrineau/Cartesian_kernel-fix_issue_2206-lrineau
Fix #2206
2017-07-17 12:04:15 +02:00
Laurent Rineau 9ec5afb7c5 Fix #2206
@mglisse:
> For number types using expression templates, we need to specify the
  template parameter
2017-07-10 17:45:27 +02:00
Mael Rouxel-Labbé e95d3d3f2b Make all conversions between Point and Weighted_point explicit
Also doc changes
2017-06-28 10:14:35 +02:00
Jane Tournois 223e3a20b6 make constructors of Weighted_point explicit
and fix compilation errors
2017-06-28 10:14:35 +02:00
Laurent Rineau 39036d4807 Merge pull request #2122 from sgiraudot/Kernel-Fix_plane_to_2d-GF
Cartesian kernel: improve plane bases computation
2017-05-29 11:17:05 +02:00
Simon Giraudot 62df1454e3 Add CGAL::possibly in boolean test 2017-05-16 13:44:37 +02:00
Simon Giraudot f303f14f4f Improve plane bases computation 2017-05-16 09:05:45 +02:00
Andreas Fabri 5f8bc52082 Add angle(Point_3, Point_3,Point_3,Vector_3) 2017-05-12 09:48:23 +02:00
Mael Rouxel-Labbé c79e2d4b36 Added Compute_power_product_2 to the 2D kernel predicates
doc + test included
2017-04-21 13:07:40 +02:00
Mael Rouxel-Labbé bb086ff739 Added power_side_of_bounded_power_circle_2 to the 2D kernel predicates
A partial implementation was deleted from the Alpha_shapes_2 package without
moving the functions to the kernel...
This implementation adds the missing overloads (4, 3, and 2 points)

Test + doc included
2017-04-21 11:37:27 +02:00
Mael Rouxel-Labbé 232c38cee1 Removed documentation of degenerate cases of power_side_of_oriented_* predicates
See Issue https://github.com/CGAL/cgal/issues/2067
2017-04-20 12:54:39 +02:00
Mael Rouxel-Labbé 58883e74cc Cleaning, same as 6c1c2fa (forgot some predicates, again) 2017-04-20 12:01:37 +02:00
Mael Rouxel-Labbé 6c1c2fa27b Cleaning, same as 1223f5f (forgot some predicates) 2017-04-19 14:38:00 +02:00
Mael Rouxel-Labbé 1223f5f5a0 Improved readability of weighted point-related functors (no real changes)
Fixed indentation, trailing whitespace, english, etc.
2017-04-19 11:40:58 +02:00
Mael Rouxel-Labbé dd2e7f3a0c Made compute_squared_smallest_orthogonal_circle_2() a kernel functor
and documented, tested, etc. it

Previously in Alpha_shape_2
2017-04-19 11:06:14 +02:00
Mael Rouxel-Labbé 7d16ce69ec Removed mentions of explicit conversions between Weighted points and Points
This is for another branch!
2017-04-11 15:49:29 +02:00
Mael Rouxel-Labbé 365cfd0566 Fixed predicate Power_side_of_oriented_power_sphere_3
The Homogeneous kernel doesn't know how to run that predicate
for 3 or 4 arguments so it must be defined in Kernel/function_objects until
those operators are added
2017-04-06 21:57:21 +02:00
Mael Rouxel-Labbé 322cdd83ab Fixed predicate Compare_power_distance_2 2017-04-06 18:18:37 +02:00
Mael Rouxel-Labbé 548d2bfb02 Cosmetic changes to Point_23 and Weighted_point_23 2017-04-06 12:38:18 +02:00
Mael Rouxel-Labbé aacf8db95f Fixed includes and typedefs in Weighted_point_23 2017-04-06 12:35:24 +02:00
Mael Rouxel-Labbé 2d2e675dac Fixed missing operators in Cartesian and homogeneous construct_weighted_point_23 2017-04-06 12:18:36 +02:00
Sébastien Loriot a89ccb10e7 remove non UTF-8 characters 2017-01-19 15:20:26 +01:00
Jane Tournois 2b66bb75e9 add Same_uncertainty_nb to return types 2016-11-03 14:55:39 +01:00
Jane Tournois 3c789fb378 rename power_side_of_power_sphereC3 to power_side_of_oriented_power_sphereC3 2016-11-03 14:55:39 +01:00
Jane Tournois f3a021a195 rename in_smallest_orthogonal_sphereC3 to power_side_of_bounded_power_sphereC3 2016-11-03 14:53:54 +01:00
Andreas Fabri ad9d2c369c Rename tests following Olivier's recommendations 2016-11-03 14:53:54 +01:00
Andreas Fabri d78735364b Fixes after review by Monique and Olivier 2016-11-03 14:53:15 +01:00
Andreas Fabri f488b9baf9 Changes after Laurent's review 2016-11-03 14:53:15 +01:00
Andreas Fabri 59cedfc7dd Fix Mesh_3 2016-11-03 13:08:31 +01:00
Andreas Fabri 44d0fa4d6f fix the 2D triangulations 2016-11-03 13:08:31 +01:00
Andreas Fabri ea50fb811d Cleanup. The 2D and 3D triangulation testsuite pass 2016-11-03 13:07:50 +01:00
Andreas Fabri c2ee0ae9a8 Use Quotient<RT> as weight in the H2 power_tests 2016-11-03 13:07:50 +01:00
Andreas Fabri 9dde08c414 WIP 2016-11-03 13:07:50 +01:00
Andreas Fabri 7d35bb0a8b First move the C2 and H2 pedicate and construction files operating on the RT 2016-11-03 13:07:50 +01:00
Andreas Fabri 9e94ee6178 Change the Power_test 2016-11-03 13:07:17 +01:00
Andreas Fabri c0f7b001c1 Rename C3 implementation of Compute_critical_squared_radius_3 2016-11-03 13:07:17 +01:00
Andreas Fabri 95027822f5 move predicates and constructions in Kernel packages 2016-11-03 13:07:17 +01:00
Andreas Fabri af6c2e185e remove Compute_point_3 2016-11-03 13:06:02 +01:00
Andreas Fabri 841ecfe8f4 Add an operator so that the T3 testsuite passes 2016-11-03 13:06:02 +01:00
Andreas Fabri cf1e513c83 cleanup 2016-11-03 13:04:43 +01:00
Andreas Fabri 6a8f77c5ff Added CGAL::Weighted_point_3<K> and the predicates and constructions of the Regular Traits to the kernel
- The Regular 3 testsuite passes
- only 3D
- not documented
2016-11-03 13:04:43 +01:00
Andreas Fabri 92a854093e Add Weighted_point_3 2016-11-03 13:04:43 +01:00
Laurent Rineau f2e7050364 Merge pull request #1428 from sloriot/AABB_tree-fix_Closest_point
Fix implementation of AABB_traits::Closest_point
2016-10-17 10:03:20 +02:00
Sébastien Loriot 5c02296eb9 move internal code 2016-10-11 11:31:19 +02:00
Andreas Fabri c12f285ee4 Dispatch the files in Kernel_23, Cartesian, Homogeneous 2016-09-22 08:38:53 +02:00
Sébastien Loriot c751ab4310 Add operators for segment and triangle types in Construct_projected_point_3
the original implementation comes from the AABB-tree package
2016-09-01 16:04:55 +02:00
Laurent Rineau 3e4fcd8d90 Fix compilation error with gmpxx
That is a follow-up to the following commit:

> commit 6b51b12ab5
> Author: Laurent Rineau <laurent.rineau@cgal.org>
> Date:   Fri Oct 4 16:42:13 2013 +0200
>
>     Fix the case when FT is mpq_class
>
>     If x and w are mpq_class objects, then the type of x/w is not mpq_class,
>     but only a proxy type that is implicitly convertible to
>     mpq_class. With the type deduction, CGAL::make_array(x/w, y/w,
>     z/w) will not create an array<mpq_class> but an array of the proxy type.
>
>     That creates the following compilation error, in a ternary operator:
>
>     - with clang:
>     include/CGAL/Cartesian/Vector_3.h:78:25: error: incompatible operand types ('array<__gmp_expr<[...], struct __gmp_binary_expr<class __gmp_expr<mpq_t, mpq_t>, class __gmp_expr<mpq_t, mpq_t>, struct __gmp_binary_divides>>, [...]>' and 'array<__gmp_expr<[...], __mpq_struct [1]>, [...]>')
>         : base( w != FT_(1) ? CGAL::make_array(x/w, y/w, z/w)
>                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     - with g++:
>     include/CGAL/Cartesian/Vector_3.h:78:25: error: no match for ternary 'operator?:' (operand types are 'bool', 'std::array<__gmp_expr<__mpq_struct [1], __gmp_binary_expr<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, __gmp_expr<__mpq_struct [1], __mpq_struct [1]>, __gmp_binary_divides> >, 3ul>', and 'std::array<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, 3ul>')
>          : base( w != FT_(1) ? CGAL::make_array(x/w, y/w, z/w)
>                              ^
>
>     The fix is to specify the template argument of CGAL::make_array.

The first patch in 2013 was on `Vector_3`, but `Vector_2` also suffers
from the issue.
2016-07-13 16:30:07 +02:00
Andreas Fabri dd249bb1f0 Call opposite() when changing the order of arguments 2016-04-16 21:02:38 +02:00
Andreas Fabri d00c04777e Remove ambiguity reported by GCC 2016-04-15 10:31:33 +02:00
Andreas Fabri 2613be3c1b Add specializations for Compare_distance_3 for points/segments 2016-04-13 12:35:00 +02:00
Simon Giraudot 1636ff238c Remove useless copy constructor 2016-01-07 14:02:26 +01:00
Simon Giraudot b5da6bb4f2 More efficient constructor for Rep 2015-12-17 08:32:33 +01:00
Simon Giraudot 85086088eb Add default constructor to internal pair struct 2015-12-16 15:29:50 +01:00
Simon Giraudot 78d6384255 Add constructors to internal pair struct 2015-12-16 15:26:32 +01:00
Simon Giraudot 2cbaad50da Bugfix: do not use std::pair in Line_3 to avoid is_convertible trouble with clang c++11 2015-12-16 12:25:56 +01:00
Andreas Fabri ab2ad75091 Qualifying with CGAL:: solves the problem, but is it the bestsolution? 2015-08-25 16:19:56 +02:00
Jane Tournois c19d370265 fix missing namespaces
fix compilation of advancing front for msvc 2015
2015-08-11 15:29:16 +02:00
Philipp Möller 5f99e2da4e Make FT typedef public
This way we no longer trigger a hard error in strict C++03.
This is only a stop-gap solution. The actual issue is that the internal
namespace is full with unrelated components and does not fulfill its
purposee as an SFINAE barrier anymore.

Fixes #129
2015-08-06 12:17:17 +02:00
Laurent Rineau f5343911a6 fix the link to the developers manual, in the code 2015-06-19 11:15:55 +02:00
Andreas Fabri b7f9849599 Replace CGAL::get() with CGAL::get_pointee_or_identity() and remove using get:: 2015-04-30 11:31:21 +02:00
Sébastien Loriot 0230e979e2 Merge branch 'CGAL-use_leda-GF-OLD' into CGAL-use_leda-GF
Conflicts:
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/construction_test_suite_generator.cpp
	Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_construction.cpp
	Documentation/doc/Installation.txt
	Kernel_23/include/CGAL/Exact_predicates_exact_constructions_kernel.h
2014-06-18 22:50:06 +02:00
Laurent Rineau 6500bd907f Add Angle_3(Vector_3, Vector_3)
...by similarity with Angle_2.
2014-05-21 12:18:49 +02:00
Laurent Rineau 191b01b13b Add Angle_3()(Point_3, Point_3, Point_3, Point_3) 2014-05-21 11:04:59 +02:00
Laurent Rineau 599d9bdf3d Modify a comment, to make it more useful 2014-03-24 17:58:38 +01:00
Laurent Rineau 51dbec0387 Merge remote-tracking branch 'origin/Circular_kernel_3-Use_FMP-GF'
- In tests of CK_3:
  - use Gmpq instead of MP_float
  - replace usages of Quotient<Precise_integer> by Precise_rational
- In <CGAL/Cartesian/Vector_3.h>, fix a compilation error is FT is the
  GMPXX type `mpq_class`.

Tested in CGAL-4.3-Ic-194
2013-10-09 14:22:08 +02:00
Laurent Rineau 6b51b12ab5 Fix the case when FT is mpq_class
If x and w are mpq_class objects, then the type of x/w is not mpq_class,
but only a proxy type that is implicitly convertible to
mpq_class. With the type deduction, CGAL::make_array(x/w, y/w,
z/w) will not create an array<mpq_class> but an array of the proxy type.

That creates the following compilation error, in a ternary operator:

- with clang:
include/CGAL/Cartesian/Vector_3.h:78:25: error: incompatible operand types ('array<__gmp_expr<[...], struct __gmp_binary_expr<class __gmp_expr<mpq_t, mpq_t>, class __gmp_expr<mpq_t, mpq_t>, struct __gmp_binary_divides>>, [...]>' and 'array<__gmp_expr<[...], __mpq_struct [1]>, [...]>')
    : base( w != FT_(1) ? CGAL::make_array(x/w, y/w, z/w)
                        ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- with g++:
include/CGAL/Cartesian/Vector_3.h:78:25: error: no match for ternary 'operator?:' (operand types are 'bool', 'std::array<__gmp_expr<__mpq_struct [1], __gmp_binary_expr<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, __gmp_expr<__mpq_struct [1], __mpq_struct [1]>, __gmp_binary_divides> >, 3ul>', and 'std::array<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, 3ul>')
     : base( w != FT_(1) ? CGAL::make_array(x/w, y/w, z/w)
                         ^

The fix is to specify the template argument of CGAL::make_array.
2013-10-04 16:42:13 +02:00
Sébastien Loriot 980edb4ced rep() cannot be used outside of a predicates
This was preventing convertion from EPECK to any other kernel
2013-09-26 14:41:43 +02:00
Andreas Fabri 18dc806094 qualify compare with CGAL:: to avoid Koenig lookup 2013-03-19 08:31:32 +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 26a7e70785 New license.txt files (eol changes)
The new version 2.13.0 of licensecheck has changed the spaces at eol.
2013-02-19 16:46:39 +01:00
Sébastien Loriot 7b266dc5ef In the implementation details of PlaneC3, Point_3 is not necessarily PointC3
this is true in the case of a user defined Kernel with its own point type
2013-02-08 09:27:02 +01:00
Sébastien Loriot 82b2ebc865 apply the cpp0x namespace renaming in all files 2012-12-19 11:33:17 +01:00
Philipp Möller 797a146560 Missing const-ness of iterator 2012-12-10 17:07:03 +01:00
Philipp Möller 84d83bf996 Use the improved Type_mapper to implement parts of Cartesian_converter 2012-12-07 18:00:46 +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
Laurent Rineau 83f909ec77 Fix missing #include 2012-10-09 09:09:23 +00:00
Laurent Rineau 7bc300794d Fix last errors in headers of CGAL foundations
All were missing #include.
2012-10-08 09:03:50 +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
Philipp Möller 542f5d9c51 Merged ^/branches/next here 2012-04-16 08:53:21 +00:00
Laurent Rineau a37c74d534 Add license files, per package 2012-01-16 15:54:22 +00:00
Laurent Rineau 5b5dd33848 merge changes from next 2012-01-09 12:33:39 +00:00
Philipp Möller b8a96e9114 Merged next to this branch. 2011-12-06 17:11:01 +00:00
Laurent Rineau befa7c8e08 Add missing #include to <CGAL/Cartesian/Plane_3.h>.
The added #include is not really useful but to help a reader of the code to
understand where do functions come from.
2011-12-06 11:49:21 +00:00
Philipp Möller 0e0a200646 * Using result_of instead of Qualified_result_of
* limited refactoring in the lazy kernel
* still bugs in circular_3
* still specialization problem with iso_rectangle
2011-11-23 17:52:38 +00:00
Philipp Möller 94affd589d Moved the Intersection_result concept into the functors and adapted code in the lazy kernel to that change. 2011-11-15 15:40:22 +00:00
Philipp Möller 9051768cea Introduced Intersection_results as a Kernel concept for use in public APIs in favor over Intersection_traits. 2011-11-15 13:41:14 +00:00
Sébastien Loriot 91a5327fa8 change LGPLv2 -> LGPLv3 2011-10-10 13:48:25 +00:00
Sébastien Loriot 554f62d411 remove executable property from copyright files 2011-10-03 08:18:16 +00:00
Andreas Fabri d10a333947 Add a file with the copyright holder(s) to the package_info 2011-09-29 20:45:16 +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 cf39a595b3 Modified cartesian converter to support optionals and variants 2011-08-25 10:11:55 +00:00
Sébastien Loriot 0c092b2da3 static_cast<const XXX &> to avoid copy 2011-06-29 07:02:20 +00:00
Sébastien Loriot cfd2c9fa94 Andreas' fix for handling vectors of points in CGAL::Object
when intersecting with Lazy_kernel. Add a testfile.
2011-06-21 13:36:00 +00:00
Marc Glisse 99cb4322df Let Construct_point_* call the constructor of Point_* as an intermediate step before Construct_point_*(Return_base_tag...) to have less copying. 2011-04-14 09:48:15 +00:00