cgal/Polygon_mesh_processing/doc/Polygon_mesh_processing/Concepts/PMPSelfIntersectionTraits.h

40 lines
1.3 KiB
C++

/// \ingroup PkgPolygonMeshProcessingConcepts
/// \cgalConcept
///
/// Geometric traits concept for the functions `CGAL::self_intersections()` and `CGAL::does_self_intersect()`.
class PMPSelfIntersectionTraits{
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 segments.
/// 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;
/// @}
};