There is no reason for TraversalTraits to know the size_type (or any
of the other typedefs) and removing it prevents an unnecessary
instantiation of AABB_tree and a funky include.
* 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
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.
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.
*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
and update accordingly include directives. Update testsuite
remove unneed CMakeLists.txt from AABBtree testsuite
Remove Triangle_3_Plane_3 intersection from AABB_tree (I define it in Intersections_3 some days ago, thus a conflict)
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.
+ add missing includes
+ avoid object copies
+ replace CGAL_kernel_assertion(false) by CGAL_error()
+ use is() function of CGAL::Object
+ improve style (remove spaces, white lines...)
* Add test for triangle_3/line_3 intersection (should be enriched maybe) in file aabb_intersection.cpp
* Test exact_exact kernel in aabb_do_intersect_test.cpp