Commit Graph

485 Commits

Author SHA1 Message Date
Pedro Machado Manhaes de Castro 66b2705068 Changing Licenses from QPL to LGPL 2008-07-17 12:02:29 +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
Sylvain Pion 2eb0d8f9e9 certainly() -> possibly(). 2008-07-14 11:16:41 +00:00
Sylvain Pion 32a9d86ec2 Fix header inclusion order problem by #including <CGAL/config.h> instead of <CGAL/basic.h>.
Really: <CGAL/basic.h> should go away!
2008-07-12 21:09:38 +00:00
Sylvain Pion 9d7a609ff2 Make assertions trigger an error only for *certain* conditions (using CGAL::certainly()).
This is useful for interval arithmetic code.
(replay of r44002 with the header order hopefully fixed)
2008-07-10 21:49:17 +00:00
Sylvain Pion 2b4ebf01f7 Undo r44002 as it's buggy 2008-07-06 20:47:29 +00:00
Sylvain Pion 514a17ad4f Improve the interaction of assertions and interval computations.
Things like "CGAL_assertion(denominator != 0)" produced assertion failures for no gain.
So now, the assertion is triggered only if the condition is certain, using CGAL::certainly().
That is, change the following in all assertion files :
  ((EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
to :
  (CGAL::certainly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
2008-07-06 17:05:47 +00:00
Pedro Machado Manhaes de Castro 4527058121 Fixing Lazy for Circle_3 2008-06-26 14:26:49 +00:00
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
Sylvain Pion 7b120847c9 Do_intersect_3 is a predicate, not a construction. 2006-08-02 12:17:19 +00:00
Sylvain Pion b69dd83c5f Use CGAL_Kernel_obj. 2006-08-02 11:43:40 +00:00
Sylvain Pion 18b1d37259 Add a macro CGAL_Kernel_obj(X) in the same spirit
as CGAL_Kernel_pred(X,Y) and CGAL_Kernel_cons(X, Y),
but which lists all kernel objects (Point_2...).
2006-08-02 11:36:26 +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 91faa1fff3 Remove spurious comma triggering a warning with sunpro 2006-08-01 21:29:53 +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 0c5460ccfa - Have free operator== and != call the Equal_3 functor for 3D kernel objects.
- Introduce .rep() in 3D kernel objects.
2006-08-01 07:56:38 +00:00
Sylvain Pion 5db77ed5d1 Add Compare_yx_2 functor to the kernel archetype. 2006-07-31 22:59:54 +00:00
Sylvain Pion ead2e93fdb - Add missing functor for compare_yx(). 2006-07-31 16:22:08 +00:00
Andreas Fabri fafaa14fc1 Fixed min max problem 2006-07-30 13:06:56 +00:00
Menelaos Karavelas 213aad8fc2 removed specializations of Pairify for Comparison_result and
Oriented_side; they are now taken care of by that of Sign.
2006-07-21 11:21:56 +00:00
Menelaos Karavelas d1862ff4de in Enum_converter: removed (dummy) conversions for Oriented_side and
Comparison_result; they should be taken care of by the conversion for
Sign, now that Sign, Oriented_side and Comparison_result are the same
type.
2006-07-18 09:36:56 +00:00
Christophe Delage ff123ee544 - typedefed Oriented_side and Comparison_result to Sign
- added unary - and binary * operators for Sign
2006-07-18 07:01:03 +00:00
Sylvain Pion 45bfd07a83 Remove some #include <CGAL/Arithmetic_filter/...> (Filtered_exact stuff). 2006-07-12 12:03:52 +00:00
Efi Fogel d083fa1323 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:40 +00:00
Andreas Fabri 02497d2b97 Removed the general operator in Equal_2 2006-04-20 08:32:23 +00:00
Marc Glisse b13e3b5ec0 Last round of missing std:: before 3.2 (Andreas permission) 2006-04-19 16:56:12 +00:00
Laurent Saboret 312353dd51 Global fix of svn:executable property in trunk 2006-04-14 15:07:17 +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 a0a9b777bc Move packages to trunk root 2006-02-14 08:58:16 +00:00