From d0a2c817dac16daa6df5aadd5f508e67b9c179a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Thu, 27 Apr 2017 16:28:00 +0200 Subject: [PATCH 1/2] remove a todo that is now an issue --- Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h index 23b951ed150..44b7348e9f3 100644 --- a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h +++ b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h @@ -61,11 +61,6 @@ namespace CGAL { `boost::graph_traits::%vertex_descriptor` as key type and `GeomTraits::Point_3` as value type. * The default is `typename boost::property_map::%type`. - - * \todo Code: Use this class as an implementation detail of Mesh_3's Polyhedral_mesh_domain_3. - Remove `TriangleAccessor_3` as well as the concept in Mesh_3 since making `TriangleMesh` - a model of `FaceListGraph` will make it useless - */ template Date: Thu, 27 Apr 2017 17:24:47 +0200 Subject: [PATCH 2/2] add implementation details --- .../include/CGAL/Side_of_triangle_mesh.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h index 44b7348e9f3..52d145251e9 100644 --- a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h +++ b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h @@ -61,6 +61,15 @@ namespace CGAL { `boost::graph_traits::%vertex_descriptor` as key type and `GeomTraits::Point_3` as value type. * The default is `typename boost::property_map::%type`. + * + * \cgalHeading{Implementation Details} + * The current implementation is based on the number of triangles intersected by a ray + * having the query point as source. The do-intersect predicate used to detect if a triangle + * is intersected is able to detect if a triangle is intersected in its + * interior or on its boundary. In case it is intersected on its boundary, another ray is picked. + * In order to speed queries, the first ray used is an axis aligned one that depends on the extents of the + * bbox of the input mesh. In case other rays are needed to conclude, the rays are generated + * from a random uniform sampling of a sphere. */ template