Concept

SphericalKernel

Refines

Kernel

Has Models

CGAL::Spherical_kernel_3<Kernel,AlgebraicKernelForSpheres>
CGAL::Exact_spherical_kernel_3

Types

A model of SphericalKernel is supposed to provide some basic types

SphericalKernel::Linear_kernel
Model of Kernel.

SphericalKernel::Algebraic_kernel
Model of AlgebraicKernelForSpheres.


SphericalKernel::Root_of_2
Model of RootOf_2.

SphericalKernel::Root_for_spheres_2_3
Model of AlgebraicKernelForSpheres::RootForSpheres_2_3.

SphericalKernel::Polynomial_1_3
Model of AlgebraicKernelForSpheres::Polynomial_1_3.

SphericalKernel::Polynomials_for_line_3
Model of AlgebraicKernelForSpheres::PolynomialsForLines_3.

SphericalKernel::Polynomial_for_spheres_2_3
Model of AlgebraicKernelForSpheres::PolynomialForSpheres_2_3.

SphericalKernel::Polynomials_for_circle_3
Model of AlgebraicKernelForSpheres::PolynomialsForCircles_3.

and to define the following geometric objects

SphericalKernel::Point_3
Model of Kernel::Point_3.

SphericalKernel::Vector_3
Model of Kernel::Vector_3.

SphericalKernel::Line_3
Model of Kernel::Line_3.

SphericalKernel::Plane_3
Model of Kernel::Plane_3.

SphericalKernel::Sphere_3
Model of Kernel::Sphere_3.

SphericalKernel::Circle_3
Model of Kernel::Circle_3.


SphericalKernel::Line_arc_3
Model of SphericalKernel::LineArc_3.

SphericalKernel::Circular_arc_3
Model of SphericalKernel::CircularArc_3.

SphericalKernel::Circular_arc_point_3
Model of SphericalKernel::CircularArcPoint_3.

Moreover, a model of SphericalKernel must provide predicates, constructions and other functionalities.

Predicates

SphericalKernel::Compare_x_3
Model of SphericalKernel::CompareX_3.

SphericalKernel::Compare_y_3
Model of SphericalKernel::CompareY_3.

SphericalKernel::Compare_z_3
Model of SphericalKernel::CompareZ_3.

SphericalKernel::Compare_xy_3
Model of SphericalKernel::CompareXY_3.

SphericalKernel::Compare_xyz_3
Model of SphericalKernel::CompareXYZ_3.

SphericalKernel::Compare_theta_3
Model of SphericalKernel::CompareTheta_3.

SphericalKernel::Compare_theta_z_3
Model of SphericalKernel::CompareThetaZ_3.

SphericalKernel::Compare_z_at_theta_3
Model of SphericalKernel::CompareZAtTheta_3.

SphericalKernel::Compare_z_to_right_3
Model of SphericalKernel::CompareZToRight_3.


SphericalKernel::Equal_3
Model of SphericalKernel::Equal_3.


SphericalKernel::Has_on_3
Model of SphericalKernel::HasOn_3.


SphericalKernel::Do_overlap_3
Model of SphericalKernel::DoOverlap_3.


SphericalKernel::Do_intersect_3
Model of SphericalKernel::DoIntersect_3.


SphericalKernel::Bounded_side_3
Model of SphericalKernel::BoundedSide_3.

SphericalKernel::Has_on_bounded_side_3
Model of SphericalKernel::HasOnBoundedSide_3.

SphericalKernel::Has_on_unbounded_side_3
Model of SphericalKernel::HasOnUnboundedSide_3.


SphericalKernel::Is_theta_monotone_3
Model of SphericalKernel::IsThetaMonotone_3.

Constructions

SphericalKernel::Construct_line_3
Model of SphericalKernel::ConstructLine_3.

SphericalKernel::Construct_plane_3
Model of SphericalKernel::ConstructPlane_3.

SphericalKernel::Construct_sphere_3
Model of SphericalKernel::ConstructSphere_3.

SphericalKernel::Construct_circle_3
Model of SphericalKernel::ConstructCircle_3.


SphericalKernel::Construct_line_arc_3
Model of SphericalKernel::ConstructLineArc_3.

SphericalKernel::Construct_circular_arc_3
Model of SphericalKernel::ConstructCircularArc_3.

SphericalKernel::Construct_circular_arc_point_3
Model of SphericalKernel::ConstructCircularArcPoint_3.


SphericalKernel::Construct_circular_min_vertex_3
Model of SphericalKernel::ConstructCircularMinVertex_3.

SphericalKernel::Construct_circular_max_vertex_3
Model of SphericalKernel::ConstructCircularMaxVertex_3.

SphericalKernel::Construct_circular_source_vertex_3
Model of SphericalKernel::ConstructCircularSourceVertex_3.

SphericalKernel::Construct_circular_target_vertex_3
Model of SphericalKernel::ConstructCircularTargetVertex_3.


SphericalKernel::Construct_bbox_3
Model of SphericalKernel::ConstructBbox_3.


SphericalKernel::Intersect_3
Model of SphericalKernel::Intersect_3.


SphericalKernel::Split_3
Model of SphericalKernel::Split_3.


SphericalKernel::Make_theta_monotone_3
Model of SphericalKernel::MakeThetaMonotone_3.

Computations

SphericalKernel::Compute_circular_x_3
Model of SphericalKernel::ComputeCircularX_3.

SphericalKernel::Compute_circular_y_3
Model of SphericalKernel::ComputeCircularY_3.

SphericalKernel::Compute_circular_z_3
Model of SphericalKernel::ComputeCircularZ_3.


SphericalKernel::ComputeApproximateSquaredLength_3
Model of SphericalKernel::ComputeApproximateSquaredLength_3.

SphericalKernel::ComputeApproximateAngle_3
Model of SphericalKernel::ComputeApproximateAngle_3.

Link with the algebraic kernel

SphericalKernel::Get_equation
Model of SphericalKernel::GetEquation.

Operations

As in the Kernel concept, 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 _object appended. For example, for the function object SphericalKernel::Construct_circular_arc_3 the following member function must exist:

Construct_circular_arc_3 sk.construct_circular_arc_3_object () const

For operations on a given sphere, a context sphere must be provided to the following functions:

Compare_theta_3 sk.compare_theta_3_object ( Sphere_3 sphere) const

Compare_theta_z_3 sk.compare_theta_z_3_object ( Sphere_3 sphere) const

Compare_z_at_theta_3 sk.compare_z_at_theta_3_object ( Sphere_3 sphere) const

Compare_z_to_right_3 sk.compare_z_to_right_3_object ( Sphere_3 sphere) const

Make_theta_monotone_3 sk.make_theta_monotone_3_object ( Sphere_3 sphere) const

Is_theta_monotone_3 sk.is_theta_monotone_3_object ( Sphere_3 sphere) const

See Also

Kernel