boost::geometry::strategy::convex_hull::graham_andrew
hull_graham_andrew.hpp
boost::geometry::strategy::convex_hull::graham_andrew::partitions
typename InputGeometry
typename OutputPoint
InputGeometry typedef InputGeometry boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::geometry_type geometry_type
OutputPoint typedef OutputPoint boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::point_type point_type
partitions typedef partitions boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::state_type state_type
std::vector< point_type > typedef std::vector<point_type> boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::container_type container_type
cs_tag< point_type >::type typedef cs_tag<point_type>::type boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::cs_tag cs_tag
std::vector< point_type >::const_iterator typedef std::vector<point_type>::const_iterator boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::iterator iterator
std::vector< point_type >::const_reverse_iterator typedef std::vector<point_type>::const_reverse_iterator boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::rev_iterator rev_iterator
void void boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::apply (InputGeometry const &geometry, partitions &state) const apply InputGeometry const & geometry partitions & state
typename OutputIterator
void void boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::result (partitions const &state, OutputIterator out, bool clockwise, bool closed) const result partitions const & state OutputIterator out bool clockwise bool closed
int Factor Factor
void static void boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::add_to_hull (point_type const &p, container_type &output) add_to_hull point_type const & p container_type & output
int Factor Factor
void static void boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::build_half_hull (container_type const &input, container_type &output, point_type const &left, point_type const &right) build_half_hull container_type const & input container_type & output point_type const & left point_type const & right
typename OutputIterator
void static void boost::geometry::strategy::convex_hull::graham_andrew< InputGeometry, OutputPoint >::output_ranges (container_type const &first, container_type const &second, OutputIterator out, bool closed) output_ranges container_type const & first container_type const & second OutputIterator out bool closed

Graham scan strategy to calculate convex hull.

Completely reworked version inspired on the sources listed below

http://www.ddj.com/architect/201806315

http://marknelson.us/2007/08/22/convex

- boost::geometry::strategy::convex_hull::graham_andrew
  add_to_hull
- boost::geometry::strategy::convex_hull::graham_andrew
  apply
- boost::geometry::strategy::convex_hull::graham_andrew
  build_half_hull
- boost::geometry::strategy::convex_hull::graham_andrew
  container_type
- boost::geometry::strategy::convex_hull::graham_andrew
  cs_tag
- boost::geometry::strategy::convex_hull::graham_andrew
  geometry_type
- boost::geometry::strategy::convex_hull::graham_andrew
  iterator
- boost::geometry::strategy::convex_hull::graham_andrew
  output_ranges
- boost::geometry::strategy::convex_hull::graham_andrew
  point_type
- boost::geometry::strategy::convex_hull::graham_andrew
  result
- boost::geometry::strategy::convex_hull::graham_andrew
  rev_iterator
- boost::geometry::strategy::convex_hull::graham_andrew
  state_type