CGAL 4.14.3  2D and 3D Linear Geometry Kernel

AdaptableFunctor
(with four arguments) CGAL::coplanar_orientation()
Operations  
Orientation  operator() (const Kernel::Point_3 &p, const Kernel::Point_3 &q, const Kernel::Point_3 &r, const Kernel::Point_3 &s) 
If p , q , and s are collinear, then CGAL::COLLINEAR is returned. More...  
Orientation  operator() (const Kernel::Point_3 &p, const Kernel::Point_3 &q, const Kernel::Point_3 &r) 
If p , q , and r are collinear, then CGAL::COLLINEAR is returned. More...  
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  
) 
If p
, q
, and s
are collinear, then CGAL::COLLINEAR is returned.
If not, let P
be the plane defined by the points p
, q
, and r
. Note that the order defines the orientation of P
. If P
and the plane defined by p
, q
, and s
have the same orientation, then CGAL::POSITIVE is returned; otherwise CGAL::NEGATIVE is returned.
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
, and r
are collinear, then CGAL::COLLINEAR is returned.
If not, let P
be the plane defined by the points p
, q
, and r
. 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 as a 2D orientation in P
.