\begin{ccRefConcept}{Kernel}
The concept of a {\em 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 in the basic library 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 subsumes the concepts of {\em two-dimensional kernel},
%{\em three-dimensional kernel}, and {\em $d$-dimensional 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.

\ccHasModels

\ccRefIdfierPage{CGAL::Cartesian<FieldNumberType>} \\
\ccRefIdfierPage{CGAL::Homogeneous<RingNumberType>} \\
\ccRefIdfierPage{CGAL::Simple_cartesian<FieldNumberType>} \\
\ccRefIdfierPage{CGAL::Simple_homogeneous<RingNumberType>} \\

\ccCreationVariable{kernel}

\ccTypes

\ccNestedType{FT}{a model of FieldNumberType}
\ccGlue
\ccNestedType{RT}{a model of RingNumberType}

\ccHeading{Two-dimensional Kernel}

\ccHeading{Geometric Objects}

\ccNestedType{Point_2}{a model of Kernel::Point\_2}
\ccGlue
\ccNestedType{Vector_2}{a model of Kernel::Vector\_2}
\ccGlue
\ccNestedType{Direction_2}{a model of Kernel::Direction\_2}
\ccGlue
\ccNestedType{Line_2}{a model of Kernel::Line\_2}
\ccGlue
\ccNestedType{Ray_2}{a model of Kernel::Ray\_2}
\ccGlue
\ccNestedType{Segment_2}{a model of Kernel::Segment\_2}
\ccGlue
\ccNestedType{Triangle_2}{a model of Kernel::Triangle\_2}
\ccGlue
\ccNestedType{Iso_rectangle_2}{a model of Kernel::IsoRectangle\_2}
%%\ccGlue
%%\ccNestedType{Aff_transformation_2}{}
\ccGlue
\ccNestedType{Circle_2}{a model of Kernel::Circle\_2}
\ccGlue
\ccNestedType{Weighted_point_2}{a model of Kernel::WeightedPoint\_2}
\ccGlue
\ccNestedType{Object_2}{a model of Kernel::Object\_2}

\ccHeading{Constructors}

\ccNestedType{Construct_point_2}{a model of Kernel::ConstructPoint\_2}
\ccGlue
\ccNestedType{Construct_vector_2}{a model of Kernel::ConstructVector\_2}
\ccGlue
\ccNestedType{Construct_direction_2}{a model of Kernel::ConstructDirection\_2}
\ccGlue
\ccNestedType{Construct_segment_2}{a model of Kernel::ConstructSegment\_2}
\ccGlue
\ccNestedType{Construct_line_2}{a model of Kernel::ConstructLine\_2}
\ccGlue
\ccNestedType{Construct_ray_2}{a model of Kernel::ConstructRay\_2}
\ccGlue
\ccNestedType{Construct_circle_2}{a model of Kernel::ConstructCircle\_2}
\ccGlue
\ccNestedType{Construct_triangle_2}{a model of Kernel::ConstructTriangle\_2}
\ccGlue
\ccNestedType{Construct_iso_rectangle_2}{a model of Kernel::ConstructIsoRectangle\_2}
\ccGlue
\ccNestedType{Construct_object_2}{a model of Kernel::ConstructObject\_2}
%%\ccGlue
%%\ccNestedType{Construct_aff_transformation_2}{}
\ccGlue
\ccNestedType{Construct_scaled_vector_2}{a model of Kernel::ConstructScaledVector\_2}
\ccGlue
\ccNestedType{Construct_translated_point_2}{a model of Kernel::ConstructTranslatedPoint\_2}
\ccGlue
\ccNestedType{Construct_point_on_2}{a model of Kernel::ConstructPointOn\_2}
\ccGlue
\ccNestedType{Construct_projected_point_2}{a model of Kernel::ConstructProjectedPoint\_2}
\ccGlue
\ccNestedType{Construct_projected_xy_point_2}{a model of Kernel::ConstructProjectedXYPoint\_2}
%%\ccGlue
%%\ccNestedType{Construct_second_point_on_2}{}
%%\ccGlue
%%\ccNestedType{Construct_source_point_2}{}
%%\ccGlue
%%\ccNestedType{Construct_target_point_2}{}
%%\ccGlue
%%\ccNestedType{Construct_min_point_2}{}
%%\ccGlue
%%\ccNestedType{Construct_max_point_2}{}
\ccGlue
\ccNestedType{Construct_vertex_2}{a model of Kernel::ConstructVertex\_2}
%%\ccGlue
%%\ccNestedType{Construct_direction_of_line_2}{}
%%\ccGlue
%%\ccNestedType{Construct_direction_of_ray_2}{}
\ccGlue
\ccNestedType{Construct_supporting_line_2}{a model of Kernel::ConstructSupportingLine\_2}
\ccGlue
\ccNestedType{Construct_perpendicular_vector_2}{a model of Kernel::ConstructPerpendicularVector\_2}
\ccGlue
\ccNestedType{Construct_perpendicular_direction_2}{a model of Kernel::ConstructPerpendicularDirection\_2}
\ccGlue
\ccNestedType{Construct_perpendicular_line_2}{a model of Kernel::ConstructPerpendicularLine\_2}
\ccGlue
\ccNestedType{Construct_midpoint_2}{a model of Kernel::ConstructMidpoint\_2}
\ccGlue
\ccNestedType{Construct_center_2}{a model of Kernel::ConstructCenter\_2}
\ccGlue
\ccNestedType{Construct_centroid_2}{a model of Kernel::ConstructCentroid\_2}
\ccGlue
\ccNestedType{Construct_circumcenter_2}{a model of Kernel::ConstructCircumcenter\_2}
\ccGlue
\ccNestedType{Construct_bisector_2}{a model of Kernel::ConstructBisector\_2}
\ccGlue
\ccNestedType{Construct_opposite_direction_2}{a model of Kernel::ConstructOppositeDirection\_2}
\ccGlue
\ccNestedType{Construct_opposite_segment_2}{a model of Kernel::ConstructOppositeSegment\_2}
\ccGlue
\ccNestedType{Construct_opposite_ray_2}{a model of Kernel::ConstructOppositeRay\_2}
\ccGlue
\ccNestedType{Construct_opposite_line_2}{a model of Kernel::ConstructOppositeLine\_2}
\ccGlue
\ccNestedType{Construct_opposite_triangle_2}{a model of Kernel::ConstructOppositeTriangle\_2}
\ccGlue
\ccNestedType{Construct_opposite_circle_2}{a model of Kernel::ConstructOppositeCircle\_2}
\ccGlue
\ccNestedType{Construct_opposite_vector_2}{a model of Kernel::ConstructOppositeVector\_2}

If the result type is not determined, there is no \ccc{Construct_} prefix:

%%\ccNestedType{Transform_2}{}
%%\ccGlue
\ccNestedType{Intersect_2}{a model of Kernel::Intersect\_2}
\ccGlue
\ccNestedType{Assign_2}{a model of Kernel::Assign\_2}

If the result type is a number type, the prefix is \ccc{Compute_}:

%\ccNestedType{Compute_y_at_x_2}{a model of Kernel::ComputeYatX\_2}
%\ccGlue
\ccNestedType{Compute_squared_distance_2}{a model of Kernel::ComputeSquaredDistance\_2}
\ccGlue
\ccNestedType{Compute_squared_length_2}{a model of Kernel::ComputeSquaredLength\_2}
\ccGlue
\ccNestedType{Compute_squared_radius_2}{a model of Kernel::ComputeSquaredRadius\_2}
\ccGlue
\ccNestedType{Compute_area_2}{a model of Kernel::ComputeArea\_2}

\ccHeading{Generalized Predicates}

\ccNestedType{Angle_2}{a model of Kernel::Angle\_2}
\ccGlue
\ccNestedType{Equal_2}{a model of Kernel::Equal\_2}
\ccGlue
\ccNestedType{Equal_x_2}{a model of Kernel::EqualX\_2}
\ccGlue
\ccNestedType{Equal_y_2}{a model of Kernel::EqualY\_2}
\ccGlue
\ccNestedType{Less_x_2}{a model of Kernel::LessX\_2}
\ccGlue
\ccNestedType{Less_y_2}{a model of Kernel::LessY\_2}
\ccGlue
\ccNestedType{Less_xy_2}{a model of Kernel::LessXY\_2}
\ccGlue
\ccNestedType{Less_yx_2}{a model of Kernel::LessYX\_2}
\ccGlue
\ccNestedType{Compare_x_2}{a model of Kernel::CompareX\_2}
\ccGlue
\ccNestedType{Compare_x_at_y_2}{a model of Kernel::CompareXAtY\_2}
\ccGlue
\ccNestedType{Compare_y_2}{a model of Kernel::CompareY\_2}
\ccGlue
\ccNestedType{Compare_xy_2}{a model of Kernel::CompareXY\_2}
\ccGlue
\ccNestedType{Compare_y_at_x_2}{a model of Kernel::CompareYAtX\_2}
\ccGlue
\ccNestedType{Compare_distance_2}{a model of Kernel::CompareDistance\_2}
\ccGlue
\ccNestedType{Compare_angle_with_x_axis_2}{a model of Kernel::CompareAngleWithXAxis\_2}
\ccGlue
\ccNestedType{Compare_slope_2}{a model of Kernel::CompareSlope\_2}
\ccGlue
\ccNestedType{Less_distance_to_point_2}{a model of Kernel::LessDistanceToPoint\_2}
\ccGlue
\ccNestedType{Less_signed_distance_to_line_2}{a model of Kernel::LessSignedDistanceToLine\_2}
\ccGlue
\ccNestedType{Less_rotate_ccw_2}{a model of Kernel::LessRotateCCW\_2}
\ccGlue
\ccNestedType{Leftturn_2}{a model of Kernel::LeftTurn\_2}
\ccGlue
\ccNestedType{Collinear_2}{a model of Kernel::Collinear\_2}
\ccGlue
\ccNestedType{Orientation_2}{a model of Kernel::Orientation\_2}
\ccGlue
\ccNestedType{Side_of_oriented_circle_2}{a model of Kernel::SideOfOrientedCircle\_2}
\ccGlue
\ccNestedType{Side_of_bounded_circle_2}{a model of Kernel::SideOfBoundedCircle\_2}
\ccGlue
\ccNestedType{Is_horizontal_2}{a model of Kernel::IsHorizontal\_2}
\ccGlue
\ccNestedType{Is_vertical_2}{a model of Kernel::IsVertical\_2}
\ccGlue
\ccNestedType{Is_degenerate_2}{a model of Kernel::IsDegenerate\_2}
\ccGlue
\ccNestedType{Has_on_2}{a model of Kernel::HasOn\_2}
\ccGlue
\ccNestedType{Collinear_has_on_2}{a model of Kernel::CollinearHasOn\_2}
\ccGlue
\ccNestedType{Has_on_bounded_side_2}{a model of Kernel::HasOnBoundedSide\_2}
\ccGlue
\ccNestedType{Has_on_unbounded_side_2}{a model of Kernel::HasOnUnboundedSide\_2}
\ccGlue
\ccNestedType{Has_on_boundary_2}{a model of Kernel::HasOnBoundary\_2}
\ccGlue
\ccNestedType{Has_on_positive_side_2}{a model of Kernel::HasOnPositiveSide\_2}
\ccGlue
\ccNestedType{Has_on_negative_side_2}{a model of Kernel::HasOnNegativeSide\_2}
\ccGlue
\ccNestedType{Oriented_side_2}{a model of Kernel::OrientedSide\_2}
\ccGlue
\ccNestedType{Bounded_side_2}{a model of Kernel::BoundedSide\_2}
\ccGlue
\ccNestedType{Are_ordered_along_line_2 }{a model of Kernel::AreOrderedAlongLine\_2}
\ccGlue
\ccNestedType{Are_strictly_ordered_along_line_2}{a model of Kernel::AreStrictlyOrderedAlongLine\_2}
\ccGlue
\ccNestedType{Collinear_are_ordered_along_line_2}{a model of Kernel::CollinearAreOrderedAlongLine\_2}
\ccGlue
\ccNestedType{Collinear_are_strictly_ordered_along_line_2}{a model of Kernel::CollinearAreStrictlyOrderedAlongLine\_2}
\ccGlue
\ccNestedType{Counterclockwise_in_between_2}{a model of Kernel::CounterclockwiseInBetween\_2}
\ccGlue
\ccNestedType{Do_intersect_2}{a model of Kernel::DoIntersect\_2}

\ccHeading{Three-dimensional Kernel}

\ccHeading{Geometric Objects}

\ccNestedType{Point_3}{a model of Kernel::Point\_3}
\ccGlue
\ccNestedType{Vector_3}{a model of Kernel::Vector\_3}
\ccGlue
\ccNestedType{Direction_3}{a model of Kernel::Direction\_3}
\ccGlue
\ccNestedType{Iso_cuboid_3}{a model of Kernel::IsoCuboid\_3}
\ccGlue
\ccNestedType{Line_3}{a model of Kernel::Line\_3}
\ccGlue
\ccNestedType{Ray_3}{a model of Kernel::Ray\_3}
\ccGlue
\ccNestedType{Sphere_3}{a model of Kernel::Sphere\_3}
\ccGlue
\ccNestedType{Segment_3}{a model of Kernel::Segment\_3}
\ccGlue
\ccNestedType{Plane_3}{a model of Kernel::Plane\_3}
\ccGlue
\ccNestedType{Triangle_3}{a model of Kernel::Triangle\_3}
\ccGlue
\ccNestedType{Tetrahedron_3}{a model of Kernel::Tetrahedron\_3}
\ccGlue
\ccNestedType{Weighted_point_3}{a model of Kernel::WeightedPoint\_3}
%%\ccGlue
%%\ccNestedType{Aff_transformation_3}{}
\ccGlue
\ccNestedType{Object_3}{a model of Kernel::Object\_3}

\ccHeading{Constructors}

\ccNestedType{Construct_point_3}{a model of Kernel::ConstructPoint\_3}
\ccGlue
\ccNestedType{Construct_vector_3}{a model of Kernel::ConstructVector\_3}
\ccGlue
\ccNestedType{Construct_direction_3}{a model of Kernel::ConstructDirection\_3}
\ccGlue
\ccNestedType{Construct_plane_3}{a model of Kernel::ConstructPlane\_3}
\ccGlue
\ccNestedType{Construct_iso_cuboid_3}{a model of Kernel::ConstructIsoCuboid\_3}
\ccGlue
\ccNestedType{Construct_line_3}{a model of Kernel::ConstructLine\_3}
\ccGlue
\ccNestedType{Construct_ray_3}{a model of Kernel::ConstructRay\_3}
\ccGlue
\ccNestedType{Construct_sphere_3}{a model of Kernel::ConstructSphere\_3}
\ccGlue
\ccNestedType{Construct_segment_3}{a model of Kernel::ConstructSegment\_3}
\ccGlue
\ccNestedType{Construct_triangle_3}{a model of Kernel::ConstructTriangle\_3}
\ccGlue
\ccNestedType{Construct_tetrahedron_3}{a model of Kernel::ConstructTetrahedron\_3}
\ccGlue
\ccNestedType{Construct_object_3}{a model of Kernel::ConstructObject\_3}
%%\ccGlue
%%\ccNestedType{Construct_aff_transformation_3}{}
\ccGlue
\ccNestedType{Construct_scaled_vector_3}{a model of Kernel::ConstructScaledVector\_3}
\ccGlue
\ccNestedType{Construct_translated_point_3}{a model of Kernel::ConstructTranslatedPoint\_3}
\ccGlue
\ccNestedType{Construct_point_on_3}{a model of Kernel::ConstructPointOn\_3}
\ccGlue
\ccNestedType{Construct_projected_point_3}{a model of Kernel::ConstructProjectedPoint\_3}
\ccGlue
\ccNestedType{Construct_lifted_point_3}{a model of Kernel::ConstructLiftedPoint\_3}
%%\ccGlue
%%\ccNestedType{Construct_second_point_on_3}{}
%%\ccGlue
%%\ccNestedType{Construct_source_point_3}{}
%%\ccGlue
%%\ccNestedType{Construct_target_point_3}{}
%%\ccGlue
%%\ccNestedType{Construct_min_point_3}{}
%%\ccGlue
%%\ccNestedType{Construct_max_point_3}{}
\ccGlue
\ccNestedType{Construct_vertex_3}{a model of Kernel::ConstructVertex\_3}
%%\ccGlue
%%\ccNestedType{Construct_direction_of_line_3}{}
%%\ccGlue
%%\ccNestedType{Construct_direction_of_ray_3}{}
\ccGlue
\ccNestedType{Construct_supporting_line_3}{a model of Kernel::ConstructSupportingLine\_3}
\ccGlue
\ccNestedType{Construct_supporting_plane_3}{a model of Kernel::ConstructSupportingPlane\_3}
\ccGlue
\ccNestedType{Construct_orthogonal_vector_3}{a model of Kernel::ConstructOrthogonalVector\_3}
\ccGlue
\ccNestedType{Construct_base_vector_3}{a model of Kernel::ConstructBaseVector\_3}
\ccGlue
\ccNestedType{Construct_perpendicular_plane_3}{a model of Kernel::ConstructPerpendicularPlane\_3}
\ccGlue
\ccNestedType{Construct_perpendicular_line_3}{a model of Kernel::ConstructPerpendicularLine\_3}
\ccGlue
\ccNestedType{Construct_midpoint_3}{a model of Kernel::ConstructMidpoint\_3}
\ccGlue
\ccNestedType{Construct_center_3}{a model of Kernel::ConstructCenter\_3}
\ccGlue
\ccNestedType{Construct_centroid_3}{a model of Kernel::ConstructCentroid\_3}
\ccGlue
\ccNestedType{Construct_circumcenter_3}{a model of Kernel::ConstructCircumcenter\_3}
\ccGlue
\ccNestedType{Construct_cross_product_vector_3}{a model of Kernel::ConstructCrossProductVector\_3}
\ccGlue
\ccNestedType{Construct_opposite_direction_3}{a model of Kernel::ConstructOppositeDirection\_3}
\ccGlue
\ccNestedType{Construct_opposite_segment_3}{a model of Kernel::ConstructOppositeSegment\_3}
\ccGlue
\ccNestedType{Construct_opposite_ray_3}{a model of Kernel::ConstructOppositeRay\_3}
\ccGlue
\ccNestedType{Construct_opposite_line_3}{a model of Kernel::ConstructOppositeLine\_3}
\ccGlue
\ccNestedType{Construct_opposite_plane_3}{a model of Kernel::ConstructOppositePlane\_3}
\ccGlue
\ccNestedType{Construct_opposite_sphere_3}{a model of Kernel::ConstructOppositeSphere\_3}
\ccGlue
\ccNestedType{Construct_opposite_vector_3}{a model of Kernel::ConstructOppositeVector\_3}

If the result type is not determined, there is no \ccc{Construct_} prefix:

%%\ccNestedType{Transform_3}{}
%%\ccGlue
\ccNestedType{Intersect_3}{a model of Kernel::Intersect\_3}
\ccGlue
\ccNestedType{Assign_3}{a model of Kernel::Assign\_3}

If the result type is a number type, the prefix is \ccc{Compute_}:

\ccNestedType{Compute_squared_area_3}{a model of Kernel::ComputeSquaredArea\_3}
\ccGlue
\ccNestedType{Compute_squared_distance_3}{a model of Kernel::ComputeSquaredDistance\_3}
\ccGlue
\ccNestedType{Compute_squared_length_3}{a model of Kernel::ComputeSquaredLength\_3}
\ccGlue
\ccNestedType{Compute_squared_radius_3}{a model of Kernel::ComputeSquaredRadius\_3}
\ccGlue
\ccNestedType{Compute_volume_3}{a model of Kernel::ComputeVolume\_3}

\ccHeading{Generalized Predicates}

\ccNestedType{Angle_3}{a model of Kernel::Angle\_3}
\ccGlue
\ccNestedType{Equal_3}{a model of Kernel::Equal\_3}
\ccGlue
\ccNestedType{Equal_x_3}{a model of Kernel::EqualX\_3}
\ccGlue
\ccNestedType{Equal_y_3}{a model of Kernel::EqualY\_3}
\ccGlue
\ccNestedType{Equal_z_3}{a model of Kernel::EqualZ\_3}
\ccGlue
\ccNestedType{Equal_xy_3}{a model of Kernel::EqualXY\_3}
\ccGlue
\ccNestedType{Less_x_3}{a model of Kernel::LessX\_3}
\ccGlue
\ccNestedType{Less_y_3}{a model of Kernel::LessY\_3}
\ccGlue
\ccNestedType{Less_z_3}{a model of Kernel::LessZ\_3}
\ccGlue
\ccNestedType{Less_xy_3}{a model of Kernel::LessXY\_3}
\ccGlue
\ccNestedType{Less_xyz_3}{a model of Kernel::LessXYZ\_3}
\ccGlue
\ccNestedType{Compare_x_3}{a model of Kernel::CompareX\_3}
\ccGlue
\ccNestedType{Compare_y_3}{a model of Kernel::CompareY\_3}
\ccGlue
\ccNestedType{Compare_z_3}{a model of Kernel::CompareZ\_3}
\ccGlue
\ccNestedType{Compare_xy_3}{a model of Kernel::CompareXY\_3}
\ccGlue
\ccNestedType{Compare_xyz_3}{a model of Kernel::CompareXYZ\_3}
\ccGlue
\ccNestedType{Less_signed_distance_to_plane_3}{a model of Kernel::LessSignedDistanceToPlane\_3}
\ccGlue
\ccNestedType{Less_distance_to_point_3}{a model of Kernel::LessDistanceToPoint\_3}
\ccGlue
\ccNestedType{Compare_distance_3}{a model of Kernel::CompareDistance\_3}
\ccGlue
\ccNestedType{Collinear_3}{a model of Kernel::Collinear\_3}
\ccGlue
\ccNestedType{Coplanar_3}{a model of Kernel::Coplanar\_3}
\ccGlue
\ccNestedType{Orientation_3}{a model of Kernel::Orientation\_3}
\ccGlue
\ccNestedType{Coplanar_orientation_3}{a model of Kernel::CoplanarOrientation\_3}
\ccGlue
\ccNestedType{Coplanar_side_of_bounded_circle_3}{a model of Kernel::CoplanarSideOfBoundedCircle\_3}
\ccGlue
\ccNestedType{Side_of_oriented_sphere_3}{a model of Kernel::SideOfOrientedSphere\_3}
\ccGlue
\ccNestedType{Side_of_bounded_sphere_3}{a model of Kernel::SideOfBoundedSphere\_3}
\ccGlue
\ccNestedType{Is_degenerate_3}{a model of Kernel::IsDegenerate\_3}
\ccGlue
\ccNestedType{Has_on_3}{a model of Kernel::HasOn\_3}
\ccGlue
\ccNestedType{Has_on_bounded_side_3}{a model of Kernel::HasOnBoundedSide\_3}
\ccGlue
\ccNestedType{Has_on_unbounded_side_3}{a model of Kernel::HasOnUnboundedSide\_3}
\ccGlue
\ccNestedType{Has_on_boundary_3}{a model of Kernel::HasOnBoundary\_3}
\ccGlue
\ccNestedType{Has_on_positive_side_3}{a model of Kernel::HasOnPositiveSide\_3}
\ccGlue
\ccNestedType{Has_on_negative_side_3}{a model of Kernel::HasOnNegativeSide\_3}
\ccGlue
\ccNestedType{Oriented_side_3}{a model of Kernel::OrientedSide\_3}
\ccGlue
\ccNestedType{Bounded_side_3}{a model of Kernel::BoundedSide\_3}
\ccGlue
\ccNestedType{Are_ordered_along_line_3 }{a model of Kernel::AreOrderedAlongLine\_3}
\ccGlue
\ccNestedType{Are_strictly_ordered_along_line_3}{a model of Kernel::AreStrictlyOrderedAlongLine\_3}
\ccGlue
\ccNestedType{Collinear_are_ordered_along_line_3}{a model of Kernel::CollinearAreOrderedAlongLine\_3}
\ccGlue
\ccNestedType{Collinear_are_strictly_ordered_along_line_3}{a model of Kernel::CollinearAreStrictlyOrderedAlongLine\_3}
\ccGlue
\ccNestedType{Do_intersect_3}{a model of Kernel::DoIntersect\_3}


\ccHeading{d-dimensional Kernel}

\ccHeading{Geometric Objects}

\ccNestedType{Point_d}{a model of Kernel::Point\_d}

\ccHeading{Constructors}

\ccNestedType{Construct_Point_d}{a model of Kernel::ConstructPoint\_d}

\ccOperations

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 \ccc{_object} appended.  For example, for the 
function object
\ccc{Kernel::ConstructVector_2} the following member function must exist:

\ccTexHtml{\ccSetThreeColumns{Kernel::Are_strictly_ordered_along_line}{}{\hspace
*{4.5cm}}}{}

\setlength{\parskip}{0pt}

\ccMemberFunction{Kernel::ConstructVector_2 construct_vector_2_object() const ;}
{}

\def\ccTagRmEigenClassName{\ccTrue}

\ccSeeAlso

\ccAnchor{../kernel_d/index.html}{\cgal\ d-dimensional Kernel manual}.

\end{ccRefConcept} 
