Program Listing for File ConvexHull.h
↰ Return to documentation for file (ADS/geometry/ConvexHull.h)
/*--------------------------------------------------------------------------*/
/*--------------------------- File ConvexHull.h ----------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_ConvexHull
#define __ADS_ConvexHull
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include <algorithm>
#include "ADS/Contract.h"
#include "ADS/sort/Sort.h"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
struct Point {
long x , y;
bool operator==( const Point & ) const = default;
};
inline long long cross( const Point & a , const Point & b ,
const Point & c );
inline bool sameSide( const Point & p1 , const Point & p2 , const Point & p ,
const Point & q );
inline double pseudoAngle( long dx , long dy );
inline std::vector< Point > convexHullBrute( std::vector< Point > P );
inline std::vector< Point > graham( std::vector< Point > P );
inline std::vector< Point > convexHull( const std::vector< Point > & P );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/geometry/impl/ConvexHull.tpp"
/*--------------------------------------------------------------------------*/
#endif /* ConvexHull.h included */
/*--------------------------------------------------------------------------*/
/*------------------------- End File ConvexHull.h --------------------------*/
/*--------------------------------------------------------------------------*/