Commit Graph

78 Commits

Author SHA1 Message Date
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