## Kernel::ConstructPointOn_3

A model for this must provide:

Kernel::Point_3 | fo.operator() ( Kernel::Line_3 l, int i)
|  | returns an arbitrary point on l. It holds point(i) == point(j), iff i==j. Furthermore, is directed from point(i) to point(j), for all i < j.
Kernel::Point_3 | fo.operator() ( Kernel::Plane_3 h)
|  | returns an arbitrary point on h.
Kernel::Point_3 | fo.operator() ( Kernel::Ray_3 r, int i)
|  | returns a point on r. point(0) is the source, point(i), with i>0, is different from the source. Precondition: i 0.
Kernel::Point_3 | fo.operator() ( Kernel::Segment_3 s, int i)
|  | returns source or target of s: point(0) returns the source of s, point(1) returns the target of s. The parameter i is taken modulo 2, which gives easy access to the other end point.

### Refines

AdaptableFunctor (with two arguments)

### See Also

CGAL::Line_3<Kernel>
CGAL::Plane_3<Kernel>
CGAL::Ray_3<Kernel>
CGAL::Segment_3<Kernel>