
/*!
\ingroup PkgCircularKernel3GeometricConcepts
\cgalConcept

Testing equality between objects.

\cgalRefines{Kernel::Equal_3}

\sa `SphericalKernel::CompareX_3`
\sa `SphericalKernel::CompareY_3`
\sa `SphericalKernel::CompareZ_3`
\sa `SphericalKernel::CompareXY_3`
\sa `SphericalKernel::CompareXYZ_3`

*/

class SphericalKernel::Equal_3 {
public:

/// \name Operations
///  An object of this type must provide in addition:
/// @{

/*!
For two points.
*/
bool operator()
(const SphericalKernel::Circular_arc_point_3 &p0,
const SphericalKernel::Circular_arc_point_3 &p1);

/*!
For two arcs. Two arcs are equal, iff their non-oriented
supporting planes are equal, and the centers and squared
radii of their respective supporting circles are equal, and their
sources and targets are equal.
*/
bool operator()
(const SphericalKernel::Circular_arc_3 &a0,
const SphericalKernel::Circular_arc_3 &a1);

/*!
For two segments. Two segments are equal, iff their non-oriented
supporting lines are equal (i.e.\ they define the same set of
points), and their endpoints are the same.
*/
bool operator()
(const SphericalKernel::Line_arc_3 &a0,
const SphericalKernel::Line_arc_3 &a1);

/// @}

}; /* end SphericalKernel::Equal_3 */

