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_2 More... | |
Two-dimensional Geometric Objects | |
typedef unspecified_type | Point_2 |
a model of Kernel::Point_2 More... | |
typedef unspecified_type | Vector_2 |
a model of Kernel::Vector_2 More... | |
typedef unspecified_type | Direction_2 |
a model of Kernel::Direction_2 More... | |
typedef unspecified_type | Line_2 |
a model of Kernel::Line_2 More... | |
typedef unspecified_type | Ray_2 |
a model of Kernel::Ray_2 More... | |
typedef unspecified_type | Segment_2 |
a model of Kernel::Segment_2 More... | |
typedef unspecified_type | Triangle_2 |
a model of Kernel::Triangle_2 More... | |
typedef unspecified_type | Iso_rectangle_2 |
a model of Kernel::IsoRectangle_2 More... | |
typedef unspecified_type | Circle_2 |
a model of Kernel::Circle_2 More... | |
typedef unspecified_type | Object_2 |
a model of Kernel::Object_2 More... | |
Three-dimensional Coordinate Access | |
typedef unspecified_type | Cartesian_const_iterator_3 |
a model of Kernel::CartesianConstIterator_3 More... | |
Three-dimensional Geometric Objects | |
typedef unspecified_type | Point_3 |
a model of Kernel::Point_3 More... | |
typedef unspecified_type | Vector_3 |
a model of Kernel::Vector_3 More... | |
typedef unspecified_type | Direction_3 |
a model of Kernel::Direction_3 More... | |
typedef unspecified_type | Iso_cuboid_3 |
a model of Kernel::IsoCuboid_3 More... | |
typedef unspecified_type | Line_3 |
a model of Kernel::Line_3 More... | |
typedef unspecified_type | Ray_3 |
a model of Kernel::Ray_3 More... | |
typedef unspecified_type | Circle_3 |
a model of Kernel::Circle_3 More... | |
typedef unspecified_type | Sphere_3 |
a model of Kernel::Sphere_3 More... | |
typedef unspecified_type | Segment_3 |
a model of Kernel::Segment_3 More... | |
typedef unspecified_type | Plane_3 |
a model of Kernel::Plane_3 More... | |
typedef unspecified_type | Triangle_3 |
a model of Kernel::Triangle_3 More... | |
typedef unspecified_type | Tetrahedron_3 |
a model of Kernel::Tetrahedron_3 More... | |
typedef unspecified_type | Object_3 |
a model of Kernel::Object_3 More... | |
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.