diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/Concepts/SelfIntersectionTraits.h b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Concepts/SelfIntersectionTraits.h new file mode 100644 index 00000000000..e0bed20bab8 --- /dev/null +++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Concepts/SelfIntersectionTraits.h @@ -0,0 +1,33 @@ +/// \ingroup PkgPolygonMeshProcessingConcepts +/// \cgalConcept +/// +/// Geometric traits concept for the functions `self_intersect` +class SelfIntersectionTraits{ +public: + /// @name Geometric Types + /// @{ + /// 3D point type + typedef unspecified_type Point_3; + /// 3D triangle type + typedef unspecified_type Triangle_3; + /// 3D segment type + typedef unspecified_type Segment_3; + /// @} + + /// @name Functors + /// @{ + /// Functor constructing triangles. It provides `Triangle_3 operator() const(const Point_3&, const Point_3&, const Point_3&) + typedef unspecified_type Construct_triangle_3; + /// Functor constructing segments. It provides `Segment_3 operator() const(const Point_3&, const Point_3&) + typedef unspecified_type Construct_segment_3; + /// Functor testing intersections between triangles and segment. It provides `bool operator() const (const Triangle_3&, const Segment_3&)` and `bool operator() const (const Triangle_3&, const Triangle_3&)` + typedef unspecified_type Do_intersect_3; + /// @} + + /// @name Functions + /// @{ + Construct_triangle_3 construct_triangle_3_object() const; + Construct_segment_3 construct_segment_3_object() const; + Do_intersect_3 do_intersect_3_object() const; + /// @} +};