CGAL 4.7 - 2D and 3D Linear Geometry Kernel
Kernel::CoplanarOrientation_3 Concept Reference

## Definition

Refines:
AdaptableFunctor (with four arguments)
CGAL::coplanar_orientation()

## Operations

A model of this concept must provide:

Orientation operator() (const Kernel::Point_3 &p, const Kernel::Point_3 &q, const Kernel::Point_3 &r, const Kernel::Point_3 &s)
Let p be the plane defined by the points p, q, and r. More...

Orientation operator() (const Kernel::Point_3 &p, const Kernel::Point_3 &q, const Kernel::Point_3 &r)
If p,q,r are collinear, then CGAL::COLLINEAR is returned. More...

## Member Function Documentation

 Orientation Kernel::CoplanarOrientation_3::operator() ( const Kernel::Point_3 & p, const Kernel::Point_3 & q, const Kernel::Point_3 & r, const Kernel::Point_3 & s )

Let p be the plane defined by the points p, q, and r.

Note that the order defines the orientation of p. The function computes the orientation of points p, q, and s in p: Iff p, q, s are collinear, CGAL::COLLINEAR is returned. Iff p and the plane defined by p, q, and s have the same orientation, CGAL::POSITIVE is returned; otherwise CGAL::NEGATIVE is returned.

Precondition
p, q, r, and s are coplanar and p, q, and r are not collinear.
 Orientation Kernel::CoplanarOrientation_3::operator() ( const Kernel::Point_3 & p, const Kernel::Point_3 & q, const Kernel::Point_3 & r )

If p,q,r are collinear, then CGAL::COLLINEAR is returned.

If not, then p,q,r define a plane p. The return value in this case is either CGAL::POSITIVE or CGAL::NEGATIVE, but we don't specify it explicitly. However, we guarantee that all calls to this predicate over 3 points in p will return a coherent orientation if considered a 2D orientation in p.