CGAL 5.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
Types | |
The following types describe the return types of predicates. They typically map to | |
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 | Weighted_point_2 |
a model of Kernel::WeightedPoint_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 | |
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 | Weighted_point_3 |
a model of Kernel::WeightedPoint_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 | |
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 |
a model of Kernel::ConstructSecondPoint_2
a model of Kernel::ConstructSecondPoint_3
|
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.