Commit Graph

309 Commits

Author SHA1 Message Date
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 dc3bf72707 Remove changes.txt files. 2008-07-24 17:47:16 +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 9f5bad92a1 Remove my name from maintainer files where it does not resonnably make any sense anymore. 2008-01-19 14:29:27 +00:00
Sylvain Pion 7f6f380b11 Final step at the removal of CGAL_REP_CLASS_DEFINED. 2008-01-03 19:26:12 +00:00
Sylvain Pion a46b55bf71 The files "changes.txt", "description.txt", "long_description.txt" and "maintainer"
are now under /trunk/$Package/package_info/$Package/ .
2007-12-02 15:06:42 +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 a980bcb7e4 some updates. 2007-10-26 20:11:40 +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