Andreas Fabri
d16be07906
polish AABB Tree
2012-12-27 20:36:04 +01:00
Andreas Fabri
e0acf10424
doc_tex -> doxygen of the AABB Tree documentation
2012-12-05 14:37:56 +01:00
Philipp Möller
d198458ca7
Merge branch 'origin-gsoc2011-boost_object-pmoeller' into Kernel-replace_object-pmoeller
...
Conflicts:
.gitattributes
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
AABB_tree/include/CGAL/AABB_traits.h
AABB_tree/include/CGAL/AABB_tree.h
AABB_tree/test/AABB_tree/AABB_test_util.h
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2/arr_queries.tex
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/Arr_trapezoid_ric_point_location.tex
Arrangement_on_surface_2/doc_tex/Arrangement_on_surface_2_ref/intro.tex
Arrangement_on_surface_2/include/CGAL/Arr_batched_point_location.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_generator_base.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_lm_random_generator.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_trapezoid_ric_pl_impl.h
Arrangement_on_surface_2/include/CGAL/Arr_point_location/Arr_walk_along_line_pl_impl.h
Arrangement_on_surface_2/include/CGAL/Arr_trapezoid_ric_point_location.h
Arrangement_on_surface_2/test/Arrangement_on_surface_2/point_location.cpp
Circular_kernel_2/include/CGAL/Circular_kernel_2/internal_functions_on_line_arc_2.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_circular_arc_3.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_line_arc_3.h
Circular_kernel_3/include/CGAL/Circular_kernel_3/internal_functions_on_sphere_3.h
Filtered_kernel/include/CGAL/Lazy.h
Filtered_kernel/include/CGAL/Lazy_kernel.h
Intersections_2/include/CGAL/Triangle_2_Iso_rectangle_2_intersection.h
Intersections_2/test/Intersections_2/test_intersections_2.cpp
Intersections_3/test/Intersections_3/test_intersections_3.cpp
Kernel_23/doc_tex/Kernel_23_ref/intersection.tex
Kernel_23/include/CGAL/Kernel/Type_mapper.h
Kernel_d/doc_tex/Kernel_d_ref/Kernel.tex
2012-12-04 17:57:53 +01:00
Philipp Möller
37778547bf
Fix example to point to paths similar to a flat layout
2012-10-01 18:02:44 +00:00
Philipp Möller
864aebe2e5
Merge next.
...
This commit also updates the respective mock-headers when the
corresponding .tex documentation has changed. This has been the case for:
AABB_tree/doc_tex/AABB_tree_ref/AABBGeomTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABBTraits.tex
AABB_tree/doc_tex/AABB_tree_ref/AABB_traits.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_features.tex
Mesh_3/doc_tex/Mesh_3_ref/parameters_no_features.tex
Number_types/doc_tex/NumberTypeSupport_ref/Interval_nt.tex
Number_types/doc_tex/NumberTypeSupport_ref/Lazy_exact_nt.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_2.tex
Spatial_searching/doc_tex/Spatial_searching_ref/Search_traits_3.tex
Triangulation_2/doc_tex/Triangulation_2_ref/Constrained_Delaunay_triangulation_2.tex
2012-09-12 14:14:22 +00:00
Andreas Fabri
632d2c7b76
template parameter AT got replaced by AABBTraits
2012-09-04 11:45:35 +00:00
Philipp Möller
e2b79eb9db
Manually move AABB_tree here
2012-08-29 15:27:03 +00:00
Sébastien Loriot
8f22de68ce
concept bugfix
...
* CODE+DOC: Bbox_3 is a nested type in CGAL's Kernel; the code uses Bbox_3
* DOC: Add Compute_squared_distance_3 in AABBGeomTraits as it is needed by AABBTraits
* DOC: remove Splitting_direction from AABBTraits as it is not used
* DOC: Squared_distance in AABBTraits is only used between two points
(I guess the confusion from the fact that nearest_point use the other
version but without using the AABBTraits model).
* CODE+DOC add the function to construct Squared_distance functor in AABBTraits + AABB_traits
and use it instead of AABBTraits::Compute_squared_distance_3 which was not in the concept
* DOC: remove from AABB_traits types Ray_3, Line_3 and Segment_3 that are not required by AABBTraits
* CODE: The code was using AABBTraits::Point which is not in the concept. Use Point_3 instead
* CODE: reorder typedefs in AABB_traits to match concept order
2012-08-28 12:21:57 +00:00
Sébastien Loriot
21283eab97
remove requirements of having get_reference_point and get_datum in the traits
2012-06-04 14:14:11 +00:00
Sébastien Loriot
567e637484
document previous changes
...
add new concept for primitive with shared data
rename Extra_data -> Shared_data
2012-06-01 15:24:17 +00:00
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
21cf39655e
reserve to speed up allocation
2012-05-14 12:07:34 +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
Andreas Fabri
77b9fd79db
Remove ETHZ copyright, as Camille's contribution during his postdoc was minor
2011-09-29 15:34:00 +00:00
Sébastien Loriot
5e0c09d8ce
For backward compatibility reasons and according to this article:
...
http://gotw.ca/gotw/006.htm , accelerate_distance_queries and
clear_search_tree should be const.
To guarantee the read-only thread-safety, a mutex for the construction
of the internal kd-tree is used.
At the same time, optimize accelerate_distance_queries() to not
redo computation if nothing has changed in the aabb_tree.
Note that clear_search_tree does not need to be thread-safe as it is private.
2011-09-09 08:31:38 +00:00
Sébastien Loriot
c93ba3a215
remove temporary comment
2011-09-08 16:03:23 +00:00
Sébastien Loriot
f8449dcec4
more efficient usage of mutex. The lock is only done
...
if the build need to be done. We have an extra "if (m_need_build)"
but otherwise we would need to use mutex::try_lock() which results
in more code and as efficient.
2011-09-08 15:54:44 +00:00
Sébastien Loriot
a09f6640f5
remove non-const version of root_node added in r65337
...
for backward compatibility. It is not documented and not
used (in a non-const context).
2011-09-08 12:02:06 +00:00
Sébastien Loriot
795ab80486
use a mutex in const function root_node to protect the non const call to
...
build()
The class AABB_tree is now read-only thread-safe
2011-09-08 08:56:16 +00:00
Sébastien Loriot
eed2074f7f
Fix constness issues in AABB_tree
...
*remove mutable data members
*accelerate_distance_queries is not const
*clear_search_tree is not const
*root_node() const returns a const Node*
*add root_note() non-const version
*update documentation of AABB_tree class. function constness was not documented
*update changes.html
2011-09-07 09:55:59 +00:00
Laurent Rineau
72f323a5dd
The bbox() of AABB_tree can return a const reference.
2011-04-07 12:54:35 +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
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
63d3ba8f0d
default constructor.
2009-09-15 10:36:40 +00:00
Pierre Alliez
bfaee9aae4
adds default constructor.
2009-09-15 10:01:58 +00:00
Pierre Alliez
d987180d75
fix copyrights.
2009-08-07 18:57:08 +00:00
Sylvain Pion
7e0db3191b
Fix & homogenize Copyright header lines :
...
- Copyrigth -> Copyright
- ETHZ (Suisse) -> ETH Zurich (Switzerland)
2009-08-07 11:18:32 +00:00
Pierre Alliez
eb645bed0c
AABB tree: fix quibble in comment.
2009-07-16 06:11:29 +00:00
Pierre Alliez
cd199a7504
AABB tree: added one message to track the last remaining error in the test suite.
2009-07-16 06:07:41 +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
1b26c8d562
AABB tree: fix one table line of the benchmark.
2009-07-08 12:17:31 +00:00
Pierre Alliez
de47ee0a27
AABB tree: do_intersect now calls the First_primitive traversal traits (much faster)
...
performance section updated
2009-07-08 12:02:28 +00:00
Pierre Alliez
dfa149a2d7
aabb tree: more code cleanup
2009-06-27 15:19:29 +00:00
Pierre Alliez
4c19729e16
aabb tree: a bit of code cleanup
2009-06-27 06:44:31 +00:00
Stéphane Tayeb
c8dc1d84f7
Add a CGAL_assertion (prevents std::bad_alloc).
2009-06-26 11:58:17 +00:00
Pierre Alliez
597f9459d5
aabb tree: some cleanup
2009-06-25 20:08:51 +00:00
Camille Wormser
e03e9fb4fd
changes needed for the Polyhedron demo to compile
2009-06-05 18:04:47 +00:00
Stéphane Tayeb
c83f4d6812
Remove compiler warnings.
2009-06-03 09:40:47 +00:00
Stéphane Tayeb
729ba7be05
Test suite code factorization. Minor fix (return type) in AABB_tree.h.
2009-05-18 14:26:29 +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
Pierre Alliez
75a82ec32d
AABB tree:
...
- rebuild now returns void.
2009-05-13 07:32:41 +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
0f376fb294
removed the warnings, except in one of the test cases. Working on it.
2009-05-10 15:24:04 +00:00
Pierre Alliez
0d2880a413
AABB tree:
...
- more on examples
- description
- removed leftover traces of projection after grep (two found)
2009-05-09 22:24:39 +00:00
Camille Wormser
5dc7c35be3
distance queries conform to the spec
2009-05-09 10:22:45 +00:00
Pierre Alliez
4a6eb544a8
AABB tree
...
- rename m_data into m_primitives in Tree
- rename m_p_root into m_p_root_node in Tree
put back squared_distance into distance test
2009-05-09 06:57:36 +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
Pierre Alliez
e034d54b75
AABB tree: more on distance queries
...
- experiments with primitive vs point hints.
2009-05-07 13:18:17 +00:00
Pierre Alliez
db287f0e56
AABB tree: more on internal KD-tree used to accelerate the distance queries.
2009-05-07 10:51:01 +00:00
Camille Wormser
55021bdb9f
KD-tree forbids copies -> a pointer now.
2009-05-07 09:41:38 +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
Gaël Guennebaud
10f9aa181c
fix compilation
2009-05-04 15:15:46 +00:00
Camille Wormser
6f050ab6ca
tentative API for dealing correctly with the degenerate cases:
...
it changes NOTHING to the existing code, except that
number_of_intersections is renamed into number_of_intersected_primitives.
2009-05-02 18:02:11 +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
b23fd11c04
AABB tree: document size, bbox and empty of the tree
...
note: we could rename root_bbox as simply bbox
2009-05-01 06:41:10 +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
Pierre Alliez
b96d8c442c
AABB: fix clear_and_insert
...
remove lucy model (too big)
2009-04-28 20:04:23 +00:00
Pierre Alliez
a86c346e54
AABB: implemented two new functions suggested by Andreas:
...
void clear(void)
bool clear_and_insert(begin,beyond)
2009-04-28 15:29:37 +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
b563d29270
AABB tree: the projection does not construct the KD-tree at the first projection query anymore. for efficient projection queries either the user calls for its explicit construction during the AABB construction or calls "construct_search_Tree()". otherwise the first primitive reference point is used as (naive) hint.
2009-04-27 15:36:35 +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
a8188eb668
AABB tree: test all intersection types for triangles
2009-04-26 21:29:47 +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
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