Commit Graph

144 Commits

Author SHA1 Message Date
Sébastien Loriot f57fab0c0a *variadic version of insert, cstr and rebuild of AABB_tree
*the traits now correctly handle the storage of primitive data
*update primitives
2012-05-15 08:46:42 +00:00
Sébastien Loriot a1bdd02f36 The traits now has a base class that is used to access the reference_point
and datum of a primitive. The base class is the one that will store additional
data.
2012-05-14 17:22:07 +00:00
Sébastien Loriot 79affebe42 make the traversal and expand using the traits class
stored in the AABB_tree
2012-05-14 11:54:16 +00:00
Philipp Möller 17797b7271 Merge next into this branch. There have been conflicts in the
AABB_tree documentation, Intersections_3 and Arrangement_on_surface_2.

The merge also introduced a regression for a bug fixed in R68387 which
fixed a bug in Triangle_3 Segment_3 intersections. The relevant
testcase is in triangle_other_intersection_test.cpp.
2012-04-24 15:06:19 +00:00
Laurent Rineau 8f59fd9592 Turn QPL into LGPLv3+ 2012-01-13 16:33:35 +00:00
Philipp Möller 376b6309f4 Adapted AABB_tree to the new concept and documented the API changes 2011-11-15 17:13:09 +00:00
Philipp Möller bddbfcc8e4 Adapted AABB_tree for new intersections 2011-11-10 16:00:22 +00:00
Sébastien Loriot 12e8540bbe merge from candidate branch. 2011-01-10 10:46:16 +00:00
Stéphane Tayeb 813d775fba Add missing #include. 2010-07-08 07:35:44 +00:00
Stéphane Tayeb f7a63d0ec5 revert r52901-52902 (moving predicate from AABB_tree to Intersections_3) 2009-11-10 16:58:02 +00:00
Stéphane Tayeb b869d0956d Move intersection predicates and constructions from AABB_tree to Intersection_3. 2009-11-09 12:10:23 +00:00
Pierre Alliez ca4f73b860 fix #ifdefs 2009-10-29 10:42:53 +00:00
Laurent Rineau 83912b2952 Massive fix of svn:keywords properties, and $URL$ keyword. 2009-10-20 08:59:26 +00:00
Stéphane Tayeb 5f464aec46 Merge [r51090:51960]
From branches/CGAL-3.5-branch/AABB_tree to trunk/AABB_tree

r51953 | stayeb | 2009-09-16 13:17:12 +0200 (Wed, 16 Sep 2009) | 1 line
* Fix AABB_tree missing default ctor.

r51936 | stayeb | 2009-09-14 19:37:18 +0200 (Mon, 14 Sep 2009) | 2 lines
* Fix ray_bbox & line_bbox do_intersect predicates for filtered kernels
* add a small test for do_intersect(seg/ray/line, bbox) queries

r51932 | lrineau | 2009-09-14 15:32:24 +0200 (Mon, 14 Sep 2009) | 3 lines
* Fix predicates of <CGAL/AABB_intersection.h>, so that they are correctly filtered when called from the global function template CGAL::do_intersect

r51931 | stayeb | 2009-09-14 15:22:12 +0200 (Mon, 14 Sep 2009) | 1 line
* Fix bbox_3_segment_3 intersection for filtered kernels.

r51868 | lrineau | 2009-09-07 17:01:48 +0200 (Mon, 07 Sep 2009) | 2 lines
* Fix the non-filtering of BBox_3-Segment_3 intersection.
2009-09-18 12:49:03 +00:00
Pierre Alliez 72ef5cb900 AABB tree: intersection benchmark code made much shorter and more accurate (the random generation of queries is made once for all before benchmarking, hence the timings are more precise). 2009-07-08 22:27:55 +00:00
Laurent Rineau 0d7cc0b6b5 Fix: AABBTraits must not require size_type. The size_type is an
implementation detail of the class template AABB_tree, and traits classes
cannot know that type.
2009-07-08 16:16:15 +00:00
Pierre Alliez 597f9459d5 aabb tree: some cleanup 2009-06-25 20:08:51 +00:00
Stéphane Tayeb 8bde72f327 * remove workaround for weighted point from AABB_traits
* simplify code of AABB_tree::First_intersection_traits
* change intersection(ray,triangle) and intersection(line,triangle):
returned object is now an empty object, a point or a segment
* remove do_intersect test from Intersection::operator() of
AABB_traits: intersection(ray,triangle) and
intersection(line,triangle) do it.
2009-05-14 10:07:55 +00:00
Laurent Rineau df0e2ec0bc size_type must be lowercase. 2009-05-12 14:29:36 +00:00
Camille Wormser 993c393cd4 forgotten detail 2009-05-11 23:30:04 +00:00
Camille Wormser 0d63e6c207 the Traits now conforms fuly to the documentation 2009-05-11 23:17:40 +00:00
Camille Wormser 74beff3b13 removed all warnings (-Wall -Wextra).
IMPORTANT THINGS

- We need to add Compute_squared_distance_3 (at least for Point_3, Point_3) to the traits requirements

- Since we use the (decorated) Traits as a template parameter for the Search_traits_3, we need to add
this as a requirement. Currently, the Search_traits_3 requests that the template parameter be a CGAL
kernel. This is much too strong!
2009-05-10 16:05:48 +00:00
Camille Wormser 5dc7c35be3 distance queries conform to the spec 2009-05-09 10:22:45 +00:00
Camille Wormser 8414b99e9a now the test suite compiles and runs! :) 2009-05-08 14:06:51 +00:00
Camille Wormser 01d0293bc5 Code is now almost up to the specification: Primitive::Id everywhere,
the KD-tree uses decorated points to return the Id too. 

There are just a few boost::optional to add in the traits, where we still
use the old bool intersection(..., Result&) approach, and some modernization 
to do in the distance computation things.

Everything compiles.

I have removed the funtion closest_primitive from the code and documentation, 
since it would not be consistent with the rest of the interface, and would not
be faster than closest_point_and_primitive.

I think we are almost done, not only for the documentation, but for the code too.
2009-05-08 12:59:22 +00:00
Pierre Alliez 154ff8cfa0 AABB tree: more on distance queries
it remains to fix the Distance_traits
2009-05-07 21:22:24 +00:00
Pierre Alliez c26e8531e1 AABB tree: intersections now return CGAL::Objects. 2009-05-07 21:03:21 +00:00
Camille Wormser 439292a46c solved the compilation problem for Point_and_primitive
temporarily disabled the kd-tree construction, not to mix two separate compilation issues. I replug it in a minute.
2009-05-07 09:24:41 +00:00
Pierre Alliez fd017c5595 AABB tree: first version of boost::optional for any*
obscure compilation issue for now.
more on doc too
2009-05-07 06:44:59 +00:00
Pierre Alliez 2d22df1c41 AABB tree: more on Point_and_primitive in traversal traits 2009-05-02 09:45:20 +00:00
Pierre Alliez 23f94c802b AABB tree: started to implement new API
CAREFUL: does not compile anymore - will fix this next week.
2009-04-30 22:26:53 +00:00
Stéphane Tayeb 6575fdb2e8 Fix compilation error. 2009-04-30 14:06:46 +00:00
Stéphane Tayeb fde6e4f260 * add workaround for weighted point (TOFIX)
* add AABB_const_polyhedron_edge_primitive
2009-04-30 14:04:45 +00:00
Stéphane Tayeb 7d85cbdd57 * Remove ad-hoc code from AABBTraits:
- add nearest_point_3(Point_3, Triangle_3, Point_3)
  - updates Projecting_traits of AABB_tree
* Fix test compilation (linux x64).
2009-04-28 15:12:51 +00:00
Pierre Alliez 6c4f25b95b AABB: rename to less_x/y/z 2009-04-27 18:13:06 +00:00
Stéphane Tayeb 836f48cd9c Fix compilation errors (linux x64). 2009-04-27 12:42:04 +00:00
Laurent Saboret 9c77d89703 Fixed compilation errors (Linux/g++) 2009-04-27 10:40:34 +00:00
Pierre Alliez 18c93be7bc AABB tree: replace xref/yref/zref and point_on by a single reference_point() function for primitive.
NOTE: the reference point is used both for sorting the primitives and for constructing the search KD-tree
2009-04-27 08:58:19 +00:00
Pierre Alliez b9c28d07aa AABB tree: rename is_smaller to is_contained
another code cleanup
2009-04-26 21:48:18 +00:00
Pierre Alliez 9df9f8a9f1 AABB tree: added internal search tree (CGAL K-orth search tree) to accelerate the projection queries.
substantial complication... may be improved.
2009-04-26 16:22:46 +00:00
Pierre Alliez 24e3bc0c22 AABB tree: added two primitive types for triangle and segment to make two examples simpler.
rename Object type to Datum type within primitive as it was conflicting with CGAL Object type
2009-04-26 13:46:48 +00:00
Pierre Alliez aea8cce7ad AABB tree: one more example with segment 2009-04-24 21:47:52 +00:00
Pierre Alliez ce4a6039f5 AABB tree: added two examples (one compiles fine) 2009-04-24 14:11:17 +00:00
Pierre Alliez aeb4889551 AABB tree: move files up 2009-04-24 13:35:41 +00:00