| CGAL 4.4 - 2D and 3D Linear Geometry Kernel | 
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.
CGAL::Cartesian<FieldNumberType> 
CGAL::Homogeneous<RingNumberType> 
CGAL::Simple_cartesian<FieldNumberType> 
CGAL::Simple_homogeneous<RingNumberType> 
CGAL::Exact_predicates_exact_constructions_kernel 
Kernel::ConstructUnitNormal_3 as no model in the concept 
Kernel::CompareSquaredRadius_3 as no model in the concept 
| 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_2More... | |
| Two-dimensional Geometric Objects | |
| typedef unspecified_type | Point_2 | 
| a model of Kernel::Point_2More... | |
| typedef unspecified_type | Vector_2 | 
| a model of Kernel::Vector_2More... | |
| typedef unspecified_type | Direction_2 | 
| a model of Kernel::Direction_2More... | |
| typedef unspecified_type | Line_2 | 
| a model of Kernel::Line_2More... | |
| typedef unspecified_type | Ray_2 | 
| a model of Kernel::Ray_2More... | |
| typedef unspecified_type | Segment_2 | 
| a model of Kernel::Segment_2More... | |
| typedef unspecified_type | Triangle_2 | 
| a model of Kernel::Triangle_2More... | |
| typedef unspecified_type | Iso_rectangle_2 | 
| a model of Kernel::IsoRectangle_2More... | |
| typedef unspecified_type | Circle_2 | 
| a model of Kernel::Circle_2More... | |
| typedef unspecified_type | Object_2 | 
| a model of Kernel::Object_2More... | |
| Three-dimensional Coordinate Access | |
| typedef unspecified_type | Cartesian_const_iterator_3 | 
| a model of Kernel::CartesianConstIterator_3More... | |
| Three-dimensional Geometric Objects | |
| typedef unspecified_type | Point_3 | 
| a model of Kernel::Point_3More... | |
| typedef unspecified_type | Vector_3 | 
| a model of Kernel::Vector_3More... | |
| typedef unspecified_type | Direction_3 | 
| a model of Kernel::Direction_3More... | |
| typedef unspecified_type | Iso_cuboid_3 | 
| a model of Kernel::IsoCuboid_3More... | |
| typedef unspecified_type | Line_3 | 
| a model of Kernel::Line_3More... | |
| typedef unspecified_type | Ray_3 | 
| a model of Kernel::Ray_3More... | |
| typedef unspecified_type | Circle_3 | 
| a model of Kernel::Circle_3More... | |
| typedef unspecified_type | Sphere_3 | 
| a model of Kernel::Sphere_3More... | |
| typedef unspecified_type | Segment_3 | 
| a model of Kernel::Segment_3More... | |
| typedef unspecified_type | Plane_3 | 
| a model of Kernel::Plane_3More... | |
| typedef unspecified_type | Triangle_3 | 
| a model of Kernel::Triangle_3More... | |
| typedef unspecified_type | Tetrahedron_3 | 
| a model of Kernel::Tetrahedron_3More... | |
| typedef unspecified_type | Object_3 | 
| a model of Kernel::Object_3More... | |
| 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  | |
| Kernel::Construct_vector_2 | construct_vector_2_object () const | 
| typedef unspecified_type Kernel::Angle | 
CGAL::Angle or Uncertain<CGAL::Angle> 
| typedef unspecified_type Kernel::Angle_2 | 
a model of Kernel::Angle_2 
| typedef unspecified_type Kernel::Angle_3 | 
a model of Kernel::Angle_3 
a model of Kernel::AreOrderedAlongLine_2 
a model of Kernel::AreOrderedAlongLine_3 
a model of Kernel::AreParallel_2 
a model of Kernel::AreParallel_3 
a model of Kernel::AreStrictlyOrderedAlongLine_2 
a model of Kernel::AreStrictlyOrderedAlongLine_3 
| typedef unspecified_type Kernel::Assign_2 | 
a model of Kernel::Assign_2 
| typedef unspecified_type Kernel::Assign_3 | 
a model of Kernel::Assign_3 
| typedef unspecified_type Kernel::Boolean | 
bool or Uncertain<bool> 
| typedef unspecified_type Kernel::Bounded_side | 
CGAL::Bounded_side or Uncertain<CGAL::Bounded_side> 
a model of Kernel::BoundedSide_2 
a model of Kernel::BoundedSide_3 
a model of Kernel::CartesianConstIterator_2 
a model of Kernel::CartesianConstIterator_3 
| typedef unspecified_type Kernel::Circle_2 | 
a model of Kernel::Circle_2 
| typedef unspecified_type Kernel::Circle_3 | 
a model of Kernel::Circle_3 
| typedef unspecified_type Kernel::Collinear_2 | 
a model of Kernel::Collinear_2 
| typedef unspecified_type Kernel::Collinear_3 | 
a model of Kernel::Collinear_3 
a model of Kernel::CollinearAreOrderedAlongLine_2 
a model of Kernel::CollinearAreOrderedAlongLine_3 
a model of Kernel::CollinearHasOn_2 
a model of Kernel::CompareAngleWithXAxis_2 
a model of Kernel::CompareDihedralAngle_3 
a model of Kernel::CompareDistance_2 
a model of Kernel::CompareDistance_3 
a model of Kernel::CompareSlope_2 
a model of Kernel::CompareSquaredDistance_2 
a model of Kernel::CompareSquaredDistance_3 
| typedef unspecified_type Kernel::Compare_x_2 | 
a model of Kernel::CompareX_2 
| typedef unspecified_type Kernel::Compare_x_3 | 
a model of Kernel::CompareX_3 
a model of Kernel::CompareXAtY_2 
| typedef unspecified_type Kernel::Compare_xy_2 | 
a model of Kernel::CompareXY_2 
| typedef unspecified_type Kernel::Compare_xy_3 | 
a model of Kernel::CompareXY_3 
a model of Kernel::CompareXYZ_3 
| typedef unspecified_type Kernel::Compare_y_2 | 
a model of Kernel::CompareY_2 
| typedef unspecified_type Kernel::Compare_y_3 | 
a model of Kernel::CompareY_3 
a model of Kernel::CompareYAtX_2 
| typedef unspecified_type Kernel::Compare_yx_2 | 
a model of Kernel::CompareYX_2 
| typedef unspecified_type Kernel::Compare_z_3 | 
a model of Kernel::CompareZ_3 
CGAL::Comparison_result or Uncertain<CGAL::Comparison_result> 
| typedef unspecified_type Kernel::Compute_a_2 | 
a model of Kernel::ComputeA_2 
| typedef unspecified_type Kernel::Compute_a_3 | 
a model of Kernel::ComputeA_3 
a model of Kernel::ComputeApproximateArea_3 
a model of Kernel::ComputeApproximateSquaredLength_3 
a model of Kernel::ComputeArea_2 
a model of Kernel::ComputeArea_3 
a model of Kernel::ComputeAreaDividedByPi_3 
| typedef unspecified_type Kernel::Compute_b_2 | 
a model of Kernel::ComputeB_2 
| typedef unspecified_type Kernel::Compute_b_3 | 
a model of Kernel::ComputeB_3 
| typedef unspecified_type Kernel::Compute_c_3 | 
a model of Kernel::ComputeC_3 
| typedef unspecified_type Kernel::Compute_d_3 | 
a model of Kernel::ComputeD_3 
a model of Kernel::ComputeDeterminant_2 
a model of Kernel::ComputeDeterminant_3 
| typedef unspecified_type Kernel::Compute_dx_2 | 
a model of Kernel::ComputeDx_2 
| typedef unspecified_type Kernel::Compute_dx_3 | 
a model of Kernel::ComputeDx_3 
| typedef unspecified_type Kernel::Compute_dy_2 | 
a model of Kernel::ComputeDy_2 
| typedef unspecified_type Kernel::Compute_dy_3 | 
a model of Kernel::ComputeDy_3 
| typedef unspecified_type Kernel::Compute_dz_3 | 
a model of Kernel::ComputeDz_3 
| typedef unspecified_type Kernel::Compute_hw_2 | 
a model of Kernel::ComputeHw_2 
| typedef unspecified_type Kernel::Compute_hw_3 | 
a model of Kernel::ComputeHw_3 
| typedef unspecified_type Kernel::Compute_hx_2 | 
a model of Kernel::ComputeHx_2 
| typedef unspecified_type Kernel::Compute_hx_3 | 
a model of Kernel::ComputeHx_3 
| typedef unspecified_type Kernel::Compute_hy_2 | 
a model of Kernel::ComputeHy_2 
| typedef unspecified_type Kernel::Compute_hy_3 | 
a model of Kernel::ComputeHy_3 
| typedef unspecified_type Kernel::Compute_hz_3 | 
a model of Kernel::ComputeHz_3 
a model of Kernel::ComputeScalarProduct_2 
a model of Kernel::ComputeScalarProduct_3 
a model of Kernel::ComputeSquaredArea_3 
a model of Kernel::ComputeSquaredDistance_2 
a model of Kernel::ComputeSquaredDistance_3 
a model of Kernel::ComputeSquaredLength_2 
a model of Kernel::ComputeSquaredLength_3 
a model of Kernel::ComputeSquaredRadius_2 
a model of Kernel::ComputeSquaredRadius_3 
a model of Kernel::ComputeVolume_3 
| typedef unspecified_type Kernel::Compute_x_2 | 
a model of Kernel::ComputeX_2 
| typedef unspecified_type Kernel::Compute_x_3 | 
a model of Kernel::ComputeX_3 
a model of Kernel::ComputeXmax_2 
a model of Kernel::ComputeXmax_3 
a model of Kernel::ComputeXmin_2 
a model of Kernel::ComputeXmin_3 
| typedef unspecified_type Kernel::Compute_y_2 | 
a model of Kernel::ComputeY_2 
| typedef unspecified_type Kernel::Compute_y_3 | 
a model of Kernel::ComputeY_3 
a model of Kernel::ComputeYAtX_2 
a model of Kernel::ComputeYmax_2 
a model of Kernel::ComputeYmax_3 
a model of Kernel::ComputeYmin_2 
a model of Kernel::ComputeYmin_3 
| typedef unspecified_type Kernel::Compute_z_3 | 
a model of Kernel::ComputeZ_3 
a model of Kernel::ComputeZmax_3 
a model of Kernel::ComputeZmin_3 
| typedef unspecified_type Kernel::ComputeC_2 | 
a model of Kernel::ComputeC_2 
a model of Kernel::ConstructBarycenter_2 
a model of Kernel::ConstructBarycenter_3 
a model of Kernel::ConstructBaseVector_3 
a model of Kernel::ConstructBbox_2 
a model of Kernel::ConstructBbox_3 
a model of Kernel::ConstructBisector_2 
a model of Kernel::ConstructBisector_3 
a model of Kernel::ConstructCartesianConstIterator_2 
a model of Kernel::ConstructCartesianConstIterator_3 
a model of Kernel::ConstructCenter_2 
a model of Kernel::ConstructCenter_3 
a model of Kernel::ConstructCentroid_2 
a model of Kernel::ConstructCentroid_3 
a model of Kernel::ConstructCircle_2 
a model of Kernel::ConstructCircle_3 
a model of Kernel::ConstructCircumcenter_2 
a model of Kernel::ConstructCircumcenter_3 
a model of Kernel::ConstructCrossProductVector_3 
a model of Kernel::ConstructDifferenceOfVectors_2 
a model of Kernel::ConstructDifferenceOfVectors_3 
a model of Kernel::ConstructDirection_2 
a model of Kernel::ConstructDirection_3 
a model of Kernel::ConstructDividedVector_2 
a model of Kernel::ConstructDividedVector_3 
a model of Kernel::ConstructEquidistantLine_3 
a model of Kernel::ConstructIsoCuboid_3 
a model of Kernel::ConstructIsoRectangle_2 
a model of Kernel::ConstructLiftedPoint_3 
a model of Kernel::ConstructLine_2 
a model of Kernel::ConstructLine_3 
a model of Kernel::ConstructMaxVertex_2 
a model of Kernel::ConstructMaxVertex_2 
a model of Kernel::ConstructMaxVertex_3 
a model of Kernel::ConstructMidpoint_2 
a model of Kernel::ConstructMidpoint_3 
a model of Kernel::ConstructMinVertex_2 
a model of Kernel::ConstructMinVertex_2 
a model of Kernel::ConstructMinVertex_3 
a model of Kernel::ConstructNormal_3 
a model of Kernel::ConstructObject_2 
a model of Kernel::ConstructObject_3 
a model of Kernel::ConstructOppositeCircle_2 
a model of Kernel::ConstructOppositeDirection_2 
a model of Kernel::ConstructOppositeDirection_3 
a model of Kernel::ConstructOppositeLine_2 
a model of Kernel::ConstructOppositeLine_3 
a model of Kernel::ConstructOppositePlane_3 
a model of Kernel::ConstructOppositeRay_2 
a model of Kernel::ConstructOppositeRay_3 
a model of Kernel::ConstructOppositeSegment_2 
a model of Kernel::ConstructOppositeSegment_3 
a model of Kernel::ConstructOppositeSphere_3 
a model of Kernel::ConstructOppositeTriangle_2 
a model of Kernel::ConstructOppositeVector_2 
a model of Kernel::ConstructOppositeVector_3 
a model of Kernel::ConstructOrthogonalVector_3 
a model of Kernel::ConstructPerpendicularDirection_2 
a model of Kernel::ConstructPerpendicularLine_2 
a model of Kernel::ConstructPerpendicularLine_3 
a model of Kernel::ConstructPerpendicularPlane_3 
a model of Kernel::ConstructPerpendicularVector_2 
a model of Kernel::ConstructPlane_3 
a model of Kernel::ConstructPoint_2 
a model of Kernel::ConstructPoint_3 
a model of Kernel::ConstructPointOn_2 
a model of Kernel::ConstructPointOn_3 
a model of Kernel::ConstructProjectedPoint_2 
a model of Kernel::ConstructProjectedPoint_3 
a model of Kernel::ConstructProjectedXYPoint_2 
a model of Kernel::ConstructRadicalLine_2 
a model of Kernel::ConstructRadicalPlane_3 
a model of Kernel::ConstructRay_2 
a model of Kernel::ConstructRay_3 
a model of Kernel::ConstructScaledVector_2 
a model of Kernel::ConstructScaledVector_3 
a model of Kernel::ConstructSecondPoint_2 
a model of Kernel::ConstructSecondPoint_3 
a model of Kernel::ConstructSegment_2 
a model of Kernel::ConstructSegment_3 
a model of Kernel::ConstructSource_2 
a model of Kernel::ConstructSource_3 
a model of Kernel::ConstructSphere_3 
a model of Kernel::ConstructSumOfVectors_2 
a model of Kernel::ConstructSumOfVectors_3 
a model of Kernel::ConstructSupportingPlane_3 
a model of Kernel::ConstructTarget_2 
a model of Kernel::ConstructTarget_3 
a model of Kernel::ConstructTetrahedron_3 
a model of Kernel::ConstructTranslatedPoint_2 
a model of Kernel::ConstructTranslatedPoint_3 
a model of Kernel::ConstructTriangle_2 
a model of Kernel::ConstructTriangle_3 
a model of Kernel::ConstructVector_2 
a model of Kernel::ConstructVector_3 
a model of Kernel::ConstructVertex_2 
a model of Kernel::ConstructVertex_3 
| typedef unspecified_type Kernel::Coplanar_3 | 
a model of Kernel::Coplanar_3 
a model of Kernel::CoplanarOrientation_3 
a model of Kernel::CoplanarSideOfBoundedCircle_3 
a model of Kernel::CounterclockwiseInBetween_2 
| typedef unspecified_type Kernel::Direction_2 | 
a model of Kernel::Direction_2 
| typedef unspecified_type Kernel::Direction_3 | 
a model of Kernel::Direction_3 
a model of Kernel::DoIntersect_2 
a model of Kernel::DoIntersect_3 
| typedef unspecified_type Kernel::Equal_2 | 
a model of Kernel::Equal_2 
| typedef unspecified_type Kernel::Equal_3 | 
a model of Kernel::Equal_3 
| typedef unspecified_type Kernel::Equal_x_2 | 
a model of Kernel::EqualX_2 
| typedef unspecified_type Kernel::Equal_x_3 | 
a model of Kernel::EqualX_3 
| typedef unspecified_type Kernel::Equal_xy_3 | 
a model of Kernel::EqualXY_3 
| typedef unspecified_type Kernel::Equal_y_2 | 
a model of Kernel::EqualY_2 
| typedef unspecified_type Kernel::Equal_y_3 | 
a model of Kernel::EqualY_3 
| typedef unspecified_type Kernel::Equal_z_3 | 
a model of Kernel::EqualZ_3 
| typedef unspecified_type Kernel::FT | 
a model of FieldNumberType 
| typedef unspecified_type Kernel::Has_on_2 | 
a model of Kernel::HasOn_2 
| typedef unspecified_type Kernel::Has_on_3 | 
a model of Kernel::HasOn_3 
a model of Kernel::HasOnBoundary_2 
a model of Kernel::HasOnBoundary_3 
a model of Kernel::HasOnBoundedSide_2 
a model of Kernel::HasOnBoundedSide_3 
a model of Kernel::HasOnNegativeSide_2 
a model of Kernel::HasOnNegativeSide_3 
a model of Kernel::HasOnPositiveSide_2 
a model of Kernel::HasOnPositiveSide_3 
a model of Kernel::HasOnUnboundedSide_2 
a model of Kernel::HasOnUnboundedSide_3 
| typedef unspecified_type Kernel::Intersect_2 | 
a model of Kernel::Intersect_2 
| typedef unspecified_type Kernel::Intersect_3 | 
a model of Kernel::Intersect_3 
a model of Kernel::IsDegenerate_2 
a model of Kernel::IsDegenerate_3 
a model of Kernel::IsHorizontal_2 
a model of Kernel::IsVertical_2 
| typedef unspecified_type Kernel::Iso_cuboid_3 | 
a model of Kernel::IsoCuboid_3 
a model of Kernel::IsoRectangle_2 
| typedef unspecified_type Kernel::Left_turn_2 | 
a model of Kernel::LeftTurn_2 
a model of Kernel::LessDistanceToPoint_2 
a model of Kernel::LessDistanceToPoint_3 
a model of Kernel::LessRotateCCW_2 
a model of Kernel::LessSignedDistanceToLine_2 
a model of Kernel::LessSignedDistanceToPlane_3 
| typedef unspecified_type Kernel::Less_x_2 | 
a model of Kernel::LessX_2 
| typedef unspecified_type Kernel::Less_x_3 | 
a model of Kernel::LessX_3 
| typedef unspecified_type Kernel::Less_xy_2 | 
a model of Kernel::LessXY_2 
| typedef unspecified_type Kernel::Less_xy_3 | 
a model of Kernel::LessXY_3 
| typedef unspecified_type Kernel::Less_xyz_3 | 
a model of Kernel::LessXYZ_3 
| typedef unspecified_type Kernel::Less_y_2 | 
a model of Kernel::LessY_2 
| typedef unspecified_type Kernel::Less_y_3 | 
a model of Kernel::LessY_3 
| typedef unspecified_type Kernel::Less_yx_2 | 
a model of Kernel::LessYX_2 
| typedef unspecified_type Kernel::Less_z_3 | 
a model of Kernel::LessZ_3 
| typedef unspecified_type Kernel::Line_2 | 
a model of Kernel::Line_2 
| typedef unspecified_type Kernel::Line_3 | 
a model of Kernel::Line_3 
| typedef unspecified_type Kernel::Object_2 | 
a model of Kernel::Object_2 
| typedef unspecified_type Kernel::Object_3 | 
a model of Kernel::Object_3 
| typedef unspecified_type Kernel::Orientation | 
CGAL::Orientation or Uncertain<CGAL::Orientation> 
a model of Kernel::Orientation_2 
a model of Kernel::Orientation_3 
CGAL::Oriented_side or Uncertain<CGAL::Oriented_side> 
a model of Kernel::OrientedSide_2 
a model of Kernel::OrientedSide_3 
| typedef unspecified_type Kernel::Plane_3 | 
a model of Kernel::Plane_3 
| typedef unspecified_type Kernel::Point_2 | 
a model of Kernel::Point_2 
| typedef unspecified_type Kernel::Point_3 | 
a model of Kernel::Point_3 
| typedef unspecified_type Kernel::Ray_2 | 
a model of Kernel::Ray_2 
| typedef unspecified_type Kernel::Ray_3 | 
a model of Kernel::Ray_3 
| typedef unspecified_type Kernel::RT | 
a model of RingNumberType 
| typedef unspecified_type Kernel::Segment_2 | 
a model of Kernel::Segment_2 
| typedef unspecified_type Kernel::Segment_3 | 
a model of Kernel::Segment_3 
a model of Kernel::SideOfBoundedCircle_2 
a model of Kernel::SideOfBoundedSphere_3 
a model of Kernel::SideOfOrientedCircle_2 
a model of Kernel::SideOfOrientedSphere_3 
| typedef unspecified_type Kernel::Sign | 
CGAL::Sign or Uncertain<CGAL::Sign> 
| typedef unspecified_type Kernel::Sphere_3 | 
a model of Kernel::Sphere_3 
a model of Kernel::Tetrahedron_3 
| typedef unspecified_type Kernel::Triangle_2 | 
a model of Kernel::Triangle_2 
| typedef unspecified_type Kernel::Triangle_3 | 
a model of Kernel::Triangle_3 
| typedef unspecified_type Kernel::Vector_2 | 
a model of Kernel::Vector_2 
| typedef unspecified_type Kernel::Vector_3 | 
a model of Kernel::Vector_3 
| Kernel::Construct_vector_2 Kernel::construct_vector_2_object | ( | ) | const | 
| 
 | 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.