 ## Kernel::ConstructPlane_3

A model for this must provide:

Kernel::Plane_3
 fo.operator() ( Kernel::RT a, Kernel::RT b, Kernel::RT c, Kernel::RT d)
creates a plane defined by the equation a px + b py + c pz + d = 0. Notice that is degenerate if a = b = c.

Kernel::Plane_3
 fo.operator() ( Kernel::Point_3 p, Kernel::Point_3 q, Kernel::Point_3 r)
creates a plane passing through the points p, q and r. The plane is oriented such that p, q and r are oriented in a positive sense (that is counterclockwise) when seen from the positive side of the plane. Notice that is degenerate if the points are collinear.

Kernel::Plane_3
 fo.operator() ( Kernel::Point_3 p, Kernel::Direction_3 d)
introduces a plane that passes through point p and that has as an orthogonal direction equal to d.

Kernel::Plane_3
 fo.operator() ( Kernel::Point_3 p, Kernel::Vector_3 v)
introduces a plane that passes through point p and that is orthogonal to v.

Kernel::Plane_3 fo.operator() ( Kernel::Line_3 l, Kernel::Point_3 p)
introduces a plane that is defined through the three points l.point(0), l.point(1) and p.

Kernel::Plane_3 fo.operator() ( Kernel::Ray_3 r, Kernel::Point_3 p)
introduces a plane that is defined through the three points r.point(0), r.point(1) and p.

Kernel::Plane_3
 fo.operator() ( Kernel::Segment_3 s, Kernel::Point_3 p)
introduces a plane that is defined through the three points s.source(), s.target() and p.

### Refines

AdaptableFunctor (with two arguments)