An object c of type Sphere_circle is an oriented great circle on the surface of a unit sphere. Such circles correspond to the intersection of an oriented plane (that contains the origin) and the surface of S2. The orientation of the great circle is that of a counterclockwise walk along the circle as seen from the positive halfspace of the oriented plane.


ring type.

plane a Sphere_circle lies in.


Nef_polyhedron_S2<Traits>::Sphere_circle c;
creates some great circle.

Nef_polyhedron_S2<Traits>::Sphere_circle c ( Sphere_point p, Sphere_point q);
If p and q are opposite of each other, then we create the unique great circle on S2 which contains p and q. This circle is oriented such that a walk along c meets p just before the shorter segment between p and q. If p and q are opposite of each other then we create any great circle that contains p and q.

Nef_polyhedron_S2<Traits>::Sphere_circle c ( Plane_3 h);
creates the circle corresponding to the plane h.
Precondition: h contains the origin.

Nef_polyhedron_S2<Traits>::Sphere_circle c ( RT x, RT y, RT z);
creates the circle orthogonal to the vector (x,y,z).

Nef_polyhedron_S2<Traits>::Sphere_circle c ( Sphere_circle c, Sphere_point p);
creates a great circle orthogonal to c that contains p.
Precondition: p is not part of c.


Sphere_circle c.opposite () Returns a sphere circle in the oppostie direction of c.

bool c.has_on ( Sphere_point p) returns true iff c contains p.

Plane_3 c.plane () returns the plane supporting c.

Sphere_point c.orthogonal_pole () returns the point that is the pole of the hemisphere left of c.

Global functions

bool equal_as_sets ( const c1, const c2)
returns true iff c1 and c2 are equal as unoriented circles.