Commit Graph

27 Commits

Author SHA1 Message Date
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 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 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 f9c1159ed4 inline calls to circumcenterC3() in the functors to avoid
dummy default ctors.
2006-08-07 11:54:41 +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 ead2e93fdb - Add missing functor for compare_yx(). 2006-07-31 16:22:08 +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 ea43a393c4 Changed Construct_point_2::operator()(Line) 2006-03-29 07:57:25 +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