The concept RandomPolygonTraits_2 describes the requirements for the traits class used by the function random_polygon_2.

Has Models

The CGAL kernels.


The coordinate type of the points of the polygon (i.e., a field type)

The point type of the polygon.

Predicate object type that determines the orientation of three points. It must provide Orientation operator()(Point_2 p, Point_2 q, Point_2 r) that returns LEFT_TURN, if r lies to the left of the oriented line l defined by p and q, returns RIGHT_TURN if r lies to the right of l, and returns COLLINEAR if r lies on l.

Binary predicate object type comparing Point_2s lexicographically. It must provide bool operator()(Point_2 p, Point_2 q) that returns true iff p <xy q. We have p<xyq, iff px < qx or px = qx and py < qy, where px and py denote the x and y coordinates of point p, resp.


The following two member functions returning instances of the above predicate object types are required.

Less_xy_2 t.less_xy_2_object ()

Orienation_2 t.orientation_2_object ()