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 from

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 >
OutStream & print (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 Enumeration Documentation

◆ Operation_id

template<typename BaseTraits >
enum CGAL::Arr_counting_traits_2::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