An object s of type Sphere_segment is a segment in the surface of a unit sphere that is part of a great circle trough the origin. Sphere segments are represented by two sphere points $$p and $$q plus an oriented plane $$h that contains $$p and $$q. The plane determines the sphere segment as follows. Let $$c be the circle in the intersection of $$h and $$S_{2}. Then $$s is that part of $$c that is swept, when we rotate $$p into $$q in counterclockwise rotation around the normal vector of $$h as seen from the positive halfspace.
 
creates some sphere segment.
 
 
creates a spherical segment spanning
the shorter arc from p1 to p2 if shorter_arc == true. Otherwise the longer arc is created. Precondition: p1 != p2 and p1 != p2.opposite().
 
 
creates a spherical segment spanning the
arc from p1 to p2 as part of the oriented circle c
(p1 == p2 or p1 == p2.opposite() are possible.) Precondition: p1 and p2 are contained in c.
 
 
creates the spherical segment as part of c1 that is part
of the halfsphere left of the oriented circle c2. Precondition: c1 != c2 as unoriented circles.


 the source point of s. 

 the target point of s. 

 the great circle supporting s. 

 returns the sperical segment oriented from target() to source() with the same point set as s. 

 returns the sperical segment oriented from target() to source() with the point set completing s to a full circle. 

 a segment is short iff it is shorter than a halfcircle. 

 a segment is long iff it is longer than a halfcircle. 


return true iff s is
degenerate, i.e. source and target are the same. 

 return true iff s is a perfect halfcircle, i.e. source().antipode == target(). 

 
return true iff s contains p.  

 
return true iff s contains p in its relative interior. 