2D and 3D Geometry Kernel
Reference Manual

Hervé Brönnimann, Andreas Fabri, Geert-Jan Giezeman, Susan Hert, Michael Hoffmann, Lutz Kettner, Sylvain Pion, and Stefan Schirra

The following pages give a complete overview on the functionality provided in the kernel.

7.7   Concepts

Kernel

7.8   Kernel Classes and Operations

Cartesian<FieldNumberType>
Cartesian_converter<K1, K2, NTConverter>
cartesian_to_homogeneous
Filtered_kernel<CK>
Filtered_kernel_adaptor<CK>
Filtered_predicate<EP, FP, C2E, C2F>
Homogeneous<RingNumberType>
Homogeneous_converter<K1, K2, RTConverter, FTConverter>
homogeneous_to_cartesian
homogeneous_to_quotient_cartesian
Kernel_traits<T>
Simple_cartesian<FieldNumberType>
Simple_homogeneous<RingNumberType>

7.9   Predefined Kernels

Exact_predicates_exact_constructions_kernel
Exact_predicates_exact_constructions_kernel_with_sqrt
Exact_predicates_inexact_constructions_kernel

7.10   Kernel Objects

7.10.1   Two-dimensional Objects

Aff_transformation_2<Kernel>
Bbox_2
Circle_2<Kernel>
Direction_2<Kernel>
Iso_rectangle_2<Kernel>
Line_2<Kernel>
Point_2<Kernel>
Ray_2<Kernel>
Segment_2<Kernel>
Triangle_2<Kernel>
Vector_2<Kernel>

7.10.2   Three-dimensional Objects

Bbox_3
Aff_transformation_3<Kernel>
Direction_3<Kernel>
Iso_cuboid_3<Kernel>
Line_3<Kernel>
Plane_3<Kernel>
Point_3<Kernel>
Ray_3<Kernel>
Segment_3<Kernel>
Circle_3<Kernel>
Sphere_3<Kernel>
Tetrahedron_3<Kernel>
Triangle_3<Kernel>
Vector_3<Kernel>

7.11   Constants and Enumerations

Angle
Bounded_side
Comparison_result
Sign
Orientation
Oriented_side
CLOCKWISE
COUNTERCLOCKWISE
COLLINEAR
LEFT_TURN
RIGHT_TURN
COPLANAR
DEGENERATE
Null_vector
NULL_VECTOR
Origin
ORIGIN
Identity_transformation
Reflection
Rotation
Scaling
Translation

7.12   Global Functions

angle
are_ordered_along_line
are_strictly_ordered_along_line
area
barycenter
bisector
centroid
circumcenter
collinear
collinear_are_ordered_along_line
collinear_are_strictly_ordered_along_line
compare_distance_to_point
compare_signed_distance_to_line
compare_signed_distance_to_plane
compare_slopes
compare_squared_distance
compare_squared_radius
compare_x
compare_xy
compare_xyz
compare_x_at_y
compare_y
compare_y_at_x
compare_yx
compare_z
coplanar
coplanar_orientation
coplanar_side_of_bounded_circle
cross_product
determinant
do_intersect
do_overlap
enum_cast
equidistant_line
has_larger_distance_to_point
has_larger_signed_distance_to_line
has_larger_signed_distance_to_plane
has_smaller_distance_to_point
has_smaller_signed_distance_to_line
has_smaller_signed_distance_to_plane
intersection
left_turn
lexicographically_xyz_smaller
lexicographically_xyz_smaller_or_equal
lexicographically_xy_larger
lexicographically_xy_larger_or_equal
lexicographically_xy_smaller
lexicographically_xy_smaller_or_equal
max_vertex
midpoint
normal
min_vertex
operator+
operator-
operator*
opposite
orthogonal_vector
orientation
parallel
quotient_cartesian_to_homogeneous
radical_plane
radical_line
rational_rotation_approximation
right_turn
side_of_bounded_circle
side_of_bounded_sphere
side_of_oriented_circle
side_of_oriented_sphere
squared_area
squared_distance
squared_radius
unit_normal
volume
x_equal
y_equal
z_equal

7.13   Kernel Geometric Object Concepts

Kernel::Circle_2
Kernel::Direction_2
Kernel::Direction_3
Kernel::IsoCuboid_3
Kernel::IsoRectangle_2
Kernel::Line_2
Kernel::Line_3
Kernel::Object_2
Kernel::Object_3
Kernel::Plane_3
Kernel::Point_2
Kernel::Point_3
Kernel::Ray_2
Kernel::Ray_3
Kernel::Segment_2
Kernel::Segment_3
Kernel::Sphere_3
Kernel::Tetrahedron_3
Kernel::Triangle_2
Kernel::Triangle_3
Kernel::Vector_2
Kernel::Vector_3

7.14   Kernel Function Object Concepts

Kernel::Angle_2
Kernel::Angle_3
Kernel::AreOrderedAlongLine_2
Kernel::AreOrderedAlongLine_3
Kernel::AreParallel_2
Kernel::AreParallel_3
Kernel::AreStrictlyOrderedAlongLine_2
Kernel::AreStrictlyOrderedAlongLine_3
Kernel::Assign_2
Kernel::Assign_3
Kernel::BoundedSide_2
Kernel::BoundedSide_3
Kernel::Circle_3
Kernel::CollinearAreOrderedAlongLine_2
Kernel::CollinearAreOrderedAlongLine_3
Kernel::CollinearAreStrictlyOrderedAlongLine_2
Kernel::CollinearAreStrictlyOrderedAlongLine_3
Kernel::CollinearHasOn_2
Kernel::Collinear_2
Kernel::Collinear_3
Kernel::CompareAngleWithXAxis_2
Kernel::CompareDistance_2
Kernel::CompareDistance_3
Kernel::CompareSlope_2
Kernel::CompareSquaredDistance_2
Kernel::CompareSquaredDistance_3
Kernel::CompareSquaredRadius_3
Kernel::CompareXAtY_2
Kernel::CompareXYZ_3
Kernel::CompareXY_2
Kernel::CompareXY_3
Kernel::CompareX_2
Kernel::CompareX_3
Kernel::CompareYAtX_2
Kernel::CompareY_2
Kernel::CompareY_3
Kernel::CompareYX_2
Kernel::CompareZ_3
Kernel::ComputeA_2
Kernel::ComputeB_2
Kernel::ComputeC_2
Kernel::ComputeApproximateArea_3
Kernel::ComputeApproximateSquaredLength_3
Kernel::ComputeArea_2
Kernel::ComputeArea_3
Kernel::ComputeAreaDividedByPi_3
Kernel::ComputeDeterminant_2
Kernel::ComputeDeterminant_3
Kernel::ComputeDx_2
Kernel::ComputeDy_2
Kernel::ComputeHx_2
Kernel::ComputeHy_2
Kernel::ComputeScalarProduct_2
Kernel::ComputeScalarProduct_3
Kernel::ComputeSquaredArea_3
Kernel::ComputeSquaredDistance_2
Kernel::ComputeSquaredDistance_3
Kernel::ComputeSquaredLength_2
Kernel::ComputeSquaredLength_3
Kernel::ComputeSquaredLengthDividedByPiSquare_3
Kernel::ComputeSquaredRadius_2
Kernel::ComputeSquaredRadius_3
Kernel::ComputeVolume_3
Kernel::ComputeX_2
Kernel::ComputeX_3
Kernel::ComputeY_2
Kernel::ComputeY_3
Kernel::ComputeZ_3
Kernel::ComputeXmin_2
Kernel::ComputeYmin_2
Kernel::ComputeXmax_2
Kernel::ComputeYmax_2
Kernel::ComputeYAtX_2
Kernel::ConstructBarycenter_2
Kernel::ConstructBarycenter_3
Kernel::ConstructBaseVector_3
Kernel::ConstructBbox_2
Kernel::ConstructBbox_3
Kernel::ConstructBisector_2
Kernel::ConstructBisector_3
Kernel::ConstructCartesianConstIterator_2
Kernel::ConstructCartesianConstIterator_3
Kernel::ConstructCenter_2
Kernel::ConstructCenter_3
Kernel::ConstructCentroid_2
Kernel::ConstructCentroid_3
Kernel::ConstructCircle_2
Kernel::ConstructCircle_3
Kernel::ConstructCircumcenter_2
Kernel::ConstructCircumcenter_3
Kernel::ConstructCrossProductVector_3
Kernel::ConstructDifferenceOfVectors_2
Kernel::ConstructDifferenceOfVectors_3
Kernel::ConstructDirection_2
Kernel::ConstructDirection_3
Kernel::ConstructDividedVector_2
Kernel::ConstructDividedVector_3
Kernel::ConstructEquidistantLine_3
Kernel::ConstructIsoCuboid_3
Kernel::ConstructIsoRectangle_2
Kernel::ConstructLiftedPoint_3
Kernel::ConstructLine_2
Kernel::ConstructLine_3
Kernel::ConstructMaxVertex_2
Kernel::ConstructMaxVertex_3
Kernel::ConstructMidpoint_2
Kernel::ConstructMidpoint_3
Kernel::ConstructMinVertex_2
Kernel::ConstructMinVertex_3
Kernel::ConstructNormal_3
Kernel::ConstructObject_2
Kernel::ConstructObject_3
Kernel::ConstructOppositeCircle_2
Kernel::ConstructOppositeDirection_2
Kernel::ConstructOppositeDirection_3
Kernel::ConstructOppositeLine_2
Kernel::ConstructOppositeLine_3
Kernel::ConstructOppositePlane_3
Kernel::ConstructOppositeRay_2
Kernel::ConstructOppositeRay_3
Kernel::ConstructOppositeSegment_2
Kernel::ConstructOppositeSegment_3
Kernel::ConstructOppositeSphere_3
Kernel::ConstructOppositeTriangle_2
Kernel::ConstructOppositeVector_2
Kernel::ConstructOppositeVector_3
Kernel::ConstructOrthogonalVector_3
Kernel::ConstructPerpendicularDirection_2
Kernel::ConstructPerpendicularLine_2
Kernel::ConstructPerpendicularLine_3
Kernel::ConstructPerpendicularPlane_3
Kernel::ConstructPerpendicularVector_2
Kernel::ConstructPlane_3
Kernel::ConstructPointOn_2
Kernel::ConstructPointOn_3
Kernel::ConstructPoint_2
Kernel::ConstructPoint_3
Kernel::ConstructProjectedPoint_2
Kernel::ConstructProjectedPoint_3
Kernel::ConstructProjectedXYPoint_2
Kernel::ConstructRadicalLine_2
Kernel::ConstructRadicalPlane_3
Kernel::ConstructRay_2
Kernel::ConstructRay_3
Kernel::ConstructScaledVector_2
Kernel::ConstructScaledVector_3
Kernel::ConstructSecondPoint_2
Kernel::ConstructSegment_2
Kernel::ConstructSegment_3
Kernel::ConstructSource_2
Kernel::ConstructSphere_3
Kernel::ConstructSumOfVectors_2
Kernel::ConstructSumOfVectors_3
Kernel::ConstructSupportingPlane_3
Kernel::ConstructTarget_2
Kernel::ConstructTetrahedron_3
Kernel::ConstructTranslatedPoint_2
Kernel::ConstructTranslatedPoint_3
Kernel::ConstructTriangle_2
Kernel::ConstructTriangle_3
Kernel::ConstructUnitNormal_3
Kernel::ConstructVector_2
Kernel::ConstructVector_3
Kernel::ConstructVertex_2
Kernel::ConstructVertex_3
Kernel::CartesianConstIterator_2
Kernel::CartesianConstIterator_3
Kernel::CoplanarOrientation_3
Kernel::CoplanarSideOfBoundedCircle_3
Kernel::Coplanar_3
Kernel::CounterclockwiseInBetween_2
Kernel::DoIntersect_2
Kernel::DoIntersect_3
Kernel::EqualXY_3
Kernel::EqualX_2
Kernel::EqualX_3
Kernel::EqualY_2
Kernel::EqualY_3
Kernel::EqualZ_3
Kernel::Equal_2
Kernel::Equal_3
Kernel::HasOnBoundary_2
Kernel::HasOnBoundary_3
Kernel::HasOnBoundedSide_2
Kernel::HasOnBoundedSide_3
Kernel::HasOnNegativeSide_2
Kernel::HasOnNegativeSide_3
Kernel::HasOnPositiveSide_2
Kernel::HasOnPositiveSide_3
Kernel::HasOnUnboundedSide_2
Kernel::HasOnUnboundedSide_3
Kernel::HasOn_2
Kernel::HasOn_3
Kernel::Intersect_2
Kernel::Intersect_3
Kernel::IsDegenerate_2
Kernel::IsDegenerate_3
Kernel::IsHorizontal_2
Kernel::IsVertical_2
Kernel::LeftTurn_2
Kernel::LessDistanceToPoint_2
Kernel::LessDistanceToPoint_3
Kernel::LessRotateCCW_2
Kernel::LessSignedDistanceToLine_2
Kernel::LessSignedDistanceToPlane_3
Kernel::LessXYZ_3
Kernel::LessXY_2
Kernel::LessXY_3
Kernel::LessX_2
Kernel::LessX_3
Kernel::LessYX_2
Kernel::LessY_2
Kernel::LessY_3
Kernel::LessZ_3
Kernel::Orientation_2
Kernel::Orientation_3
Kernel::OrientedSide_2
Kernel::OrientedSide_3
Kernel::SideOfBoundedCircle_2
Kernel::SideOfBoundedSphere_3
Kernel::SideOfOrientedCircle_2
Kernel::SideOfOrientedSphere_3

7.15   Dimension handling tools

Ambient_dimension<T, K = Kernel_traits<T>::Kernel>
Feature_dimension<T, K = Kernel_traits<T>::Kernel>
Dimension_tag<int dim>
Dynamic_dimension_tag