// ====================================================================== // // Copyright (c) 2000 The CGAL Consortium // // This software and related documentation is part of an INTERNAL release // of the Computational Geometry Algorithms Library (CGAL). It is not // intended for general use. // // ---------------------------------------------------------------------- // // release : // release_date : // // file : include/CGAL/Kernel_traits_common.h // revision : $Revision$ // revision_date : $Date$ // author(s) : Herve Bronnimann, Sylvain Pion // coordinator : INRIA Sophia-Antipolis (Mariette.Yvinec@sophia.inria.fr) // // ====================================================================== // This file is intentionally not protected for re-inclusion. // It's aimed at being included from within a kernel traits class, this // way we share more code. Ideally, it should go in Kernel_basic. #define CGAL_Kernel_obj(X, Xf) X Xf() const { return X(); } typedef CGALi::Construct Construct_point_2; typedef CGALi::Construct Construct_vector_2; typedef CGALi::Construct Construct_direction_2; typedef CGALi::Construct Construct_segment_2; typedef CGALi::Construct Construct_line_2; typedef CGALi::Construct Construct_ray_2; typedef CGALi::Construct Construct_circle_2; typedef CGALi::Construct Construct_triangle_2; typedef CGALi::Construct Construct_iso_rectangle_2; typedef CGALi::Construct Construct_aff_transformation_2; CGAL_Kernel_obj(Construct_point_2, construct_point_2_object) CGAL_Kernel_obj(Construct_vector_2, construct_vector_2_object) CGAL_Kernel_obj(Construct_direction_2, construct_direction_2_object) CGAL_Kernel_obj(Construct_segment_2, construct_segment_2_object) CGAL_Kernel_obj(Construct_line_2, construct_line_2_object) CGAL_Kernel_obj(Construct_ray_2, construct_ray_2_object) CGAL_Kernel_obj(Construct_circle_2, construct_circle_2_object) CGAL_Kernel_obj(Construct_triangle_2, construct_triangle_2_object) CGAL_Kernel_obj(Construct_iso_rectangle_2, construct_iso_rectangle_2_object) CGAL_Kernel_obj(Construct_aff_transformation_2, construct_aff_transformation_2_object) typedef CGALi::Call_point_to_get Construct_point_on_2; typedef CGALi::Call_second_point_to_get Construct_second_point_on_2; typedef CGALi::Call_source_to_get Construct_source_point_2; typedef CGALi::Call_target_to_get Construct_target_point_2; typedef CGALi::Call_min_to_get Construct_min_point_2; typedef CGALi::Call_max_to_get Construct_max_point_2; typedef CGALi::Call_direction_to_get Construct_direction_of_line_2; typedef CGALi::Call_direction_to_get Construct_direction_of_ray_2; typedef CGALi::Call_supporting_line_to_get Construct_supporting_line_2; typedef CGALi::Call_perpendicular_to_get Construct_perpendicular_vector_2; typedef CGALi::Call_perpendicular_to_get Construct_perpendicular_direction_2; typedef CGALi::Call_perpendicular_to_get Construct_perpendicular_line_2; typedef CGALi::p_Midpoint Construct_midpoint_2; typedef CGALi::p_Circumcenter Construct_circumcenter_2; typedef CGALi::pl_Bisector Construct_bisector_2; CGAL_Kernel_obj(Construct_point_on_2, construct_point_on_2_object) CGAL_Kernel_obj(Construct_second_point_on_2, construct_second_point_on_2_object) CGAL_Kernel_obj(Construct_source_point_2, construct_source_point_2_object) CGAL_Kernel_obj(Construct_target_point_2, construct_target_point_2_object) CGAL_Kernel_obj(Construct_min_point_2, construct_min_point_2_object) CGAL_Kernel_obj(Construct_max_point_2, construct_max_point_2_object) CGAL_Kernel_obj(Construct_direction_of_line_2, construct_direction_of_line_2_object) CGAL_Kernel_obj(Construct_direction_of_ray_2, construct_direction_of_ray_2_object) CGAL_Kernel_obj(Construct_supporting_line_2, construct_supporting_line_2_object) CGAL_Kernel_obj(Construct_perpendicular_vector_2, construct_perpendicular_vector_2_object) CGAL_Kernel_obj(Construct_perpendicular_direction_2, construct_perpendicular_direction_2_object) CGAL_Kernel_obj(Construct_perpendicular_line_2, construct_perpendicular_line_2_object) CGAL_Kernel_obj(Construct_midpoint_2, construct_midpoint_2_object) CGAL_Kernel_obj(Construct_circumcenter_2, construct_circumcenter_2_object) CGAL_Kernel_obj(Construct_bisector_2, construct_bisector_2_object) typedef CGALi::Call_opposite_to_get Construct_opposite_segment_2; typedef CGALi::Call_opposite_to_get Construct_opposite_ray_2; typedef CGALi::Call_opposite_to_get Construct_opposite_line_2; typedef CGALi::Call_opposite_to_get Construct_opposite_triangle_2; typedef CGALi::Call_opposite_to_get Construct_opposite_circle_2; typedef CGALi::Assign Assign_2; typedef CGALi::Call_transform Transform_2; typedef CGALi::Intersect Intersect_2; typedef CGALi::Do_intersect Do_intersect_2; CGAL_Kernel_obj(Construct_opposite_segment_2, construct_opposite_segment_2_object) CGAL_Kernel_obj(Construct_opposite_ray_2, construct_opposite_ray_2_object) CGAL_Kernel_obj(Construct_opposite_line_2, construct_opposite_line_2_object) CGAL_Kernel_obj(Construct_opposite_triangle_2, construct_opposite_triangle_2_object) CGAL_Kernel_obj(Construct_opposite_circle_2, construct_opposite_circle_2_object) CGAL_Kernel_obj(Assign_2, assign_2_object) CGAL_Kernel_obj(Transform_2, transform_2_object) CGAL_Kernel_obj(Intersect_2, intersect_2_object) CGAL_Kernel_obj(Do_intersect_2, do_intersect_2_object) typedef CGALi::Call_y_at_x_to_get Compute_y_at_x_2; typedef CGALi::Call_squared_length_to_get Compute_squared_length_2; typedef CGALi::Call_area_to_get Compute_area_2; typedef CGALi::Equal Equal_2; typedef CGALi::Equal_x Equal_x_2; typedef CGALi::Equal_y Equal_y_2; typedef CGALi::Equal_xy Equal_xy_2; typedef CGALi::Less_x Less_x_2; typedef CGALi::Less_y Less_y_2; typedef CGAL::p_Less_xy Less_xy_2; typedef CGAL::p_Less_yx Less_yx_2; typedef CGALi::Compare_x Compare_x_2; typedef CGALi::Compare_y Compare_y_2; typedef CGALi::Compare_xy Compare_xy_2; typedef CGALi::Compare_y_at_x Compare_y_at_x_2; CGAL_Kernel_obj(Compute_y_at_x_2, compute_y_at_x_2_object) CGAL_Kernel_obj(Compute_squared_length_2, compute_squared_length_2_object) CGAL_Kernel_obj(Compute_area_2, compute_area_2_object) CGAL_Kernel_obj(Equal_2, equal_2_object) CGAL_Kernel_obj(Equal_x_2, equal_x_2_object) CGAL_Kernel_obj(Equal_y_2, equal_y_2_object) CGAL_Kernel_obj(Equal_xy_2, equal_xy_2_object) CGAL_Kernel_obj(Less_x_2, less_x_2_object) CGAL_Kernel_obj(Less_y_2, less_y_2_object) CGAL_Kernel_obj(Less_xy_2, less_xy_2_object) CGAL_Kernel_obj(Less_yx_2, less_yx_2_object) CGAL_Kernel_obj(Compare_x_2, compare_x_2_object) CGAL_Kernel_obj(Compare_y_2, compare_y_2_object) CGAL_Kernel_obj(Compare_xy_2, compare_xy_2_object) CGAL_Kernel_obj(Compare_y_at_x_2, compare_y_at_x_2_object) typedef CGALi::Compare_distance_to_point Compare_distance_to_point_2; Compare_distance_to_point_2 compare_distance_to_point_2_object(const Point_2& p) const { return Compare_distance_to_point_2(p); } typedef CGAL ::p_Less_dist_to_point Less_distance_to_point_2; Less_distance_to_point_2 less_distance_to_point_2_object(const Point_2& p) const // XXX { return Less_distance_to_point_2(p); } typedef CGAL ::p_Less_dist_to_line_2p Less_signed_distance_to_line_2; Less_signed_distance_to_line_2 less_signed_distance_to_line_2_object(const Point_2& p, const Point_2& q) const // XXX XXX { return Less_signed_distance_to_line_2(p,q); } typedef CGAL ::p_Less_rotate_ccw Less_rotate_ccw_2; Less_rotate_ccw_2 less_rotate_ccw_2_object(const Point_2& p) const // XXX XXX { return Less_rotate_ccw_2(p); } typedef CGALi::Counterclockwise_in_between Counterclockwise_in_between_2; CGAL_Kernel_obj(Counterclockwise_in_between_2, counterclockwise_in_between_2_object) typedef CGAL ::p_Leftturn Leftturn_2; CGAL_Kernel_obj(Leftturn_2, leftturn_2_object) typedef CGAL ::p_Left_of_line_2p Left_of_line_2; Left_of_line_2 left_of_line_2_object(const Point_2& p, const Point_2& q) const // XXX XXX { return Left_of_line_2(p,q); } typedef CGALi::Collinear Collinear_2; typedef CGAL ::p_Orientation Orientation_2; typedef CGALi::Side_of_oriented_circle Side_of_oriented_circle_2; typedef CGALi::Side_of_bounded_circle Side_of_bounded_circle_2; typedef CGALi::Call_is_horizontal Is_horizontal_2; typedef CGALi::Call_is_vertical Is_vertical_2; typedef CGALi::Call_is_degenerate Is_degenerate_2; typedef CGALi::Call_has_on Has_on_2; typedef CGALi::Call_collinear_has_on Collinear_has_on_2; typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_2; typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_2; typedef CGALi::Call_has_on_boundary Has_on_boundary_2; typedef CGALi::Call_has_on_positive_side Has_on_positive_side_2; typedef CGALi::Call_has_on_negative_side Has_on_negative_side_2; typedef CGALi::Call_oriented_side Oriented_side_2; typedef CGALi::Are_ordered_along_line Are_ordered_along_line_2 ; typedef CGALi::Are_strictly_ordered_along_line Are_strictly_ordered_along_line_2; typedef CGALi::Collinear_are_ordered_along_line Collinear_are_ordered_along_line_2; typedef CGALi::Collinear_are_strictly_ordered_along_line Collinear_are_strictly_ordered_along_line_2; CGAL_Kernel_obj(Collinear_2, collinear_2_object) CGAL_Kernel_obj(Orientation_2, orientation_2_object) CGAL_Kernel_obj(Side_of_oriented_circle_2, side_of_oriented_circle_2_object) CGAL_Kernel_obj(Side_of_bounded_circle_2, side_of_bounded_circle_2_object) CGAL_Kernel_obj(Is_horizontal_2, is_horizontal_2_object) CGAL_Kernel_obj(Is_vertical_2, is_vertical_2_object) CGAL_Kernel_obj(Is_degenerate_2, is_degenerate_2_object) CGAL_Kernel_obj(Has_on_2, has_on_2_object) CGAL_Kernel_obj(Collinear_has_on_2, collinear_has_on_2_object) CGAL_Kernel_obj(Has_on_bounded_side_2, has_on_bounded_side_2_object) CGAL_Kernel_obj(Has_on_unbounded_side_2, has_on_unbounded_side_2_object) CGAL_Kernel_obj(Has_on_boundary_2, has_on_boundary_2_object) CGAL_Kernel_obj(Has_on_positive_side_2, has_on_positive_side_2_object) CGAL_Kernel_obj(Has_on_negative_side_2, has_on_negative_side_2_object) CGAL_Kernel_obj(Oriented_side_2, oriented_side_2_object) CGAL_Kernel_obj(Are_ordered_along_line_2, are_ordered_along_line_2_object) CGAL_Kernel_obj(Are_strictly_ordered_along_line_2, are_strictly_ordered_along_line_2_object) CGAL_Kernel_obj(Collinear_are_ordered_along_line_2, collinear_are_ordered_along_line_2_object) CGAL_Kernel_obj(Collinear_are_strictly_ordered_along_line_2, collinear_are_strictly_ordered_along_line_2_object) typedef CGALi::Construct Construct_point_3; typedef CGALi::Construct Construct_vector_3; typedef CGALi::Construct Construct_direction_3; typedef CGALi::Construct Construct_segment_3; typedef CGALi::Construct Construct_plane_3; typedef CGALi::Construct Construct_line_3; typedef CGALi::Construct Construct_ray_3; typedef CGALi::Construct Construct_sphere_3; typedef CGALi::Construct Construct_triangle_3; typedef CGALi::Construct Construct_tetrahedron_3; typedef CGALi::Construct Construct_iso_cuboid_3; typedef CGALi::Construct Construct_aff_transformation_3; CGAL_Kernel_obj(Construct_point_3, construct_point_3_object) CGAL_Kernel_obj(Construct_vector_3, construct_vector_3_object) CGAL_Kernel_obj(Construct_direction_3, construct_direction_3_object) CGAL_Kernel_obj(Construct_segment_3, construct_segment_3_object) CGAL_Kernel_obj(Construct_plane_3, construct_plane_3_object) CGAL_Kernel_obj(Construct_line_3, construct_line_3_object) CGAL_Kernel_obj(Construct_ray_3, construct_ray_3_object) CGAL_Kernel_obj(Construct_sphere_3, construct_sphere_3_object) CGAL_Kernel_obj(Construct_triangle_3, construct_triangle_3_object) CGAL_Kernel_obj(Construct_tetrahedron_3, construct_tetrahedron_object) CGAL_Kernel_obj(Construct_iso_cuboid_3, construct_iso_cuboid_3_object) CGAL_Kernel_obj(Construct_aff_transformation_3, construct_aff_transformation_3_object) typedef CGALi::Call_point_to_get Construct_point_on_3; typedef CGALi::Call_second_point_to_get Construct_second_point_on_3; typedef CGALi::Call_source_to_get Construct_source_point_3; typedef CGALi::Call_target_to_get Construct_target_point_3; typedef CGALi::Call_min_to_get Construct_min_point_3; typedef CGALi::Call_max_to_get Construct_max_point_3; typedef CGALi::Call_direction_to_get Construct_direction_of_line_3; typedef CGALi::Call_direction_to_get Construct_direction_of_ray_3; typedef CGALi::Call_supporting_line_to_get Construct_supporting_line_3; typedef CGALi::Call_perpendicular_plane_to_get Construct_perpendicular_plane_3; typedef CGALi::Call_perpendicular_line_to_get Construct_perpendicular_line_3; typedef CGALi::p_Midpoint Construct_midpoint_3; typedef CGALi::p_Circumcenter Construct_circumcenter_3; typedef CGALi::v_Cross_product Construct_cross_product_vector_3; typedef CGALi::Call_opposite_to_get Construct_opposite_segment_3; typedef CGALi::Call_opposite_to_get Construct_opposite_ray_3; typedef CGALi::Call_opposite_to_get Construct_opposite_line_3; typedef CGALi::Call_opposite_to_get Construct_opposite_plane_3; typedef CGALi::Call_supporting_plane_to_get Construct_supporting_plane_3; typedef CGALi::Call_transform Transform_3; typedef CGALi::Assign Assign_3; typedef CGALi::Intersect Intersect_3; typedef CGALi::Do_intersect Do_intersect_3; CGAL_Kernel_obj(Construct_point_on_3, construct_point_on_3_object) CGAL_Kernel_obj(Construct_second_point_on_3, construct_second_point_on_3_object) CGAL_Kernel_obj(Construct_source_point_3, construct_source_point_3_object) CGAL_Kernel_obj(Construct_target_point_3, construct_target_point_3_object) CGAL_Kernel_obj(Construct_min_point_3, construct_min_point_3_object) CGAL_Kernel_obj(Construct_max_point_3, construct_max_point_3_object) CGAL_Kernel_obj(Construct_direction_of_line_3, construct_direction_of_line_3_object) CGAL_Kernel_obj(Construct_direction_of_ray_3, construct_direction_of_ray_3_object) CGAL_Kernel_obj(Construct_supporting_line_3, construct_supporting_line_3_object) CGAL_Kernel_obj(Construct_perpendicular_plane_3, construct_perpendicular_plane_3_object) CGAL_Kernel_obj(Construct_perpendicular_line_3, construct_perpendicular_line_3_object) CGAL_Kernel_obj(Construct_midpoint_3, construct_midpoint_3_object) CGAL_Kernel_obj(Construct_circumcenter_3, construct_circumcenter_3_object) CGAL_Kernel_obj(Construct_cross_product_vector_3, construct_cross_product_vector_3_object) CGAL_Kernel_obj(Construct_opposite_segment_3, construct_opposite_segment_3_object) CGAL_Kernel_obj(Construct_opposite_ray_3, construct_opposite_ray_3_object) CGAL_Kernel_obj(Construct_opposite_line_3, construct_opposite_line_3_object) CGAL_Kernel_obj(Construct_opposite_plane_3, construct_opposite_plane_3_object) CGAL_Kernel_obj(Construct_supporting_plane_3, construct_supporting_plane_3_object) CGAL_Kernel_obj(Transform_3, transform_3_object) CGAL_Kernel_obj(Assign_3, assign_3_object) CGAL_Kernel_obj(Intersect_3, intersect_3_object) CGAL_Kernel_obj(Do_intersect_3, do_intersect_3_object) typedef CGALi::Call_squared_length_to_get Compute_squared_length_3; typedef CGALi::Call_squared_area_to_get Compute_squared_area_3; typedef CGALi::Call_volume_to_get Compute_volume_3; typedef CGALi::Equal Equal_3; typedef CGALi::Equal_x Equal_x_3; typedef CGALi::Equal_y Equal_y_3; typedef CGALi::Equal_z Equal_z_3; typedef CGALi::Equal_xy Equal_xy_3; typedef CGALi::Equal_xyz Equal_xyz_3; typedef CGALi::Less_x Less_x_3; typedef CGALi::Less_y Less_y_3; typedef CGALi::Less_z Less_z_3; typedef CGAL::p_Less_xy Less_xy_3; typedef CGALi::Less_xyz Less_xyz_3; typedef CGALi::Compare_x Compare_x_3; typedef CGALi::Compare_y Compare_y_3; typedef CGALi::Compare_z Compare_z_3; typedef CGALi::Compare_xy Compare_xy_3; typedef CGALi::Compare_xyz Compare_xyz_3; CGAL_Kernel_obj(Compute_squared_length_3, compute_squared_length_3_object) CGAL_Kernel_obj(Compute_squared_area_3, compute_squared_area_3_object) CGAL_Kernel_obj(Compute_volume_3, compute_volume_3_object) CGAL_Kernel_obj(Equal_3, equal_3_object) CGAL_Kernel_obj(Equal_x_3, equal_x_3_object) CGAL_Kernel_obj(Equal_y_3, equal_y_3_object) CGAL_Kernel_obj(Equal_z_3, equal_z_3_object) CGAL_Kernel_obj(Equal_xy_3, equal_xy_3_object) CGAL_Kernel_obj(Equal_xyz_3, equal_xyz_3_object) CGAL_Kernel_obj(Less_x_3, less_x_3_object) CGAL_Kernel_obj(Less_y_3, less_y_3_object) CGAL_Kernel_obj(Less_z_3, less_z_3_object) CGAL_Kernel_obj(Less_xy_3, less_xy_3_object) CGAL_Kernel_obj(Less_xyz_3, less_xyz_3_object) CGAL_Kernel_obj(Compare_x_3, compare_x_3_object) CGAL_Kernel_obj(Compare_y_3, compare_y_3_object) CGAL_Kernel_obj(Compare_z_3, compare_z_3_object) CGAL_Kernel_obj(Compare_xy_3, compare_xy_3_object) CGAL_Kernel_obj(Compare_xyz_3, compare_xyz_3_object) typedef CGAL ::p_Less_dist_to_point Less_distance_to_point_3; Less_distance_to_point_3 less_distance_to_point_3_object(const Point_3& p) const // XXX { return Less_distance_to_point_3(p); } typedef CGALi::Compare_distance_to_point Compare_distance_to_point_3; Compare_distance_to_point_3 compare_distance_to_point_3_object(const Point_3& p) const { return Compare_distance_to_point_3(p); } typedef CGALi::Collinear Collinear_3; typedef CGALi::Coplanar Coplanar_3 ; typedef CGALi::Coplanar_orientation Coplanar_orientation_3; typedef CGAL ::p_Orientation Orientation_3; typedef CGALi::Call_is_degenerate Is_degenerate_3; typedef CGALi::Call_has_on Has_on_3; typedef CGALi::Call_has_on_bounded_side Has_on_bounded_side_3; typedef CGALi::Call_has_on_unbounded_side Has_on_unbounded_side_3; typedef CGALi::Call_has_on_boundary Has_on_boundary_3; typedef CGALi::Call_has_on_positive_side Has_on_positive_side_3; typedef CGALi::Call_has_on_negative_side Has_on_negative_side_3; typedef CGALi::Call_oriented_side Oriented_side_3; typedef CGALi::Are_ordered_along_line Are_ordered_along_line_3; typedef CGALi::Are_strictly_ordered_along_line Are_strictly_ordered_along_line_3; typedef CGALi::Collinear_are_ordered_along_line Collinear_are_ordered_along_line_3; typedef CGALi::Collinear_are_strictly_ordered_along_line Collinear_are_strictly_ordered_along_line_3; typedef CGALi::Side_of_oriented_sphere Side_of_oriented_sphere_3; typedef CGALi::Side_of_bounded_sphere Side_of_bounded_sphere_3; CGAL_Kernel_obj(Collinear_3, collinear_3_object) CGAL_Kernel_obj(Coplanar_3, coplanar_3_object) CGAL_Kernel_obj(Coplanar_orientation_3, coplanar_orientation_3_object) CGAL_Kernel_obj(Orientation_3, orientation_3_object) CGAL_Kernel_obj(Is_degenerate_3, is_degenerate_3_object) CGAL_Kernel_obj(Has_on_3, has_on_3_object) CGAL_Kernel_obj(Has_on_bounded_side_3, has_on_bounded_side_3_object) CGAL_Kernel_obj(Has_on_unbounded_side_3, has_on_unbounded_side_3_object) CGAL_Kernel_obj(Has_on_boundary_3, has_on_boundary_3_object) CGAL_Kernel_obj(Has_on_positive_side_3, has_on_positive_side_3_object) CGAL_Kernel_obj(Has_on_negative_side_3, has_on_negative_side_3_object) CGAL_Kernel_obj(Oriented_side_3, oriented_side_3_object) CGAL_Kernel_obj(Are_ordered_along_line_3, are_ordered_along_line_3_object) CGAL_Kernel_obj(Are_strictly_ordered_along_line_3, are_strictly_ordered_along_line_3_object) CGAL_Kernel_obj(Collinear_are_ordered_along_line_3, collinear_are_ordered_along_line_3_object) CGAL_Kernel_obj(Collinear_are_strictly_ordered_along_line_3, collinear_are_strictly_ordered_along_line_3_object) CGAL_Kernel_obj(Side_of_oriented_sphere_3, side_of_oriented_sphere_3_object) CGAL_Kernel_obj(Side_of_bounded_sphere_3, side_of_bounded_sphere_3_object) typedef CGALi::Construct Construct_point_d; CGAL_Kernel_obj(Construct_point_d, construct_point_d_object) #undef CGAL_Kernel_obj