## CGAL::Extremal_polygon_perimeter_traits_2<K>

| advanced |

### Definition

The class Extremal_polygon_perimeter_traits_2 provides the types and operations needed to compute a maximum perimeter k-gon Pk that can be inscribed into a given convex polygon P using the function extremal_polygon_2.

### Requirements

The template parameter K is a model for Kernel.

### Is Model for the Concept

ExtremalPolygonTraits_2

### Types

Extremal_polygon_perimeter_traits_2<K>::FT
| typedef to K::FT.
Extremal_polygon_perimeter_traits_2<K>::Point_2
| typedef to K::Point_2.
Extremal_polygon_perimeter_traits_2<K>::Less_xy_2
| typedef to K::Less_xy_2.
Extremal_polygon_perimeter_traits_2<K>::Orientation_2
| typedef to K::Orientation_2.
Extremal_polygon_perimeter_traits_2<K>::Operation
| AdaptableBinaryFunction class op: Point_2 × Point_2 FT. For a fixed Point_2 root, op(p,q) returns d(r,p) + d(p,q) - d(r,q) where d denotes the Euclidean distance.

### Operations

int | t.min_k () const | returns 2.
FT | t.init ( const Point_2& p, const Point_2& q) const
|  | returns twice the Euclidean distance between p and q.
Operation | t.operation ( const Point_2& p) const
|  | returns Operation where p is the fixed root point.
template < class RandomAccessIterator, class OutputIterator >

OutputIterator

t.compute_min_k_gon ( | RandomAccessIterator points_begin, RandomAccessIterator points_end, FT& max_area, OutputIterator o)

const

|  | writes the pair (points_begin[0], p) where p is drawn from [points_begin, points_end) such that the Euclidean distance between both points is maximized (maximum perimeter 2-gon rooted at points_begin[0]) to o and returns the past-the-end iterator for that sequence (== o + 2).
Less_xy_2 | t.less_xy_2_object ()
Orientation_2 | t.orientation_2_object ()

### See Also

CGAL::maximum_area_inscribed_k_gon_2
CGAL::maximum_perimeter_inscribed_k_gon_2
CGAL::extremal_polygon_2
CGAL::Extremal_polygon_area_traits_2<K>
ExtremalPolygonTraits_2

| advanced |