The Hertel_Mehlhorn_convex_decomposition_2<Kernel,Container> class implements the approximation algorithm of Hertel and Mehlhorn for decomposing a polygon into convex sub-polygons [HM83]. This algorithm constructs a triangulation of the input polygon and proceeds by removing unnecessary triangulation edges. Given the triangulation, the algorithm requires O(n) time and space to construct a convex decomposition (where n is the size of the input polygon), whose size is guaranteed to be no more than four times the size of the optimal decomposition.
The Polygon_2 type defined by the class is simply Polygon_2<Kernel,Container>. The Container parameter is by default std::vector<typename Kernel::Point_2>.