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
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
Andreas Fabri
18dc806094
qualify compare with CGAL:: to avoid Koenig lookup
2013-03-19 08:31:32 +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
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
542f5d9c51
Merged ^/branches/next here
2012-04-16 08:53:21 +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
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
Sébastien Loriot
0c092b2da3
static_cast<const XXX &> to avoid copy
2011-06-29 07:02:20 +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
Sébastien Loriot
e5a96255ba
*remove warnings.
...
In particular remove UNTESTED_XXXXXXXXXXX unused variable that possibly hide true warnings.
In those cases, the string printed while executed now starts with "NOTE: ".
*CGAL internal code no longer rely on depecrated features
2011-02-28 15:28:28 +00:00
Sébastien Loriot
78a8e36522
small features to add additional operator() to Angle_2.
...
This is a merge from the branch /branches/experimental-packages/More_robust_Triangulation_2-branch
2011-01-07 10:45:13 +00:00
Sébastien Loriot
ace9c87934
revert dirty commit 60628
2011-01-07 10:37:54 +00:00
Sébastien Loriot
99dda59784
add operator() to Angle_2 functor (code,global function,doc,test).
...
That was submitted as small feature.
2011-01-07 10:04:06 +00:00
Laurent Rineau
212ea5a473
Merge in trunk the code of https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Kernel::Has_filtered_predicates_tag
2010-12-16 16:09:23 +00:00
Marc Glisse
32b87fbc17
uglify private typedef for clang
2010-11-10 21:17:45 +00:00
Marc Glisse
6501cf181a
Rename private typedef for clang.
2010-10-28 06:56:55 +00:00
Marc Glisse
601d187c06
Rename private typedef for clang
2010-10-27 09:27:32 +00:00
Laurent Rineau
5b22e449e0
Kernel::Compare_distance_[23] with three objects, similar to
...
compare_distance_to_point, but with any object types
2010-10-11 11:10:32 +00:00
Laurent Rineau
351c3233be
- Deprecate operator()(T1, T2, T3, T4) of Kernel::CompareSquaredDistance_[23]
...
and move it to Kernel::CompareDistance_[23].
- Add CGAL::compare_distance(T1, T2, T3, T4).
(Test suite OK.)
2010-08-03 14:22:25 +00:00
Laurent Rineau
a97730f073
Move Compare_squared_distance_[23] from Cartesian and Homogeneous to
...
Kernel_23: their implementation were identical.
2010-06-30 10:04:49 +00:00
Laurent Rineau
7106e69e7a
Fix keyword $URL$ and $Id$: "$URL: " and "$Id: " are not correct Subversion keywords
2010-06-29 12:47:18 +00:00
Andreas Fabri
0d46b11509
For VC-10 we have to change FT* to cpp0x<>::const_iterator
2010-06-14 07:11:59 +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
Laurent Rineau
546cd0a38b
Missing #include
2010-05-21 17:12:50 +00:00
Laurent Rineau
67928706cf
C++ conformance: calls to member templates of dependent names must be
...
qualified with the "template" keyword.
Example:
template <typenam T>
void f(T foobar) {
foobar.get<0>().foobar(); // error
}
must be written:
foobar.template get<0>().foobar();
2010-05-16 16:50:24 +00:00
Andreas Fabri
3af7501d6d
Another 'using' for strict ansi
2010-05-06 16:09:23 +00:00
Sébastien Loriot
b18ab2c555
add missing using detected by intel strict-ansi
2010-04-27 06:43:43 +00:00
Sylvain Pion
d2a078803b
Add a new Boolean constant in the kernel, Has_filtered_predicates.
2009-10-16 12:07:18 +00:00
Sébastien Loriot
48909a6a24
add operator() for one point to Compare_squared_radius
2009-10-13 08:35:40 +00:00
Andreas Fabri
c13fede7aa
sorry about breaking the testsuite
2009-08-25 07:14:39 +00:00
Sylvain Pion
8573fe26ce
Rename CGALi to internal.
2009-08-24 17:10:04 +00:00
Andreas Fabri
18084a7fbd
Add operator to Compare_squared_distance_3
2009-08-24 14:59:57 +00:00
Laurent Rineau
d12cfb478c
Fix indentation that was altered by the following revision:
...
| ------------------------------------------------------------------------
| r42811 | spion | 2008-04-09 15:35:34 +0200 (Wed, 09 Apr 2008) | 11 lines
|
| Rename the following functions:
| det2x2_by_formula
| det3x3_by_formula
| det4x4_by_formula
| det5x5_by_formula
| det6x6_by_formula
| to:
| determinant
|
| How cute... a name independent of the dimension, and even readable !
|
| ------------------------------------------------------------------------
2009-08-20 10:30:44 +00:00
Sébastien Loriot
ee8f225830
object_cast -> assign : remove warning uninitialized variables (approved by RM)
2009-07-09 08:38:56 +00:00
Sébastien Loriot
5b876a34f5
Remove a warning conversion from float to sign (approved by RM)
2009-07-09 08:17:11 +00:00
Andreas Fabri
3b2dedad68
Add squared radius for a point to make kernels model of the alpha shape traits class
2009-07-06 11:36:33 +00:00
Sébastien Loriot
0e76f6c8b4
correct has_on pb
2009-06-26 14:15:56 +00:00
Sébastien Loriot
88f5116094
remove duplicated operator() in Has_on_3
2009-06-25 05:54:18 +00:00
Sébastien Loriot
1d383069db
add documented has_on for point and circle on a sphere
2009-06-24 16:26:51 +00:00
Sylvain Pion
3e3725bccd
Paranoia is always good : make the constructors of the internal *C[23] classes also explicit.
2009-05-26 07:54:52 +00:00
Sylvain Pion
979e397b26
The compiler is getting lost with all those solve() functions,
...
so qualify this one by CGAL::.
2009-05-25 08:53:20 +00:00
Sylvain Pion
f529155cef
Missing #include in last change.
2009-05-20 10:43:29 +00:00
Sylvain Pion
685acc37d5
Move CGAL::solve to CGAL::Cartesian_internal::solver to protect bad lookups (AK_for_sphere is confused).
2009-05-20 09:58:52 +00:00
Sylvain Pion
f0ed774e37
Move CGAL::array to namespace CGAL::cpp0x, like tuple.
2009-04-30 14:03:52 +00:00
Andreas Fabri
89b1fa46fa
AND Uncertain with & in order to prevent assertion being triggered by interval arithmetic
2008-11-21 08:01:45 +00:00
Pedro Machado Manhaes de Castro
a65aceddf2
radical line as well
2008-10-20 14:44:37 +00:00
Pedro Machado Manhaes de Castro
8960a3dd58
Some forgotten operators on functors for Circle_3
2008-10-02 16:31:35 +00:00
Sylvain Pion
4c79d1d5cf
Rename Bool_type to Boolean.
2008-08-26 13:40:26 +00:00
Sylvain Pion
53f5c9679b
Add a using directive "using std::array" in namespace CGAL to import either:
...
- C++0x's std:array from <array>
- TR1's std::tr1::array from <tr1/array>
- boost::array from <boost/array.hpp>
Motivation : GCC's std::array is faster than boost::array.
Move CGALi:make_array to namespace CGAL.
Document CGAL::array.
2008-08-26 13:08:16 +00:00
Sylvain Pion
5c5f891fa5
Make some use of CGAL_AND.
2008-08-12 11:55:24 +00:00
Sylvain Pion
869f4ceae1
Use & instead of && (in assertions, using && does not make much sense).
2008-08-12 11:54:48 +00:00
Sylvain Pion
69e7b4f7c6
Remove buggy typedef for Orientation.
2008-07-27 18:58:04 +00:00
Sylvain Pion
623a9d5319
Add missing template keyword
2008-07-27 11:51:23 +00:00
Sylvain Pion
af2bb2adaf
Remove now useless <CGAL/utility.h> includes.
2008-07-25 15:06:44 +00:00
Sylvain Pion
0e682daf9a
Replace CGAL::Triple by boost::tuple
2008-07-25 14:40:53 +00:00
Sylvain Pion
b02bc7921b
Use boost::array instead of Twotuple
2008-07-25 11:19:03 +00:00
Sylvain Pion
edaa883845
Use boost::array instead of Threetuple
2008-07-25 11:01:57 +00:00
Sylvain Pion
a6092e4dc5
Use boost::array instead of Fourtuple
2008-07-25 10:53:56 +00:00
Sylvain Pion
79864c0c8e
Remove Arity_tag.
2008-07-22 12:29:01 +00:00
Pedro Machado Manhaes de Castro
e8663963f2
Constructing a Circle_3 passing through three points p, q, r
2008-07-17 14:08:50 +00:00
Sylvain Pion
6ee113f820
Document the kernel typedefs specifying the return types of the predicates:
...
Bool_type, Sign, Comparison_result, Orientation, Oriented_side, Bounded_side and Angle.
2008-07-16 13:59: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
cdb365613b
Fixing Lazy for Circle_3
2008-06-26 14:25:54 +00:00
Sylvain Pion
26ec89566c
Progress towards Circle_3 and Lazy_kernel.
2008-06-19 15:38:07 +00:00
Sylvain Pion
3c37473d47
Qualify get() with CGAL:: and add missing header <CGAL/Handle_for.h>.
2008-06-17 08:13:11 +00:00
Pedro Machado Manhaes de Castro
11f84afb3f
Compatibility with Homogeneous
2008-06-04 10:17:58 +00:00
Pedro Machado Manhaes de Castro
b2c09cd21c
fix place
2008-06-04 09:03:30 +00:00
Pedro Machado Manhaes de Castro
1da7b344f3
Fix place (radical_plane)
2008-06-04 08:56:14 +00:00
Pedro Machado Manhaes de Castro
19d5ec8173
to -> constructions/
2008-06-04 08:46:51 +00:00
Pedro Machado Manhaes de Castro
a6724b4e74
radical_plane, thanks Sylvain
2008-06-04 08:39:22 +00:00
Pedro Machado Manhaes de Castro
9b698c6039
fixing the 03/06/2008 red mosaic
2008-06-04 07:51:25 +00:00
Pedro Machado Manhaes de Castro
f5ffaf5f5c
adding Circle_3 to the Kernel
2008-06-03 12:20:12 +00:00
Pedro Machado Manhaes de Castro
fc45f43179
Adding Circle_3 object to the Kernel.
2008-06-03 12:17:16 +00:00