Commit Graph

177 Commits

Author SHA1 Message Date
Pedro Machado Manhaes de Castro 60e14a495e Changed the typedef for Sphere_3 of Circle_3 from private to public temporarily so the stuffs of Sebastien (in Circular_kernel_3, Circular_arc_3 with reference sphere) keep working. 2008-06-09 16:16:44 +00:00
Pedro Machado Manhaes de Castro 95699dc3a6 Fixing Dimension Tags for Circle_3 2008-06-05 08:40:13 +00:00
Pedro Machado Manhaes de Castro 0061696f17 missin Circle_3 itself 2008-06-04 16:32:43 +00:00
Pedro Machado Manhaes de Castro 69c2b4d186 add radical_plane 2008-06-04 09:04:45 +00:00
Pedro Machado Manhaes de Castro 5cf2eb63cd fixing the 03/06/2008 red mosaic 2008-06-04 07:52:01 +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 b997c33952 Added compare_squared_radius, its functor, doc, testsuite 2008-05-28 14:25:42 +00:00
Sylvain Pion 74db076d75 Remove too simplistic Intel compiler workaround, as it breaks
with the Intel compiler on Linux.  If it's still needed,
a *proper* workaround should be put in place instead.
2008-05-21 13:48:05 +00:00
Sylvain Pion 0ba9bfbca4 Move that preliminary stuff to internal CGAL::Access namespace. 2008-04-17 14:43:41 +00:00
Sylvain Pion 7eeb87cf71 Add a Dimension typedef to the d-dim kernels.
Swap the order of the arguments of the Point<2, K> so that there can be a default for the dimension.
2008-04-17 14:02:06 +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 4477a9d986 Updates after the new d-dim stuff changes. 2008-04-15 13:53:58 +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 4416bee3de Move all Handle* classes to STL_Extension. There's no geometry in them,
so the kernel is not the most appropriate place for them.
2008-04-12 10:38:07 +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 aad1552b8a Add Dimension_tag<int dim> to help dispatching functions depending
on the dimension.
2008-04-11 19:29:30 +00:00
Sylvain Pion ef71559164 Remove the Kernel Concept Archetypes. 2008-04-11 19:26:21 +00:00
Sylvain Pion 4873e53de2 Move:
<CGAL/Kernel/Cartesian_coordinate_iterator_2.h>
  <CGAL/Kernel/Cartesian_coordinate_iterator_3.h>
To:
  <CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h>
  <CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h>
2008-04-09 18:06:00 +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 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 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 54648829af Merge <CGAL/functions_on_enums.h> into <CGAL_enum.h>.
No need to have 2 separately documented headers for that.
2008-03-20 16:39:56 +00:00
Andreas Fabri 7f258ba048 Added functors to archetype kernel 2008-01-19 15:11:50 +00:00
Andreas Fabri a322da0f0e Added preconditions and made it more efficient 2008-01-18 13:42:39 +00:00
Andreas Fabri e1f07a4bde Added normal and unit_normal function ans functors 2008-01-18 12:56:56 +00:00
Sylvain Pion 06109ce606 Add <CGAL/basic.h> header. 2008-01-12 20:15:41 +00:00
Sylvain Pion 79f8bea447 Update following the enum types merge of 3.3.
(this file is unused, so it was undetected before, I nevertheless keep it, as it is cute)
2008-01-11 22:56:35 +00:00
Sylvain Pion a582e0979f Add missing includes. 2008-01-11 22:09:24 +00:00
Sylvain Pion d49e006c53 Remove default argument "0" to calls to assertion_fail() et al,
as the default is now the empty string "".
It should fix the problem that we have lost the assertion messages
(seeing "what():  basic_string::_S_construct NULL not valid" instead),
for packages that use package-specific assertion macros.
2007-12-21 21:58:27 +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 90b39fe156 Replace abort() by CGAL_assertion*. 2007-11-05 10:08:04 +00:00
Sylvain Pion e05221ceef Iso_cuboid_3::transform had been dropped when doing shuffles for the Lazy_kernel. 2007-10-31 19:31:24 +00:00
Sylvain Pion b976aea1b6 Remove 2 workarounds which are not needed anymore by the latest SunPRO:
CGAL_CFG_DEEP_DEPENDENT_TEMPLATE_BUG
CGAL_CFG_DEDUCABLE_CONTEXT_BUG
2007-08-24 12:57:55 +00:00
Sylvain Pion e06d15e64e Fix bug #3850: add missing #include <CGAL/Bbox_2.h>. 2007-08-23 08:57:12 +00:00
Sylvain Pion 4f1170dcc4 Keep Bbox_3 and Bbox_2 in sync, and add missing documentation
for : dimension(), min(), max(), operator==, operator!=.
2007-08-22 12:12:48 +00:00
Sylvain Pion a90de08bf3 Remove obsolete config flag CGAL_CFG_MATCHING_BUG_4 and its dependency CGAL_WRAP. 2007-08-08 15:15:20 +00:00
Sylvain Pion 79eb2c8ffa Remove unused parameters. 2007-04-17 22:09:34 +00:00
Sylvain Pion bda89ba1d6 Use CGAL_CFG_DEDUCABLE_CONTEXT_BUG to partially (but most probably sufficiently)
work around SunCC bug.
2007-03-30 17:18:22 +00:00
Andreas Fabri e38380c619 workaround for Intel 9 2007-03-17 18:29:25 +00:00
Andreas Fabri b0a58d5601 removed unused parameters 2007-03-17 09:51:49 +00:00
Michael Hemmer 47107d399e include of proper CORE::Expr support file : CGAL/CORE_Expr.h 2007-03-15 10:47:09 +00:00
Joachim Reichel 4f47903a25 moved src/Core to src/CGALCore
moved include/CORE to include/CGAL/CORE
moved include/OpenNL to include/CGAL/OpenNL
renamed libcore++ to libCGALcore++
2007-03-13 18:10:39 +00:00
Andreas Fabri bf08f44f3c undo of change for Intel 9 2007-03-13 08:50:41 +00:00
Andreas Fabri 6def599d5b help Intel 9 2007-03-12 18:18:37 +00:00
Sylvain Pion 21ae09f184 remove g++ 4.3 warning 2007-03-06 15:11:09 +00:00
Sylvain Pion dc16641bec remove warnings 2007-03-03 08:56:34 +00:00
Sylvain Pion b760147492 remove empty first lines 2007-02-16 09:36:28 +00:00
Andreas Fabri 49df0a4603 Removed template member function. It is not clear why it is needed and causes trouble for the Circular_kernel_3 testsuite for VC++ 2007-02-01 16:18:38 +00:00
Sylvain Pion 1ec1875a01 Add missing #include <CGAL/representation_tags.h>. 2007-01-23 15:43:06 +00:00
Sylvain Pion 70b3bee5af Move 3D .bbox() to the functors to make Lazy_kernel pass, and enhance the test-suite to test .bbox() 2006-12-27 23:26:06 +00:00
Andreas Fabri 0be85d575d The direction must be != 0 in the constructor of the rotation 2006-12-17 22:28:35 +00:00
Sylvain Pion bd1e8bfc3a Add operator[] in Point_3 (and test it). 2006-11-23 12:56:55 +00:00
Andreas Fabri 07658cbdc8 remove comment for workaround for VC++ 2006-11-06 12:05:36 +00:00
Andreas Fabri cea0f3bbf1 workaround for VC++ 2006-11-06 10:18:16 +00:00
Sylvain Pion 14c04ed337 Sneak in Lazy_kernel without anyone noticing. 2006-10-27 19:01:33 +00:00
Andreas Meyer e9e8387260 merged changes from CGAL_with_EXACUS branch into trunk.
revisions used: 
(1) 32995:34537 
(2) 34538:34906
2006-10-24 15:21:25 +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
Andreas Fabri 1cdfe0a29b Added a circle constructor with two points and bulge 2006-09-01 13:25:52 +00:00
Andreas Fabri 0b94820931 fixed min/max problem 2006-08-16 21:29:43 +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 6830557518 fixed min/max problem 2006-08-16 14:08: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 ef72d8ae7e Remove the .rep() as they are useless since there is the automatic base class conversion (and see next change) 2006-08-11 11:36:01 +00:00
Sylvain Pion cb4d5597bf Add BOOST_STATIC_ASSERT() to check that CGAL::Point_2<R>
is only instantiated when R::Point_2 is itself.
2006-08-11 10:23:23 +00:00
Sylvain Pion 629c1dfddd Ray_2.is_degenerate() was buggy. 2006-08-11 09:01:12 +00:00
Andreas Meyer 68c3715b5c support for LEDA 5.x (mostly done by Eric Berberich) 2006-08-10 15:14:32 +00:00
Sylvain Pion 7ab36784b9 Merge the various constructors into a template to avoid ambiguities 2006-08-08 08:24:09 +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 12838a204a - Add a distinguishing "int" template parameter
to First_if_different, defaulting to 0, which
  allows to differentiate it in places where it's
  needed.
2006-08-07 15:18:21 +00:00
Sylvain Pion cb6639b85a Introduce wmult_hw(), a new abstraction for Homogeneous/Cartesian,
similar to wmult(), for calls .hw() on the last argument
(i.e., does absolutely nothing in the Cartesian case).
2006-08-07 12:34:24 +00:00
Sylvain Pion cd1cdd3188 Add missing #include. 2006-08-06 22:12:05 +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 c9de727dd2 New construction equi_distant_line(3 Point_3), with functor. 2006-08-04 15:03:16 +00:00
Sylvain Pion fcbacc1284 Have squared_distance(Point_3, Point_3) call its functor. 2006-08-04 12:41:56 +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 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 64d8c5e77a - Remove blanks at end of line
- Make Assign_[23]::result_type be bool instead of K::Bool_type.
  (it can't be Uncertain<bool>).
2006-08-03 08:40:47 +00:00
Sylvain Pion f84245c8d1 Add determinant() to the kernel archetype as well... 2006-08-02 19:14:03 +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 540406f767 Rename FT -> RT. 2006-08-02 18:19:18 +00:00
Andreas Meyer d72148ffdb bugfix for g++-3.3 : added missing #include <CGAL/Kernel/mpl.h>
( strange: for g++-3.4/4.x, there was no problem ... )
2006-08-02 16:54:57 +00:00