Commit Graph

335 Commits

Author SHA1 Message Date
Marc Glisse 7fb39a2026 Prefer FT == 0 to FT == ZERO.
No point using an enum, and it hits https://github.com/boostorg/multiprecision/issues/36
2018-10-15 15:42:56 +02:00
Maxime Gimeno 23d701c1a5 Add an equality test to Aff_transfo 2 and 3. 2018-10-12 16:34:19 +02:00
Andreas Fabri b2a8e3122d Use certainly() as recommended by Laurent 2018-10-09 14:09:05 +02:00
Maxime Gimeno 319893bdb1 Add Filtered_predicates and manage all Aff_transf 2018-10-09 10:24:32 +02:00
Andreas Fabri 2eab1a0f55 Remove debug output 2018-10-09 09:45:13 +02:00
Andreas Fabri bdb55d57e0 Fix the #else as it was wrong and blend it with the a/b==0 cases of the #if 2018-10-09 09:45:13 +02:00
Laurent Rineau cb14375778
Merge branch 'master' into Property_map-Point_kernel_converter_map-GF 2018-05-29 10:58:28 +02:00
Maxime Gimeno a7721389b2 Forward declare the Cartesian_converter to avoid messing with the dependencies tree. 2018-04-27 09:59:25 +02:00
Maxime Gimeno bcfb7afead Add an operator for a Ray_3 to ConstructProjectedpoint_3 2018-04-25 15:32:36 +02:00
Laurent Rineau cd6fe20bd4 Merge branch 'releases/CGAL-4.11-branch' 2018-03-26 11:03:37 +02:00
Laurent Rineau c9a7d52582 Merge pull request #2912 from afabri/CGAL-more_fallthrough-GF
More fixes for GNU 8.0.1: fallthrough warnings  and constness
2018-03-26 10:56:07 +02:00
Sébastien Loriot a443f85a52 fix the determinism of the computation of point and base vectors
possibly will return true in case the evaluation lead to true or false
as possible values. If the exact value is computed or interval refined,
false could be the true value which has a consequence will give a
different result for point or base vector.
2018-03-16 14:33:51 +01:00
Sébastien Loriot 01af331c72 use https for all links to www.cgal.org and doc.cgal.org 2018-03-14 15:59:38 +01:00
Andreas Fabri d26517bd8f more default: 2018-03-08 14:11:02 +00:00
Laurent Rineau 0a74393dcf Commit all new dependencies files 2018-03-06 18:44:48 +01:00
Laurent Rineau 503cfd4c70 Merge branch 'releases/CGAL-4.11-branch' 2018-03-02 16:34:10 +01:00
Laurent Rineau 394363f06e Merge pull request #2873 from sgiraudot/Kernel-Fix_pair_bug_in_circle_3-GF
Bugfix: pair not compatible with Circle_3 (clang)
2018-03-02 16:33:15 +01:00
Laurent Rineau 1b88e8154a Merge pull request #2873 from sgiraudot/Kernel-Fix_pair_bug_in_circle_3-GF
Bugfix: pair not compatible with Circle_3 (clang)
2018-03-02 16:29:54 +01:00
Simon Giraudot e9505dc840 Bugfix: pair not compatible with Circle_3 (clang) 2018-02-26 15:12:53 +01:00
Maxime Gimeno 688b5dd06e Move dependencies creation to package_info and add dependencies to git 2018-02-02 12:08:05 +01:00
Maxime Gimeno 8bde832931 Fix METIS headers in BGL 2018-02-02 12:08:05 +01:00
Maxime Gimeno a676d5a60e Try to fix errors in classification checks 2018-02-02 12:08:05 +01:00
Maxime Gimeno acd0a72edf Modify travis script to test dependencies 2018-02-02 12:08:05 +01:00
Maxime Gimeno ae36b452bc Add dependencies of all packages 2018-02-02 12:08:05 +01:00
Laurent Rineau e72444ab60
Merge pull request #2709 from lrineau/CGAL-fix_merge_of_PR_2478-GF
Fix the merge of PR #2478 into releases/CGAL-4.11-branch
2018-01-22 10:06:21 +01:00
Laurent Rineau 267af5d3c3 Merge pull request #2735 from sgiraudot/Kernel-Fix_plane_point-GF
Cartesian kernel: improve plane point() computation
2018-01-19 15:22:31 +01:00
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