CGAL 6.1 - 2D Arrangements
Loading...
Searching...
No Matches
CGAL::Arr_counting_traits_2< BaseTraits > Class Template Reference

#include <CGAL/Arr_counting_traits_2.h>

Inherits BaseTraits.

Definition

template<typename BaseTraits>
class CGAL::Arr_counting_traits_2< BaseTraits >

A metadata traits-class decorator for the arrangement package.

It counts the number of invocations of traits-class functors. It is parameterized with another traits class and inherits from it. For each traits method it maintains a counter that counts the number of invocations into the method.

It models all the concepts that the original traits models.

Examples
Arrangement_on_surface_2/count_and_trace.cpp.

Public Types

enum  Operation_id {
  COMPARE_X_2_OP = 0 , COMPARE_XY_2_OP , CONSTRUCT_MIN_VERTEX_2_OP , CONSTRUCT_MAX_VERTEX_2_OP ,
  IS_VERTICAL_2_OP , COMPARE_Y_AT_X_2_OP , EQUAL_2_POINTS_OP , EQUAL_2_CURVES_OP ,
  COMPARE_Y_AT_X_LEFT_2_OP , COMPARE_Y_AT_X_RIGHT_2_OP , MAKE_X_MONOTONE_2_OP , SPLIT_2_OP ,
  INTERSECT_2_OP , ARE_MERGEABLE_2_OP , MERGE_2_OP , CONSTRUCT_2_OPPOSITE_2_OP ,
  COMPARE_ENDPOINTS_XY_2_OP , APPROXIMATE_2_COORD_OP , APPROXIMATE_2_POINT_OP , APPROXIMATE_2_CURVE_OP ,
  PARAMETER_SPACE_IN_X_2_CURVE_END_OP , PARAMETER_SPACE_IN_X_2_POINT_OP , IS_ON_X_IDENTIFICATION_POINT_2_OP , IS_ON_X_IDENTIFICATION_CURVE_2_OP ,
  COMPARE_Y_ON_BOUNDARY_2_OP , COMPARE_Y_NEAR_BOUNDARY_2_OP , PARAMETER_SPACE_IN_Y_2_CURVE_END_OP , PARAMETER_SPACE_IN_Y_2_POINT_OP ,
  IS_ON_Y_IDENTIFICATION_2_POINT_OP , IS_ON_Y_IDENTIFICATION_2_CURVE_OP , COMPARE_X_ON_BOUNDARY_2_POINTS_OP , COMPARE_X_ON_BOUNDARY_2_POINT_CURVE_END_OP ,
  COMPARE_X_ON_BOUNDARY_2_CURVE_ENDS_OP , COMPARE_X_NEAR_BOUNDARY_2_OP , NUMBER_OF_OPERATIONS
}
 

Public Member Functions

std::size_t count (Operation_id id) const
 obtains the counter of the given operation
 
template<typename OutStream >
OutStreamprint (OutStream &os, Operation_id id) const
 prints the counter associated with an operation.
 
void clear_counters ()
 cleans all operation counters
 

Types and functors inherited from <tt>BaseTraits</tt>

using Has_left_category = typename Base::Has_left_category
 
using Has_merge_category = typename Base::Has_merge_category
 
using Has_do_intersect_category = typename Base::Has_do_intersect_category
 
using Left_side_category = typename internal::Arr_complete_left_side_category< Base >::Category
 
using Bottom_side_category = typename internal::Arr_complete_bottom_side_category< Base >::Category
 
using Top_side_category = typename internal::Arr_complete_top_side_category< Base >::Category
 
using Right_side_category = typename internal::Arr_complete_right_side_category< Base >::Category
 
using Point_2 = typename Base::Point_2
 
using X_monotone_curve_2 = typename Base::X_monotone_curve_2
 
using Curve_2 = typename Base::Curve_2
 

Creation

template<typename ... Args>
 Arr_counting_traits_2 (Args ... args)
 constructs default
 
 Arr_counting_traits_2 (const Arr_counting_traits_2 &)=delete
 disables copy constructor.
 

Obtain the appropriate functor

Compare_x_2 compare_x_2_object () const
 
Compare_xy_2 compare_xy_2_object () const
 
Construct_min_vertex_2 construct_min_vertex_2_object () const
 
Construct_max_vertex_2 construct_max_vertex_2_object () const
 
Is_vertical_2 is_vertical_2_object () const
 
Compare_y_at_x_2 compare_y_at_x_2_object () const
 
Equal_2 equal_2_object () const
 
Compare_y_at_x_left_2 compare_y_at_x_left_2_object () const
 
Compare_y_at_x_right_2 compare_y_at_x_right_2_object () const
 
Make_x_monotone_2 make_x_monotone_2_object () const
 
Split_2 split_2_object () const
 
Intersect_2 intersect_2_object () const
 
Are_mergeable_2 are_mergeable_2_object () const
 
Merge_2 merge_2_object () const
 
Construct_opposite_2 construct_opposite_2_object () const
 
Compare_endpoints_xy_2 compare_endpoints_xy_2_object () const
 
Approximate_2 approximate_2_object () const
 
Parameter_space_in_x_2 parameter_space_in_x_2_object () const
 
Is_on_x_identification_2 is_on_x_identification_2_object () const
 
Compare_y_on_boundary_2 compare_y_on_boundary_2_object () const
 
Compare_y_near_boundary_2 compare_y_near_boundary_2_object () const
 
Parameter_space_in_y_2 parameter_space_in_y_2_object () const
 
Is_on_y_identification_2 is_on_y_identification_2_object () const
 
Compare_x_on_boundary_2 compare_x_on_boundary_2_object () const
 
Compare_x_near_boundary_2 compare_x_near_boundary_2_object () const
 

Member Typedef Documentation

◆ Bottom_side_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Bottom_side_category = typename internal::Arr_complete_bottom_side_category<Base>::Category

◆ Curve_2

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Curve_2 = typename Base::Curve_2

◆ Has_do_intersect_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Has_do_intersect_category = typename Base::Has_do_intersect_category

◆ Has_left_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Has_left_category = typename Base::Has_left_category

◆ Has_merge_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Has_merge_category = typename Base::Has_merge_category

◆ Left_side_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Left_side_category = typename internal::Arr_complete_left_side_category<Base>::Category

◆ Point_2

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Point_2 = typename Base::Point_2

◆ Right_side_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Right_side_category = typename internal::Arr_complete_right_side_category<Base>::Category

◆ Top_side_category

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::Top_side_category = typename internal::Arr_complete_top_side_category<Base>::Category

◆ X_monotone_curve_2

template<typename BaseTraits >
using CGAL::Arr_counting_traits_2< BaseTraits >::X_monotone_curve_2 = typename Base::X_monotone_curve_2

Member Enumeration Documentation

◆ Operation_id

Enumerator
COMPARE_X_2_OP 
COMPARE_XY_2_OP 
CONSTRUCT_MIN_VERTEX_2_OP 
CONSTRUCT_MAX_VERTEX_2_OP 
IS_VERTICAL_2_OP 
COMPARE_Y_AT_X_2_OP 
EQUAL_2_POINTS_OP 
EQUAL_2_CURVES_OP 
COMPARE_Y_AT_X_LEFT_2_OP 
COMPARE_Y_AT_X_RIGHT_2_OP 
MAKE_X_MONOTONE_2_OP 
SPLIT_2_OP 
INTERSECT_2_OP 
ARE_MERGEABLE_2_OP 
MERGE_2_OP 
CONSTRUCT_2_OPPOSITE_2_OP 
COMPARE_ENDPOINTS_XY_2_OP 
APPROXIMATE_2_COORD_OP 
APPROXIMATE_2_POINT_OP 
APPROXIMATE_2_CURVE_OP 
PARAMETER_SPACE_IN_X_2_CURVE_END_OP 
PARAMETER_SPACE_IN_X_2_POINT_OP 
IS_ON_X_IDENTIFICATION_POINT_2_OP 
IS_ON_X_IDENTIFICATION_CURVE_2_OP 
COMPARE_Y_ON_BOUNDARY_2_OP 
COMPARE_Y_NEAR_BOUNDARY_2_OP 
PARAMETER_SPACE_IN_Y_2_CURVE_END_OP 
PARAMETER_SPACE_IN_Y_2_POINT_OP 
IS_ON_Y_IDENTIFICATION_2_POINT_OP 
IS_ON_Y_IDENTIFICATION_2_CURVE_OP 
COMPARE_X_ON_BOUNDARY_2_POINTS_OP 
COMPARE_X_ON_BOUNDARY_2_POINT_CURVE_END_OP 
COMPARE_X_ON_BOUNDARY_2_CURVE_ENDS_OP 
COMPARE_X_NEAR_BOUNDARY_2_OP 
NUMBER_OF_OPERATIONS 

Constructor & Destructor Documentation

◆ Arr_counting_traits_2() [1/2]

template<typename BaseTraits >
template<typename ... Args>
CGAL::Arr_counting_traits_2< BaseTraits >::Arr_counting_traits_2 ( Args ...  args)

constructs default

◆ Arr_counting_traits_2() [2/2]

template<typename BaseTraits >
CGAL::Arr_counting_traits_2< BaseTraits >::Arr_counting_traits_2 ( const Arr_counting_traits_2< BaseTraits > &  )
delete

disables copy constructor.

Member Function Documentation

◆ approximate_2_object()

template<typename BaseTraits >
Approximate_2 CGAL::Arr_counting_traits_2< BaseTraits >::approximate_2_object ( ) const

◆ are_mergeable_2_object()

template<typename BaseTraits >
Are_mergeable_2 CGAL::Arr_counting_traits_2< BaseTraits >::are_mergeable_2_object ( ) const

◆ clear_counters()

template<typename BaseTraits >
void CGAL::Arr_counting_traits_2< BaseTraits >::clear_counters ( )

cleans all operation counters

◆ compare_endpoints_xy_2_object()

template<typename BaseTraits >
Compare_endpoints_xy_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_endpoints_xy_2_object ( ) const

◆ compare_x_2_object()

template<typename BaseTraits >
Compare_x_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_x_2_object ( ) const

◆ compare_x_near_boundary_2_object()

template<typename BaseTraits >
Compare_x_near_boundary_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_x_near_boundary_2_object ( ) const

◆ compare_x_on_boundary_2_object()

template<typename BaseTraits >
Compare_x_on_boundary_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_x_on_boundary_2_object ( ) const

◆ compare_xy_2_object()

template<typename BaseTraits >
Compare_xy_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_xy_2_object ( ) const

◆ compare_y_at_x_2_object()

template<typename BaseTraits >
Compare_y_at_x_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_y_at_x_2_object ( ) const

◆ compare_y_at_x_left_2_object()

template<typename BaseTraits >
Compare_y_at_x_left_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_y_at_x_left_2_object ( ) const

◆ compare_y_at_x_right_2_object()

template<typename BaseTraits >
Compare_y_at_x_right_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_y_at_x_right_2_object ( ) const

◆ compare_y_near_boundary_2_object()

template<typename BaseTraits >
Compare_y_near_boundary_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_y_near_boundary_2_object ( ) const

◆ compare_y_on_boundary_2_object()

template<typename BaseTraits >
Compare_y_on_boundary_2 CGAL::Arr_counting_traits_2< BaseTraits >::compare_y_on_boundary_2_object ( ) const

◆ construct_max_vertex_2_object()

template<typename BaseTraits >
Construct_max_vertex_2 CGAL::Arr_counting_traits_2< BaseTraits >::construct_max_vertex_2_object ( ) const

◆ construct_min_vertex_2_object()

template<typename BaseTraits >
Construct_min_vertex_2 CGAL::Arr_counting_traits_2< BaseTraits >::construct_min_vertex_2_object ( ) const

◆ construct_opposite_2_object()

template<typename BaseTraits >
Construct_opposite_2 CGAL::Arr_counting_traits_2< BaseTraits >::construct_opposite_2_object ( ) const

◆ count()

template<typename BaseTraits >
std::size_t CGAL::Arr_counting_traits_2< BaseTraits >::count ( Operation_id  id) const

obtains the counter of the given operation

◆ equal_2_object()

template<typename BaseTraits >
Equal_2 CGAL::Arr_counting_traits_2< BaseTraits >::equal_2_object ( ) const

◆ intersect_2_object()

template<typename BaseTraits >
Intersect_2 CGAL::Arr_counting_traits_2< BaseTraits >::intersect_2_object ( ) const

◆ is_on_x_identification_2_object()

template<typename BaseTraits >
Is_on_x_identification_2 CGAL::Arr_counting_traits_2< BaseTraits >::is_on_x_identification_2_object ( ) const

◆ is_on_y_identification_2_object()

template<typename BaseTraits >
Is_on_y_identification_2 CGAL::Arr_counting_traits_2< BaseTraits >::is_on_y_identification_2_object ( ) const

◆ is_vertical_2_object()

template<typename BaseTraits >
Is_vertical_2 CGAL::Arr_counting_traits_2< BaseTraits >::is_vertical_2_object ( ) const

◆ make_x_monotone_2_object()

template<typename BaseTraits >
Make_x_monotone_2 CGAL::Arr_counting_traits_2< BaseTraits >::make_x_monotone_2_object ( ) const

◆ merge_2_object()

template<typename BaseTraits >
Merge_2 CGAL::Arr_counting_traits_2< BaseTraits >::merge_2_object ( ) const

◆ parameter_space_in_x_2_object()

template<typename BaseTraits >
Parameter_space_in_x_2 CGAL::Arr_counting_traits_2< BaseTraits >::parameter_space_in_x_2_object ( ) const

◆ parameter_space_in_y_2_object()

template<typename BaseTraits >
Parameter_space_in_y_2 CGAL::Arr_counting_traits_2< BaseTraits >::parameter_space_in_y_2_object ( ) const

◆ print()

template<typename BaseTraits >
template<typename OutStream >
OutStream & CGAL::Arr_counting_traits_2< BaseTraits >::print ( OutStream os,
Operation_id  id 
) const

prints the counter associated with an operation.

◆ split_2_object()

template<typename BaseTraits >
Split_2 CGAL::Arr_counting_traits_2< BaseTraits >::split_2_object ( ) const