\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D and 3D Linear Geometry Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
Kernel Concept Reference
Concepts

## Definition

The concept of a kernel is defined by a set of requirements on the provision of certain types and access member functions to create objects of these types. The types are function object classes to be used within the algorithms and data structures of CGAL. This allows you to use any model of a kernel as a traits class in the CGAL algorithms and data structures, unless they require types beyond those provided by a kernel.

A kernel provides types, construction objects, and generalized predicates. The former replace constructors of the kernel classes and constructive procedures in the kernel. There are also function objects replacing operators, especially for equality testing.

Naming convention of constructions
All constructions which result type is a geometric object are prefixed by `Construct_`. If the result type is a number type, the name is prefixed by `Compute_`. When the result type is not determined, no prefix is used.

Has Models:

  `CGAL::Cartesian<FieldNumberType>`

  `CGAL::Homogeneous<RingNumberType>`

  `CGAL::Simple_cartesian<FieldNumberType>`

  `CGAL::Simple_homogeneous<RingNumberType>`

  `CGAL::Filtered_kernel<CK>`

  `CGAL::Exact_predicates_exact_constructions_kernel`

  `CGAL::Exact_predicates_exact_constructions_kernel_with_sqrt`

  `CGAL::Exact_predicates_inexact_constructions_kernel`

See Also
  `Kernel_d`
  `CGAL::Ambient_dimension`
  `CGAL::Feature_dimension`
  `CGAL::Kernel_traits`

Examples:
  Kernel_23/exact.cpp, Kernel_23/MyKernel.h, Kernel_23/points_and_segment.cpp, and Kernel_23/surprising.cpp.

## Types
The following types describe the return types of predicates. They typically map to `bool` and CGAL kernel enum types, except when an interval arithmetic number type is used such as within the filtering kernels, in which case it is `Uncertain<bool>` or similar.
typedef unspecified_type | FT
| a model of `FieldNumberType`
typedef unspecified_type | RT
| a model of `RingNumberType`
typedef unspecified_type | Boolean
| `bool` or `Uncertain<bool>`
typedef unspecified_type | Sign
| `CGAL::Sign` or `Uncertain<CGAL::Sign>`
typedef unspecified_type | Comparison_result
| `CGAL::Comparison_result` or `Uncertain<CGAL::Comparison_result>`
typedef unspecified_type | Orientation
| `CGAL::Orientation` or `Uncertain<CGAL::Orientation>`
typedef unspecified_type | Oriented_side
| `CGAL::Oriented_side` or `Uncertain<CGAL::Oriented_side>`
typedef unspecified_type | Bounded_side
| `CGAL::Bounded_side` or `Uncertain<CGAL::Bounded_side>`
typedef unspecified_type | Angle
| `CGAL::Angle` or `Uncertain<CGAL::Angle>`

## Constants
static const bool | Has_filtered_predicates
| A Boolean value indicating whether the predicates are filtered (as in `CGAL::Filtered_kernel`). More...

## Two-dimensional Coordinate Access
typedef unspecified_type | Cartesian_const_iterator_2
| a model of `Kernel::CartesianConstIterator_2`

## Two-dimensional Geometric Objects
typedef unspecified_type | Point_2
| a model of `Kernel::Point_2`
typedef unspecified_type | Vector_2
| a model of `Kernel::Vector_2`
typedef unspecified_type | Direction_2
| a model of `Kernel::Direction_2`
typedef unspecified_type | Line_2
| a model of `Kernel::Line_2`
typedef unspecified_type | Ray_2
| a model of `Kernel::Ray_2`
typedef unspecified_type | Segment_2
| a model of `Kernel::Segment_2`
typedef unspecified_type | Triangle_2
| a model of `Kernel::Triangle_2`
typedef unspecified_type | Iso_rectangle_2
| a model of `Kernel::IsoRectangle_2`
typedef unspecified_type | Circle_2
| a model of `Kernel::Circle_2`
typedef unspecified_type | Object_2
| a model of `Kernel::Object_2`

## Two-dimensional Constructions
typedef unspecified_type | Construct_point_2
| a model of `Kernel::ConstructPoint_2`
typedef unspecified_type | Construct_vector_2
| a model of `Kernel::ConstructVector_2`
typedef unspecified_type | Construct_direction_2
| a model of `Kernel::ConstructDirection_2`
typedef unspecified_type | Construct_segment_2
| a model of `Kernel::ConstructSegment_2`
typedef unspecified_type | Construct_line_2
| a model of `Kernel::ConstructLine_2`
typedef unspecified_type | Construct_ray_2
| a model of `Kernel::ConstructRay_2`
typedef unspecified_type | Construct_circle_2
| a model of `Kernel::ConstructCircle_2`
typedef unspecified_type | Construct_triangle_2
| a model of `Kernel::ConstructTriangle_2`
typedef unspecified_type | Construct_iso_rectangle_2
| a model of `Kernel::ConstructIsoRectangle_2`
typedef unspecified_type | Construct_object_2
| a model of `Kernel::ConstructObject_2`
typedef unspecified_type | Construct_scaled_vector_2
| a model of `Kernel::ConstructScaledVector_2`
typedef unspecified_type | Construct_difference_of_vectors_2
| a model of `Kernel::ConstructDifferenceOfVectors_2`
typedef unspecified_type | Construct_sum_of_vectors_2
| a model of `Kernel::ConstructSumOfVectors_2`
typedef unspecified_type | Construct_divided_vector_2
| a model of `Kernel::ConstructDividedVector_2`
typedef unspecified_type | Construct_translated_point_2
| a model of `Kernel::ConstructTranslatedPoint_2`
typedef unspecified_type | Construct_point_on_2
| a model of `Kernel::ConstructPointOn_2`
typedef unspecified_type | Construct_projected_point_2
| a model of `Kernel::ConstructProjectedPoint_2`
typedef unspecified_type | Construct_projected_xy_point_2
| a model of `Kernel::ConstructProjectedXYPoint_2`
typedef unspecified_type | Construct_second_point_2
| a model of `Kernel::ConstructSecondPoint_2` More...
typedef unspecified_type | Construct_cartesian_const_iterator_2
| a model of `Kernel::ConstructCartesianConstIterator_2`
typedef unspecified_type | Construct_vertex_2
| a model of `Kernel::ConstructVertex_2`
typedef unspecified_type | Construct_bbox_2
| a model of `Kernel::ConstructBbox_2`
typedef unspecified_type | Construct_perpendicular_vector_2
| a model of `Kernel::ConstructPerpendicularVector_2`
typedef unspecified_type | Construct_perpendicular_direction_2
| a model of `Kernel::ConstructPerpendicularDirection_2`
typedef unspecified_type | Construct_perpendicular_line_2
| a model of `Kernel::ConstructPerpendicularLine_2`
typedef unspecified_type | Construct_max_vertex_2
| a model of `Kernel::ConstructMaxVertex_2`
typedef unspecified_type | Construct_midpoint_2
| a model of `Kernel::ConstructMidpoint_2`
typedef unspecified_type | Construct_equidistant_line_3
| a model of `Kernel::ConstructEquidistantLine_3`
typedef unspecified_type | Construct_min_vertex_2
| a model of `Kernel::ConstructMinVertex_2`
typedef unspecified_type | Construct_center_2
| a model of `Kernel::ConstructCenter_2`
typedef unspecified_type | Construct_centroid_2
| a model of `Kernel::ConstructCentroid_2`
typedef unspecified_type | Construct_barycenter_2
| a model of `Kernel::ConstructBarycenter_2`
typedef unspecified_type | Construct_circumcenter_2
| a model of `Kernel::ConstructCircumcenter_2`
typedef unspecified_type | Construct_bisector_2
| a model of `Kernel::ConstructBisector_2`
typedef unspecified_type | Construct_radical_line_2
| a model of `Kernel::ConstructRadicalLine_2`
typedef unspecified_type | Construct_opposite_direction_2
| a model of `Kernel::ConstructOppositeDirection_2`
typedef unspecified_type | Construct_opposite_segment_2
| a model of `Kernel::ConstructOppositeSegment_2`
typedef unspecified_type | Construct_opposite_ray_2
| a model of `Kernel::ConstructOppositeRay_2`
typedef unspecified_type | Construct_opposite_line_2
| a model of `Kernel::ConstructOppositeLine_2`
typedef unspecified_type | Construct_opposite_triangle_2
| a model of `Kernel::ConstructOppositeTriangle_2`
typedef unspecified_type | Construct_opposite_circle_2
| a model of `Kernel::ConstructOppositeCircle_2`
typedef unspecified_type | Construct_opposite_vector_2
| a model of `Kernel::ConstructOppositeVector_2`
typedef unspecified_type | Construct_source_2
| a model of `Kernel::ConstructSource_2`
typedef unspecified_type | Construct_target_2
| a model of `Kernel::ConstructTarget_2`
typedef unspecified_type | Construct_max_vertex_2
| a model of `Kernel::ConstructMaxVertex_2`
typedef unspecified_type | Construct_min_vertex_2
| a model of `Kernel::ConstructMinVertex_2`
typedef unspecified_type | Intersect_2
| a model of `Kernel::Intersect_2`
typedef unspecified_type | Assign_2
| a model of `Kernel::Assign_2`
typedef unspecified_type | Compute_x_2
| a model of `Kernel::ComputeX_2`
typedef unspecified_type | Compute_y_2
| a model of `Kernel::ComputeY_2`
typedef unspecified_type | Compute_a_2
| a model of `Kernel::ComputeA_2`
typedef unspecified_type | Compute_b_2
| a model of `Kernel::ComputeB_2`
typedef unspecified_type | ComputeC_2
| a model of `Kernel::ComputeC_2`
typedef unspecified_type | Compute_dx_2
| a model of `Kernel::ComputeDx_2`
typedef unspecified_type | Compute_dy_2
| a model of `Kernel::ComputeDy_2`
typedef unspecified_type | Compute_hx_2
| a model of `Kernel::ComputeHx_2`
typedef unspecified_type | Compute_hy_2
| a model of `Kernel::ComputeHy_2`
typedef unspecified_type | Compute_hw_2
| a model of `Kernel::ComputeHw_2`
typedef unspecified_type | Compute_xmax_2
| a model of `Kernel::ComputeXmax_2`
typedef unspecified_type | Compute_xmin_2
| a model of `Kernel::ComputeXmin_2`
typedef unspecified_type | Compute_ymax_2
| a model of `Kernel::ComputeYmax_2`
typedef unspecified_type | Compute_ymin_2
| a model of `Kernel::ComputeYmin_2`
typedef unspecified_type | Compute_y_at_x_2
| a model of `Kernel::ComputeYAtX_2`
typedef unspecified_type | Compute_squared_distance_2
| a model of `Kernel::ComputeSquaredDistance_2`
typedef unspecified_type | Compute_squared_length_2
| a model of `Kernel::ComputeSquaredLength_2`
typedef unspecified_type | Compute_squared_radius_2
| a model of `Kernel::ComputeSquaredRadius_2`
typedef unspecified_type | Compute_area_2
| a model of `Kernel::ComputeArea_2`
typedef unspecified_type | Compute_determinant_2
| a model of `Kernel::ComputeDeterminant_2`
typedef unspecified_type | Compute_scalar_product_2
| a model of `Kernel::ComputeScalarProduct_2`

## Two-dimensional Generalized Predicates
typedef unspecified_type | Angle_2
| a model of `Kernel::Angle_2`
typedef unspecified_type | Equal_2
| a model of `Kernel::Equal_2`
typedef unspecified_type | Equal_x_2
| a model of `Kernel::EqualX_2`
typedef unspecified_type | Equal_y_2
| a model of `Kernel::EqualY_2`
typedef unspecified_type | Less_x_2
| a model of `Kernel::LessX_2`
typedef unspecified_type | Less_y_2
| a model of `Kernel::LessY_2`
typedef unspecified_type | Less_xy_2
| a model of `Kernel::LessXY_2`
typedef unspecified_type | Less_yx_2
| a model of `Kernel::LessYX_2`
typedef unspecified_type | Compare_x_2
| a model of `Kernel::CompareX_2`
typedef unspecified_type | Compare_x_at_y_2
| a model of `Kernel::CompareXAtY_2`
typedef unspecified_type | Compare_y_2
| a model of `Kernel::CompareY_2`
typedef unspecified_type | Compare_xy_2
| a model of `Kernel::CompareXY_2`
typedef unspecified_type | Compare_yx_2
| a model of `Kernel::CompareYX_2`
typedef unspecified_type | Compare_y_at_x_2
| a model of `Kernel::CompareYAtX_2`
typedef unspecified_type | Compare_distance_2
| a model of `Kernel::CompareDistance_2`
typedef unspecified_type | Compare_square_distance_2
| a model of `Kernel::CompareSquaredDistance_2`
typedef unspecified_type | Compare_angle_with_x_axis_2
| a model of `Kernel::CompareAngleWithXAxis_2`
typedef unspecified_type | Compare_slope_2
| a model of `Kernel::CompareSlope_2`
typedef unspecified_type | Less_distance_to_point_2
| a model of `Kernel::LessDistanceToPoint_2`
typedef unspecified_type | Less_signed_distance_to_line_2
| a model of `Kernel::LessSignedDistanceToLine_2`
typedef unspecified_type | Less_rotate_ccw_2
| a model of `Kernel::LessRotateCCW_2`
typedef unspecified_type | Left_turn_2
| a model of `Kernel::LeftTurn_2`
typedef unspecified_type | Collinear_2
| a model of `Kernel::Collinear_2`
typedef unspecified_type | Orientation_2
| a model of `Kernel::Orientation_2`
typedef unspecified_type | Side_of_oriented_circle_2
| a model of `Kernel::SideOfOrientedCircle_2`
typedef unspecified_type | Side_of_bounded_circle_2
| a model of `Kernel::SideOfBoundedCircle_2`
typedef unspecified_type | Is_horizontal_2
| a model of `Kernel::IsHorizontal_2`
typedef unspecified_type | Is_vertical_2
| a model of `Kernel::IsVertical_2`
typedef unspecified_type | Is_degenerate_2
| a model of `Kernel::IsDegenerate_2`
typedef unspecified_type | Has_on_2
| a model of `Kernel::HasOn_2`
typedef unspecified_type | Collinear_has_on_2
| a model of `Kernel::CollinearHasOn_2`
typedef unspecified_type | Has_on_bounded_side_2
| a model of `Kernel::HasOnBoundedSide_2`
typedef unspecified_type | Has_on_unbounded_side_2
| a model of `Kernel::HasOnUnboundedSide_2`
typedef unspecified_type | Has_on_boundary_2
| a model of `Kernel::HasOnBoundary_2`
typedef unspecified_type | Has_on_positive_side_2
| a model of `Kernel::HasOnPositiveSide_2`
typedef unspecified_type | Has_on_negative_side_2
| a model of `Kernel::HasOnNegativeSide_2`
typedef unspecified_type | Oriented_side_2
| a model of `Kernel::OrientedSide_2`
typedef unspecified_type | Bounded_side_2
| a model of `Kernel::BoundedSide_2`
typedef unspecified_type | Are_parallel_2
| a model of `Kernel::AreParallel_2`
typedef unspecified_type | Are_ordered_along_line_2
| a model of `Kernel::AreOrderedAlongLine_2`
typedef unspecified_type | Are_strictly_ordered_along_line_2
| a model of `Kernel::AreStrictlyOrderedAlongLine_2`
typedef unspecified_type | Collinear_are_ordered_along_line_2
| a model of `Kernel::CollinearAreOrderedAlongLine_2`
typedef unspecified_type | Collinear_are_strictly_ordered_along_line_2
| a model of `Kernel::CollinearAreStrictlyOrderedAlongLine_2`
typedef unspecified_type | Counterclockwise_in_between_2
| a model of `Kernel::CounterclockwiseInBetween_2`
typedef unspecified_type | Do_intersect_2
| a model of `Kernel::DoIntersect_2`

## Three-dimensional Coordinate Access
typedef unspecified_type | Cartesian_const_iterator_3
| a model of `Kernel::CartesianConstIterator_3`

## Three-dimensional Geometric Objects
typedef unspecified_type | Point_3
| a model of `Kernel::Point_3`
typedef unspecified_type | Vector_3
| a model of `Kernel::Vector_3`
typedef unspecified_type | Direction_3
| a model of `Kernel::Direction_3`
typedef unspecified_type | Iso_cuboid_3
| a model of `Kernel::IsoCuboid_3`
typedef unspecified_type | Line_3
| a model of `Kernel::Line_3`
typedef unspecified_type | Ray_3
| a model of `Kernel::Ray_3`
typedef unspecified_type | Circle_3
| a model of `Kernel::Circle_3`
typedef unspecified_type | Sphere_3
| a model of `Kernel::Sphere_3`
typedef unspecified_type | Segment_3
| a model of `Kernel::Segment_3`
typedef unspecified_type | Plane_3
| a model of `Kernel::Plane_3`
typedef unspecified_type | Triangle_3
| a model of `Kernel::Triangle_3`
typedef unspecified_type | Tetrahedron_3
| a model of `Kernel::Tetrahedron_3`
typedef unspecified_type | Object_3
| a model of `Kernel::Object_3`

## Three-dimensional Constructions
typedef unspecified_type | Construct_point_3
| a model of `Kernel::ConstructPoint_3`
typedef unspecified_type | Construct_vector_3
| a model of `Kernel::ConstructVector_3`
typedef unspecified_type | Construct_direction_3
| a model of `Kernel::ConstructDirection_3`
typedef unspecified_type | Construct_plane_3
| a model of `Kernel::ConstructPlane_3`
typedef unspecified_type | Construct_iso_cuboid_3
| a model of `Kernel::ConstructIsoCuboid_3`
typedef unspecified_type | Construct_line_3
| a model of `Kernel::ConstructLine_3`
typedef unspecified_type | Construct_ray_3
| a model of `Kernel::ConstructRay_3`
typedef unspecified_type | Construct_sphere_3
| a model of `Kernel::ConstructSphere_3`
typedef unspecified_type | Construct_segment_3
| a model of `Kernel::ConstructSegment_3`
typedef unspecified_type | Construct_triangle_3
| a model of `Kernel::ConstructTriangle_3`
typedef unspecified_type | Construct_tetrahedron_3
| a model of `Kernel::ConstructTetrahedron_3`
typedef unspecified_type | Construct_circle_3
| a model of `Kernel::ConstructCircle_3`
typedef unspecified_type | Construct_object_3
| a model of `Kernel::ConstructObject_3`
typedef unspecified_type | Construct_scaled_vector_3
| a model of `Kernel::ConstructScaledVector_3`
typedef unspecified_type | Construct_translated_point_3
| a model of `Kernel::ConstructTranslatedPoint_3`
typedef unspecified_type | Construct_point_on_3
| a model of `Kernel::ConstructPointOn_3`
typedef unspecified_type | Construct_projected_point_3
| a model of `Kernel::ConstructProjectedPoint_3`
typedef unspecified_type | Construct_lifted_point_3
| a model of `Kernel::ConstructLiftedPoint_3`
typedef unspecified_type | Construct_cartesian_const_iterator_3
| a model of `Kernel::ConstructCartesianConstIterator_3`
typedef unspecified_type | Construct_vertex_3
| a model of `Kernel::ConstructVertex_3`
typedef unspecified_type | Construct_source_3
| a model of `Kernel::ConstructSource_3`
typedef unspecified_type | Construct_target_3
| a model of `Kernel::ConstructTarget_3`
typedef unspecified_type | Construct_max_vertex_3
| a model of `Kernel::ConstructMaxVertex_3`
typedef unspecified_type | Construct_min_vertex_3
| a model of `Kernel::ConstructMinVertex_3`
typedef unspecified_type | Construct_bbox_3
| a model of `Kernel::ConstructBbox_3`
typedef unspecified_type | Construct_supporting_plane_3
| a model of `Kernel::ConstructSupportingPlane_3`
typedef unspecified_type | Construct_orthogonal_vector_3
| a model of `Kernel::ConstructOrthogonalVector_3`
typedef unspecified_type | Construct_base_vector_3
| a model of `Kernel::ConstructBaseVector_3`
typedef unspecified_type | Construct_difference_of_vectors_3
| a model of `Kernel::ConstructDifferenceOfVectors_3`
typedef unspecified_type | Construct_sum_of_vectors_3
| a model of `Kernel::ConstructSumOfVectors_3`
typedef unspecified_type | Construct_divided_vector_3
| a model of `Kernel::ConstructDividedVector_3`
typedef unspecified_type | Construct_normal_3
| a model of `Kernel::ConstructNormal_3`
typedef unspecified_type | Construct_perpendicular_plane_3
| a model of `Kernel::ConstructPerpendicularPlane_3`
typedef unspecified_type | Construct_radical_plane_3
| a model of `Kernel::ConstructRadicalPlane_3`
typedef unspecified_type | Construct_perpendicular_line_3
| a model of `Kernel::ConstructPerpendicularLine_3`
typedef unspecified_type | Construct_midpoint_3
| a model of `Kernel::ConstructMidpoint_3`
typedef unspecified_type | Construct_center_3
| a model of `Kernel::ConstructCenter_3`
typedef unspecified_type | Construct_centroid_3
| a model of `Kernel::ConstructCentroid_3`
typedef unspecified_type | Construct_circumcenter_3
| a model of `Kernel::ConstructCircumcenter_3`
typedef unspecified_type | Construct_bisector_3
| a model of `Kernel::ConstructBisector_3`
typedef unspecified_type | Construct_cross_product_vector_3
| a model of `Kernel::ConstructCrossProductVector_3`
typedef unspecified_type | Construct_barycenter_3
| a model of `Kernel::ConstructBarycenter_3`
typedef unspecified_type | Construct_second_point_3
| a model of `Kernel::ConstructSecondPoint_3` More...
typedef unspecified_type | Construct_opposite_direction_3
| a model of `Kernel::ConstructOppositeDirection_3`
typedef unspecified_type | Construct_opposite_segment_3
| a model of `Kernel::ConstructOppositeSegment_3`
typedef unspecified_type | Construct_opposite_ray_3
| a model of `Kernel::ConstructOppositeRay_3`
typedef unspecified_type | Construct_opposite_line_3
| a model of `Kernel::ConstructOppositeLine_3`
typedef unspecified_type | Construct_opposite_plane_3
| a model of `Kernel::ConstructOppositePlane_3`
typedef unspecified_type | Construct_opposite_sphere_3
| a model of `Kernel::ConstructOppositeSphere_3`
typedef unspecified_type | Construct_opposite_vector_3
| a model of `Kernel::ConstructOppositeVector_3`
typedef unspecified_type | Intersect_3
| a model of `Kernel::Intersect_3`
typedef unspecified_type | Assign_3
| a model of `Kernel::Assign_3`
typedef unspecified_type | Compute_x_3
| a model of `Kernel::ComputeX_3`
typedef unspecified_type | Compute_y_3
| a model of `Kernel::ComputeY_3`
typedef unspecified_type | Compute_z_3
| a model of `Kernel::ComputeZ_3`
typedef unspecified_type | Compute_a_3
| a model of `Kernel::ComputeA_3`
typedef unspecified_type | Compute_b_3
| a model of `Kernel::ComputeB_3`
typedef unspecified_type | Compute_c_3
| a model of `Kernel::ComputeC_3`
typedef unspecified_type | Compute_d_3
| a model of `Kernel::ComputeD_3`
typedef unspecified_type | Compute_hx_3
| a model of `Kernel::ComputeHx_3`
typedef unspecified_type | Compute_hy_3
| a model of `Kernel::ComputeHy_3`
typedef unspecified_type | Compute_hz_3
| a model of `Kernel::ComputeHz_3`
typedef unspecified_type | Compute_hw_3
| a model of `Kernel::ComputeHw_3`
typedef unspecified_type | Compute_dx_3
| a model of `Kernel::ComputeDx_3`
typedef unspecified_type | Compute_dy_3
| a model of `Kernel::ComputeDy_3`
typedef unspecified_type | Compute_dz_3
| a model of `Kernel::ComputeDz_3`
typedef unspecified_type | Compute_xmax_3
| a model of `Kernel::ComputeXmax_3`
typedef unspecified_type | Compute_xmin_3
| a model of `Kernel::ComputeXmin_3`
typedef unspecified_type | Compute_ymax_3
| a model of `Kernel::ComputeYmax_3`
typedef unspecified_type | Compute_ymin_3
| a model of `Kernel::ComputeYmin_3`
typedef unspecified_type | Compute_zmax_3
| a model of `Kernel::ComputeZmax_3`
typedef unspecified_type | Compute_zmin_3
| a model of `Kernel::ComputeZmin_3`
typedef unspecified_type | Compute_area_3
| a model of `Kernel::ComputeArea_3`
typedef unspecified_type | Compute_squared_area_3
| a model of `Kernel::ComputeSquaredArea_3`
typedef unspecified_type | Compute_area_divided_by_pi_3
| a model of `Kernel::ComputeAreaDividedByPi_3`
typedef unspecified_type | Compute_approximate_area_3
| a model of `Kernel::ComputeApproximateArea_3`
typedef unspecified_type | Compute_determinant_3
| a model of `Kernel::ComputeDeterminant_3`
typedef unspecified_type | Compute_scalar_product_3
| a model of `Kernel::ComputeScalarProduct_3`
typedef unspecified_type | Compute_squared_distance_3
| a model of `Kernel::ComputeSquaredDistance_3`
typedef unspecified_type | Compute_squared_length_3
| a model of `Kernel::ComputeSquaredLength_3`
typedef unspecified_type | Compute_squared_length_divided_by_pi_square_3
| a model of `Kernel::ComputeSquaredLengthDividedByPiSquare_3`
typedef unspecified_type | Compute_approximate_squared_length_3
| a model of `Kernel::ComputeApproximateSquaredLength_3`
typedef unspecified_type | Compute_squared_radius_3
| a model of `Kernel::ComputeSquaredRadius_3`
typedef unspecified_type | Compute_volume_3
| a model of `Kernel::ComputeVolume_3`

## Three-dimensional Generalized Predicates
typedef unspecified_type | Angle_3
| a model of `Kernel::Angle_3`
typedef unspecified_type | Equal_3
| a model of `Kernel::Equal_3`
typedef unspecified_type | Equal_x_3
| a model of `Kernel::EqualX_3`
typedef unspecified_type | Equal_y_3
| a model of `Kernel::EqualY_3`
typedef unspecified_type | Equal_z_3
| a model of `Kernel::EqualZ_3`
typedef unspecified_type | Equal_xy_3
| a model of `Kernel::EqualXY_3`
typedef unspecified_type | Less_x_3
| a model of `Kernel::LessX_3`
typedef unspecified_type | Less_y_3
| a model of `Kernel::LessY_3`
typedef unspecified_type | Less_z_3
| a model of `Kernel::LessZ_3`
typedef unspecified_type | Less_xy_3
| a model of `Kernel::LessXY_3`
typedef unspecified_type | Less_xyz_3
| a model of `Kernel::LessXYZ_3`
typedef unspecified_type | Compare_x_3
| a model of `Kernel::CompareX_3`
typedef unspecified_type | Compare_y_3
| a model of `Kernel::CompareY_3`
typedef unspecified_type | Compare_z_3
| a model of `Kernel::CompareZ_3`
typedef unspecified_type | Compare_xy_3
| a model of `Kernel::CompareXY_3`
typedef unspecified_type | Compare_xyz_3
| a model of `Kernel::CompareXYZ_3`
typedef unspecified_type | Compare_squared_distance_3
| a model of `Kernel::CompareSquaredDistance_3`
typedef unspecified_type | Less_signed_distance_to_plane_3
| a model of `Kernel::LessSignedDistanceToPlane_3`
typedef unspecified_type | Less_distance_to_point_3
| a model of `Kernel::LessDistanceToPoint_3`
typedef unspecified_type | Compare_dihedral_angle_3
| a model of `Kernel::CompareDihedralAngle_3`
typedef unspecified_type | Compare_distance_3
| a model of `Kernel::CompareDistance_3`
typedef unspecified_type | Collinear_3
| a model of `Kernel::Collinear_3`
typedef unspecified_type | Coplanar_3
| a model of `Kernel::Coplanar_3`
typedef unspecified_type | Orientation_3
| a model of `Kernel::Orientation_3`
typedef unspecified_type | Coplanar_orientation_3
| a model of `Kernel::CoplanarOrientation_3`
typedef unspecified_type | Coplanar_side_of_bounded_circle_3
| a model of `Kernel::CoplanarSideOfBoundedCircle_3`
typedef unspecified_type | Side_of_oriented_sphere_3
| a model of `Kernel::SideOfOrientedSphere_3`
typedef unspecified_type | Side_of_bounded_sphere_3
| a model of `Kernel::SideOfBoundedSphere_3`
typedef unspecified_type | Is_degenerate_3
| a model of `Kernel::IsDegenerate_3`
typedef unspecified_type | Has_on_3
| a model of `Kernel::HasOn_3`
typedef unspecified_type | Has_on_bounded_side_3
| a model of `Kernel::HasOnBoundedSide_3`
typedef unspecified_type | Has_on_unbounded_side_3
| a model of `Kernel::HasOnUnboundedSide_3`
typedef unspecified_type | Has_on_boundary_3
| a model of `Kernel::HasOnBoundary_3`
typedef unspecified_type | Has_on_positive_side_3
| a model of `Kernel::HasOnPositiveSide_3`
typedef unspecified_type | Has_on_negative_side_3
| a model of `Kernel::HasOnNegativeSide_3`
typedef unspecified_type | Oriented_side_3
| a model of `Kernel::OrientedSide_3`
typedef unspecified_type | Bounded_side_3
| a model of `Kernel::BoundedSide_3`
typedef unspecified_type | Are_parallel_3
| a model of `Kernel::AreParallel_3`
typedef unspecified_type | Are_ordered_along_line_3
| a model of `Kernel::AreOrderedAlongLine_3`
typedef unspecified_type | Are_strictly_ordered_along_line_3
| a model of `Kernel::AreStrictlyOrderedAlongLine_3`
typedef unspecified_type | Collinear_are_ordered_along_line_3
| a model of `Kernel::CollinearAreOrderedAlongLine_3`
typedef unspecified_type | Collinear_are_strictly_ordered_along_line_3
| a model of `Kernel::CollinearAreStrictlyOrderedAlongLine_3`
typedef unspecified_type | Do_intersect_3
| a model of `Kernel::DoIntersect_3`

## Operations
For each of the function objects above, there must exist a member function that requires no arguments and returns an instance of that function object. The name of the member function is the uncapitalized name of the type returned with the suffix `_object` appended. For example, for the function object `Kernel::Construct_vector_2` the following member function must exist:
Kernel::Construct_vector_2 | construct_vector_2_object () const

## Member Typedef Documentation

typedef unspecified_type Kernel::Construct_second_point_2

a model of `Kernel::ConstructSecondPoint_2`

typedef unspecified_type Kernel::Construct_second_point_3

a model of `Kernel::ConstructSecondPoint_3`

## Member Data Documentation

const bool Kernel::Has_filtered_predicates
| static

A Boolean value indicating whether the predicates are filtered (as in `CGAL::Filtered_kernel`).

This helps propagating such decisions to traits classes which are built on top of a kernel, so that they can decide to filter their own predicates or not.