|
CGAL 5.1 - Polygon Mesh Processing
|
It could make sense to also return the length of each cycle.
It should probably go into BGL package (like the rest of this file).
double, and use an exact process for projection. For each vertex, the AABB_tree would be used in an inexact manner to find the triangle on which projection has to be done. Then, use CGAL::intersection(triangle, line) in the exact constructions kernel to get a point which is exactly on the surface. Replace border_halfedge by a range of border halfedges. The first one would describe the hole, the other ones would describe the islands.
Then, insert the holes vertices in the set of possibilities for connecting vertices together
handle the case where an island is reduced to a point
Shall we document more in details what is required? Traits must provide:
Plane_3Point_3Segment_3Oriented_side_3 with Oriented_side operator()(Plane_3, Point_3)Do_intersect_3 with boost::optional<variant<Point_3,Segment_3> operator()(Plane_3,Segment_3)Do_intersect_3 with bool operator()(Plane_3, Bbox_3)If we keep the traits for plane orthogonal to a frame axis, Traits must also provide:
FTConstruct_cartesian_const_iterator_3 with Iterator operator()(Point_3) Iterator being a random access iterator with FT as value typeConstruct_point_3 with Point_3 operator()(FT,FT,FT); Construct_source_3 with const Point_3& operator()(Segment_3)Construct_target_3 with const Point_3& operator()(Segment_3)