add intersection of two AABB_tree and parallel build - #9501
Conversation
…ntersection of meshes
…ersecting_primtives
|
/build:v0 |
|
The documentation is built. It will be available, after a few minutes, here: https://cgal.github.io/9501/v0/Manual/index.html |
…tions from the review
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
| typename OutputIterator, | ||
| typename NamedParameters1 = parameters::Default_named_parameters, | ||
| typename NamedParameters2 = parameters::Default_named_parameters> | ||
| void all_pairs_of_intersecting_primitives(const AABBTree1 &tree1, |
There was a problem hiding this comment.
How are datum intersection tested? Should come from a traits. Are tree traits intersection function used? If so it should be documented
There was a problem hiding this comment.
Tree traits are used, we can discussed the possibility to provide another traits through named parameters.
There was a problem hiding this comment.
Then it is should be documented! primitive vs bbox is already working according to the traits but nothing about Datum1 vs Datum2 ( or Datum/Datum for the self version)
|
|
||
| /*! | ||
| * \ingroup PkgAABBTreeRef | ||
| * Primitive type that uses as identifier an iterator with a range of three indices as `value_type`. |
There was a problem hiding this comment.
| * Primitive type that uses as identifier an iterator with a range of three indices as `value_type`. | |
| * Primitive type that uses as identifier an iterator with a range of triplet of indices as `value_type`. |
| /*! | ||
| * \ingroup PkgAABBTreeRef | ||
| * Primitive type that uses as identifier an iterator with a range of three indices as `value_type`. | ||
| * The iterator from which the primitive is built should not be invalided |
There was a problem hiding this comment.
you are using an index internally. Why not directly an size_t?
|
I still do not see the replacement with new code in |
| intersecting pairs of objects. We refer to the component | ||
| \ref chapterBoxIntersection "Intersecting Sequences of dD Iso-oriented Boxes" | ||
| which can find all intersecting pairs of iso-oriented boxes. | ||
| Similarly to the package \ref chapterBoxIntersection "Intersecting Sequences of dD Iso-oriented Boxes", |
There was a problem hiding this comment.
I am not sure, but does the ref command not automatically put the text here?
| \subsection aabb_tree_examples_9 Intersection of Two Trees | ||
|
|
||
| In the following example, we compute all the intersections between two tetrahedra. The tetrahedra | ||
| are stored as a vector of `Triangle_3`. We first compute if the tetrahedra do intersect and then we |
There was a problem hiding this comment.
So four of such triangles form one tetrahedron ????
There was a problem hiding this comment.
yes, is it not clear?
There was a problem hiding this comment.
Well, we have a class Tetahedron_3.
There was a problem hiding this comment.
I think it is better to use something more generic than Tetrahedron_3 in an example.
There was a problem hiding this comment.
maybe say two triangle soups/meshes both representing a tetrahedron (if that's Andreas' point)
| PrimitiveIterator beyond, | ||
| const CGAL::Bbox_3& bbox) const | ||
| { | ||
| auto longest_axis=[](const CGAL::Bbox_3& bbox){ |
| get_const_property_map(vertex_point, tm2)); | ||
|
|
||
| // Custom build functor using pointers | ||
| // TODO THIS IS SURFACE MESH SPECIFIC |
There was a problem hiding this comment.
Maybe grep for your todo, Todo, TODO
Co-authored-by: Sebastien Loriot <sloriot.ml@gmail.com> Co-authored-by: Andreas Fabri <andreas.fabri@geometryfactory.com>
… into AABB-add_parallellization
…formation instead to test intersection of the BBs of OBBs
|
PMP/tests fails + red CI |
Summary of Changes
Add a parallellization of
AABB_tree::build()(without any mutex) to improve running time.Add
PMP::AABB_self_intersections(), a variant ofPMP::self_intersections()that used anAABB_treeinstead ofCGAL::box_intersection_d.Todo
Release Management