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
Andreas Fabri
44daf8cc17
fixed typo (thank's Sylvain)
2006-08-08 20:08:41 +00:00
Andreas Fabri
c45818326b
Added Kernel::Compute{X,Y,Z}_3
2006-08-08 18:31:00 +00:00
Sylvain Pion
7ab36784b9
Merge the various constructors into a template to avoid ambiguities
2006-08-08 08:24:09 +00:00
Andreas Meyer
b454b3febd
manual cleanup:
...
* .C ---> .cpp
* removed ../examples from paths
* moved some demo/example files out of doc_tex into their respective place
* now it should build properly, again
2006-08-07 16:43: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
7bfade9820
Initialize geometric objects before passing them to predicates, otherwise Lazy_kernel barfs
2006-08-05 13:35:44 +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
ad1e880bc0
Regenerate for Lazy_kernel
2006-08-03 22:55:20 +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
c7abea8657
Well, it now fully passes the test-suite :-)
...
Yeah !!!
2006-08-03 11:33:25 +00:00
Sylvain Pion
fc39b60aa7
- Add a test program for the Lazy_kernel.
...
It's beginning to work.
2006-08-03 11:31:40 +00:00
Sylvain Pion
38b7c42bd6
Document new Iso_rectangle/Iso_cuboid constructor.
2006-08-03 09:40:42 +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