CGAL 5.1 - 2D Arrangements
ArrangementXMonotoneTraits_2 Class Reference

#include <Concepts/ArrangementXMonotoneTraits_2.h>

Definition

The concept ArrangementXMonotoneTraits_2 refines the basic arrangement-traits concept. A model of this concept is able to handle \( x\)-monotone curves that intersect in their interior (and points that coincide with curve interiors). This is necessary for constructing arrangements of sets of intersecting \( x\)-monotone curves.

As the resulting structure, represented by the Arrangement_2 class, stores pairwise interior-disjoint curves, the input curves are split at the intersection points before being inserted into the arrangement. A model of this refined concept therefore needs to compute the intersections (and possibly overlaps) between two \( x\)-monotone curves and to support curve splitting.

Refines:
ArrangementBasicTraits_2
Has Models:

CGAL::Arr_segment_traits_2<Kernel>

CGAL::Arr_non_caching_segment_traits_2<Kernel>

CGAL::Arr_linear_traits_2<Kernel>

CGAL::Arr_polyline_traits_2<SegmentTraits>

CGAL::Arr_circle_segment_traits_2<Kernel>

CGAL::Arr_line_arc_traits_2<CircularKernel>

CGAL::Arr_circular_arc_traits_2<CircularKernel>

CGAL::Arr_circular_line_arc_traits_2<CircularKernel>

CGAL::Arr_conic_traits_2<RatKernel,AlgKernel,NtTraits>

CGAL::Arr_rational_function_traits_2<AlgebraicKernel_d_1>

CGAL::Arr_Bezier_curve_traits_2<RatKernel,AlgKernel,NtTraits>

CGAL::Arr_algebraic_segment_traits_2<Coefficient>

CGAL::Arr_curve_data_traits_2<Tr,XData,Mrg,CData,Cnv>

CGAL::Arr_consolidated_curve_data_traits_2<Traits,Data>

See also
ArrangementBasicTraits_2

Types

typedef unspecified_type Multiplicity
 the multiplicity type. More...
 

Tags

typedef unspecified_type Has_merge_category
 indicates whether the nested functors Are_mergeable_2 and Merge_2 are provided. More...
 

Functor Types

typedef unspecified_type Intersect_2
 models the concept ArrTraits::Intersect_2. More...
 
typedef unspecified_type Split_2
 models the concept ArrTraits::Split_2. More...
 

Attention
The two following function-object types are optional. If they are supported, the Has_merge_category tag should be defined as Tag_true (and Tag_false otherwise.
typedef unspecified_type Are_mergeable_2
 models the concept ArrTraits::AreMergeable_2. More...
 
typedef unspecified_type Merge_2
 models the concept ArrTraits::Merge_2. More...
 

Accessing Functor Objects

Intersect_2 intersect_2_object () const
 
Split_2 split_2_object () const
 

The two following methods are optional.

If they are supported, the Has_merge_category tag should be defined as Tag_true (and Tag_false otherwise.

Are_mergeable_2 are_mergeable_2_object () const
 
Merge_2 merge_2_object () const
 

Member Typedef Documentation

◆ Are_mergeable_2

models the concept ArrTraits::AreMergeable_2.

◆ Has_merge_category

indicates whether the nested functors Are_mergeable_2 and Merge_2 are provided.

◆ Intersect_2

models the concept ArrTraits::Intersect_2.

◆ Merge_2

typedef unspecified_type ArrangementXMonotoneTraits_2::Merge_2

models the concept ArrTraits::Merge_2.

◆ Multiplicity

the multiplicity type.

◆ Split_2

typedef unspecified_type ArrangementXMonotoneTraits_2::Split_2

models the concept ArrTraits::Split_2.

Member Function Documentation

◆ are_mergeable_2_object()

Are_mergeable_2 ArrangementXMonotoneTraits_2::are_mergeable_2_object ( ) const

◆ intersect_2_object()

Intersect_2 ArrangementXMonotoneTraits_2::intersect_2_object ( ) const

◆ merge_2_object()

Merge_2 ArrangementXMonotoneTraits_2::merge_2_object ( ) const

◆ split_2_object()

Split_2 ArrangementXMonotoneTraits_2::split_2_object ( ) const