Commit Graph

414 Commits

Author SHA1 Message Date
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
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 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 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
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 531884edfb Add a fwd-declaration of orientationC2 (for clang) 2010-09-22 16:05:43 +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
Sylvain Pion 927b432b39 typo : mecanism -> mechanism. 2009-08-10 15:57:03 +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
Laurent Rineau 16ab0cd242 Add a *useful* comment. 2009-02-02 13:09:25 +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 7236659148 o->p 2008-11-12 11:51:47 +00:00
Pedro Machado Manhaes de Castro 4caabbbed9 back 2008-11-12 11:40:52 +00:00
Pedro Machado Manhaes de Castro d806a089ee small fix a.rep().orientation() -> a.orientation() 2008-11-10 12:05:49 +00:00
Pedro Machado Manhaes de Castro a65aceddf2 radical line as well 2008-10-20 14:44:37 +00:00
Sylvain Pion 4aa1cb057a Remove my email adress from header files. 2008-10-11 20:21:08 +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 c1389c006d Add a couple of handy functions:
bool are_sorted(const T & a, const T & b, const T & c)
  bool are_strictly_sorted(const T & a, const T & b, const T & c)
  bool are_ordered(const T & a, const T & b, const T & c)
  bool are_strictly_ordered(const T & a, const T & b, const T & c)
2008-08-12 12:43:20 +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 3897f61b55 fixing the converter (and the issues with Kernel_23) 2008-06-05 08:48:58 +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 2428cc644f fix place 2008-06-04 08:55:44 +00:00
Pedro Machado Manhaes de Castro e38ddac49c radical_plane on the right file 2008-06-04 08:47:47 +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
Andreas Fabri 029d9416cc Added Compare_squared_radius_3 2008-05-29 09:30:10 +00:00
Sylvain Pion 55d538b335 "Ambient" is not spelled "Ambiant" in English... 2008-04-17 10:13:31 +00:00
Sylvain Pion bbd100121b Add barycenter computation. 2008-04-15 15:13:17 +00:00
Sylvain Pion 2389cdcc1e Dimension detecting stuff rewrite.
There is now Ambiant_dimension and Feature_dimension.
The handling of the dynamic dimension case is now done by having
the di,ension tag as the first thing provided, with the integral
constant value available only when it makes sense (INT_MAX no longer needed).
2008-04-13 12:38:48 +00:00
Sylvain Pion 02e543a294 Add Dimension<T, K> whose nested "value" is the dimension of the ambiant
space.  A special constant CGAL::Dynamic_dimension (equal to INT_MAX)
indicates the case where the dimension is only known at run time.
2008-04-11 21:03:22 +00:00
Sylvain Pion 7ace759d8e Remove the reference-counting inside Point_2 and Point_3, as they now store
only a Vector_2 and Vector_3 which is responsible for the reference-counting.
2008-04-10 14:41:35 +00:00
Sylvain Pion fbd6c53000 Make Point_2/Point_3 store a Vector_2/Vector_3.
This factorizes code and goes in the direction of having
a linear algebra layer.
2008-04-10 14:02:38 +00:00
Sylvain Pion 11bbf3e2de Vector_2 and Vector_3 now also provide a Cartesian_const_iterator. 2008-04-09 17:58:57 +00:00
Sylvain Pion ccff0db36d Use new style with make_array(), more compact and efficient 2008-04-09 14:25:17 +00:00
Sylvain Pion 1d8779b171 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 !
2008-04-09 13:35:34 +00:00
Sylvain Pion 643ea487a0 Remove casts to Comparison_result.
They are useless since we merged the various enum types.
2008-04-09 12:46:22 +00:00
Sylvain Pion b0f2c77fdc Remove casts to Oriented_side.
They are useless since we merged the various enum types.
2008-04-09 12:35:10 +00:00
Sylvain Pion b740e90de0 Rename the following functions:
sign_of_determinant2x2
  sign_of_determinant3x3
  sign_of_determinant4x4
  sign_of_determinant5x5
  sign_of_determinant6x6
to:
  sign_of_determinant

So that we have less dimension-dependent namings, at least internally...
2008-04-09 12:20:25 +00:00
Sylvain Pion cab843595b Replace {Two|Three|Four}tuple<FT> or <RT> by boost::array.
It makes more code parameterized by the dimension as template argument.
It provides iterators and a few basic functions already such as operator==...
I added CGALi::make_array() to easily and efficiently construct them.
2008-04-09 11:44:28 +00:00
Sylvain Pion 95e3f12c58 Add operator* and comparison operators for Uncertain<>.
Update one predicate that could not cope with that change
(due to operator?: not being overloadable).
2008-04-02 08:52:08 +00:00
Sylvain Pion edab7e2433 Remove some useless enum_cast<> (since some enum types have been merged). 2008-03-20 16:15:04 +00:00
Sylvain Pion 8ad227b79f Remove most probably obsolete SunPRO workaround. 2008-01-20 22:34:19 +00:00
Sylvain Pion 7f6f380b11 Final step at the removal of CGAL_REP_CLASS_DEFINED. 2008-01-03 19:26:12 +00:00
Andreas Meyer fdeedcf8b0 some low level code cleanup. renamed
* CGAL_error to CGAL_error_msg
* introduced a macro CGAL_error()
* added some words about CGAL_error to the developers manual
* renamed most of assert(x) into CGAL_assertion(x)
* renamed exit(x) with x != 0 , CGAL_assertion(false) and assert(false) into CGAL_error
* CORE left untouched, OpenNL changed
2007-11-07 16:51:18 +00:00
Sylvain Pion a3def1c3eb Remove obsolete config flag CGAL_CFG_USING_BASE_MEMBER_BUG. 2007-08-09 09:55:09 +00:00
Sylvain Pion 448f38f407 Move 3D .bbox() to the functors to make Lazy_kernel pass, and enhance the test-suite to test .bbox() 2006-12-27 23:25:47 +00:00
Sylvain Pion fbe285ca94 New predicates :
compare_squared_distance(Point_[23], Point_[23], FT), with
  CompareSquaredDistance_[23] functors.
2006-10-24 05:24:31 +00:00
Sylvain Pion ed36e763c7 Second part of Return_base_tag changes. 2006-08-16 16:38:49 +00:00
Sylvain Pion 2eb12d7441 - First part of introduction of Return_base_tag workaround for lack
of "forwarding constructors".
  Quoting some comment in the code:
  "
    This is a simple tag which is used as additional (first) argument in
    some kernel functors, to tell them to return the base (rep) class,
    instead of the main type (e.g. Kernel_base::Point_2 instead
    of Kernel::Point_2).  This is a minor optimization which prevents
    useless copies of the "reps".

    Those functors are only those used in the constructors of the kernel
    types like Point_2, so it's limited.

    The real solution will be to use "forwarding constructors", when they
    will be available in C++.
    In the mean time, this should be a mostly/hopefully internal hack.
  "
2006-08-16 14:56:11 +00:00
Andreas Fabri b927eb413d fixed min/max problem 2006-08-16 14:24:44 +00:00
Sylvain Pion daee2152ec Make the return type of the function operator() of the
Construct_point_2 functors be the Rep class (the base).
This avoids conversions Rep -> Point_2 -> Rep, hence
useless copies of objects.
The result_type of the functors does not change
(we therefore return a type which is only convertible
to result_type, but hopefully this is fine, and what standard
requirements on functors are anyway).
A real fix for this would require the language addition of
"forwarding constructors".
2006-08-11 11:48:16 +00:00
Sylvain Pion 23104c32ee Ray_2.is_degenerate() was buggy. 2006-08-11 09:01:04 +00:00
Sylvain Pion 7f0f39cd1a Use constant<FT,int> to compute .hw() and make it return by const-ref. 2006-08-08 15:38:23 +00:00
Sylvain Pion 08da24539d Remove local functors in functors, as they bloat memory,
and we have no use for this so far, and if we get some
use for this at some point, the ordering between functors
will need to be specified anyway.
2006-08-07 17:44:02 +00:00
Sylvain Pion 078c86aec6 - Use CGAL_Kernel_obj to iterate over objects
- Fixes (?) for vector<Object> handling.
2006-08-07 17:43:04 +00:00
Sylvain Pion c50783f08f Bad luck: "equi-distant" -> "equidistant" (thanks Andreas). 2006-08-07 16:11:40 +00:00
Sylvain Pion 38853d1b10 - Optimize equi_distant_line() by merging the calls to
circumcenter() and cross_product().
- Add ctors to Point_[23] and Vector_[23] that take
  int, double, and FT coordinates, instead of only RT.
2006-08-07 15:57:40 +00:00
Sylvain Pion 99394f2bed Prefer .to_vector() to .direction() when converting Line_3 as this is what is stored 2006-08-07 12:41:26 +00:00
Sylvain Pion f9c1159ed4 inline calls to circumcenterC3() in the functors to avoid
dummy default ctors.
2006-08-07 11:54:41 +00:00
Sylvain Pion cc7624fa5c Last bunch of I/O changes to alloz Lazy_kernel to pass the kernel-I/O test-suite. 2006-08-06 16:37:35 +00:00
Sylvain Pion 5d3ca03180 You believed this could be something else ? : Move Plane_3 I/O to user class level 2006-08-06 16:06:39 +00:00
Sylvain Pion 812a7c8cbd You guessed right : Move Tetrahedron_3 I/O to user class level 2006-08-06 15:59:24 +00:00
Sylvain Pion 02414e55f0 Guess what : Move Iso_cuboid_3 I/O to user class level 2006-08-06 15:55:58 +00:00
Sylvain Pion e6f5182e7a Move Triangle_3 I/O to user class level 2006-08-06 15:50:48 +00:00
Sylvain Pion 38c91de538 Move Ray_3 I/O to user class level 2006-08-06 15:45:55 +00:00
Sylvain Pion cce78c4286 Move Line_3 I/O to user class level 2006-08-06 15:40:06 +00:00
Sylvain Pion ac192e33ec Move Segment_3 I/O to user class level 2006-08-06 15:35:57 +00:00
Sylvain Pion 3634f311e2 Move Direction_3 I/O to user class level 2006-08-06 15:29:08 +00:00
Sylvain Pion ab88a8e595 Move Vector_3 I/O to user class level 2006-08-06 15:18:37 +00:00
Sylvain Pion ef0f5d103f Move Triangle_2 I/O to user class level 2006-08-05 23:31:09 +00:00
Sylvain Pion 45e65df64c Move Ray_2 I/O to user class level 2006-08-05 23:18:30 +00:00
Sylvain Pion aa9fb702a0 Move Segment_2 I/O to user class level 2006-08-05 23:04:36 +00:00
Sylvain Pion eb4be2820d Move Direction_2 I/O to user class level 2006-08-05 22:55:06 +00:00
Sylvain Pion 0e7340c184 Move Vector_2 I/O to user class level 2006-08-05 22:34:47 +00:00
Sylvain Pion 48390a019a Move Sphere_3 I/O to user class level. 2006-08-05 22:17:02 +00:00
Sylvain Pion c7f1f68b40 Move Point_3 I/O to user class level. 2006-08-04 12:08:14 +00:00
Sylvain Pion f4be5b9920 Add overloads of circumcenter() taking only 2 Point_2 (or Point_3),
that is, the same thing as midpoint(), but with a uniform notation.
Same thing for the corresponding functor.
2006-08-03 17:07:39 +00:00
Sylvain Pion 9424d0e9d8 Remove some assertions, as they must not pop-up, since they are
used by Cartesian_converter/Homogeneous_converter, where we
absolutely must not throw.

TODO : find a way to keep the assertion while having the
       converters still work.  (should types come with their
       own conversions, like they all have .bbox() ?)
2006-08-03 11:29:12 +00:00
Sylvain Pion ea748e53d4 Add new constructor to Iso_rectangle_2(Point_2, Point_2, int).
The additional dummy "int" specifies that the 2 points are
the lower-left and upper-right corner.  This is more efficient
when one knows they are already in this configuration.

Same thing for Iso_cuboid_3, and the functors.

Use them in Cartesian_converter and Homogeneous_converter.
2006-08-03 09:40:12 +00:00
Sylvain Pion 89d1821b6f Remove blanks at end of lines 2006-08-03 08:39:26 +00:00
Sylvain Pion 6ee4e656e7 Add determinant(Vector_2, Vector_2)
Add determinant(Vector_3, Vector_3, Vector_3)
And corresponding functor.
2006-08-02 18:57:40 +00:00
Sylvain Pion b7614eee4e More code move towards user classes, and improve 3D support for LazyK. 2006-08-02 11:23:56 +00:00
Sylvain Pion a63e4909f9 Move some Vector_3 functions to user class level. 2006-08-02 08:32:23 +00:00
Sylvain Pion 38956c9b10 Move yet another bunch of code to user classes... 2006-08-01 16:15:07 +00:00
Sylvain Pion ca7ca6c0bc More code move to user classes. 2006-08-01 15:39:37 +00:00
Sylvain Pion 4408fa1c2a More code move to user classes. 2006-08-01 14:10:09 +00:00
Sylvain Pion a04f166f1f - Move more code to the "user classes". 2006-08-01 13:17:03 +00:00
Sylvain Pion cbd6fc9417 Move .transform() in the 3D user classes.
Move some functions in the 3D user classes instead of the internal
 rep classes.
2006-08-01 12:09:47 +00:00
Sylvain Pion 04b834db9a Move .transform() functions to the "user classes" level. 2006-08-01 09:08:28 +00:00
Sylvain Pion ee5a821e91 - Remove old useles "FIXME : construction" comments.
- Replace calls to Direction_2.to_vector().x() by Direction_2.dx().
2006-08-01 08:18:19 +00:00
Sylvain Pion ead2e93fdb - Add missing functor for compare_yx(). 2006-07-31 16:22:08 +00:00
Sylvain Pion e208720200 Comment out compare_deltax_deltay() predicate, as it is undocumented,
unused in CGAL, and does not have corresponding functor.
2006-07-31 15:52:21 +00:00
Sylvain Pion 29ae445a5b Remove obsolete /*CGAL_NO_FILTER*/ markers (they were used by Filtered_exact). 2006-07-30 13:02:57 +00:00
Sylvain Pion 72e208d8dd <CGAL/Interval_arithmetic.h> is deprecated -> <CGAL/Interval_nt.h> 2006-07-12 13:14:19 +00:00
Sylvain Pion 45bfd07a83 Remove some #include <CGAL/Arithmetic_filter/...> (Filtered_exact stuff). 2006-07-12 12:03:52 +00:00
Efi Fogel 41b290310d renamed Bool to Bool_type to avoid a conflict between a macro of the same name defined in Xlib.h 2006-06-13 14:35:19 +00:00
Andreas Fabri 26a8725c3b If its a class members must become public (thanks Sylvain) 2006-04-21 12:06:39 +00:00
Andreas Fabri c8d4775036 Its a class not a struct 2006-04-21 11:36:42 +00:00
Sylvain Pion 290a24c95e Sphere_3::orthogonal_transform fixes:
- was only declared in Homogeneous
- was buggy in Cartesian
- was not tested
2006-04-03 13:16:31 +00:00
Andreas Fabri ea43a393c4 Changed Construct_point_2::operator()(Line) 2006-03-29 07:57:25 +00:00
Sylvain Pion c599c7600a - Add missing #include <CGAL/Handle_for.h> . 2006-03-06 13:08:09 +00:00
Marc Glisse 6d0b980907 Workaround for sunpro: do not overload Qualified_result_of for this
compiler.
2006-02-28 15:11:51 +00:00
Laurent Saboret db6a8f948c Change CVS keywords to SVN style 2006-02-16 14:30:13 +00:00
Laurent Saboret 1aad55d4cb Change CVS keywords to SVN style 2006-02-14 10:08:15 +00:00
Laurent Saboret b52b8ef93f Move packages to trunk root 2006-02-14 08:58:13 +00:00