GEOS
3.9.1dev
|
#include <LargestEmptyCircle.h>
Classes | |
class | Cell |
Public Member Functions | |
LargestEmptyCircle (const geom::Geometry *p_obstacles, double p_tolerance) | |
LargestEmptyCircle (const geom::Geometry *p_obstacles, const geom::Geometry *p_boundary, double p_tolerance) | |
~LargestEmptyCircle ()=default | |
std::unique_ptr< geom::Point > | getCenter () |
std::unique_ptr< geom::Point > | getRadiusPoint () |
std::unique_ptr< geom::LineString > | getRadiusLine () |
Static Public Member Functions | |
static std::unique_ptr< geom::Point > | getCenter (const geom::Geometry *p_obstacles, double p_tolerance) |
static std::unique_ptr< geom::LineString > | getRadiusLine (const geom::Geometry *p_obstacles, double p_tolerance) |
Private Member Functions | |
void | setBoundary (const geom::Geometry *obstacles) |
double | distanceToConstraints (const geom::Coordinate &c) |
double | distanceToConstraints (double x, double y) |
void | compute () |
bool | mayContainCircleCenter (const Cell &cell, const Cell &farthestCell) |
void | createInitialGrid (const geom::Envelope *env, std::priority_queue< Cell > &cellQueue) |
Cell | createCentroidCell (const geom::Geometry *geom) |
Private Attributes | |
double | tolerance |
const geom::Geometry * | obstacles |
const geom::GeometryFactory * | factory |
std::unique_ptr< geom::Geometry > | boundary |
operation::distance::IndexedFacetDistance | obstacleDistance |
bool | done |
std::unique_ptr< algorithm::locate::IndexedPointInAreaLocator > | ptLocator |
std::unique_ptr< operation::distance::IndexedFacetDistance > | boundaryDistance |
geom::Coordinate | centerPt |
geom::Coordinate | radiusPt |
Computes the Euclidean distance (L2 metric) from a Point to a Geometry.
Also computes two points which are separated by the distance.
Definition at line 60 of file LargestEmptyCircle.h.
geos::algorithm::construct::LargestEmptyCircle::LargestEmptyCircle | ( | const geom::Geometry * | p_obstacles, |
double | p_tolerance | ||
) |
Creates a new instance of a Largest Empty Circle construction.
p_obstacles | a geometry representing the obstacles (points and lines) |
p_tolerance | the distance tolerance for computing the circle center point |
geos::algorithm::construct::LargestEmptyCircle::LargestEmptyCircle | ( | const geom::Geometry * | p_obstacles, |
const geom::Geometry * | p_boundary, | ||
double | p_tolerance | ||
) |
|
default |
|
private |
|
private |
|
private |
|
private |
Computes the signed distance from a point to the constraints (obstacles and boundary). Points outside the boundary polygon are assigned a negative distance. Their containing cells will be last in the priority queue (but will still end up being tested since they may be refined).
c | the point to compute the distance for |
|
private |
|
static |
Computes the center point of the Largest Empty Circle `within a set of obstacles, up to a given tolerance distance.
p_obstacles | a geometry representing the obstacles (points and lines) |
p_tolerance | the distance tolerance for computing the center point |
std::unique_ptr<geom::Point> geos::algorithm::construct::LargestEmptyCircle::getCenter | ( | ) |
|
static |
Computes a radius line of the Largest Empty Circle within a set of obstacles, up to a given distance tolerance.
p_obstacles | a geometry representing the obstacles (points and lines) |
p_tolerance | the distance tolerance for computing the center point |
std::unique_ptr<geom::LineString> geos::algorithm::construct::LargestEmptyCircle::getRadiusLine | ( | ) |
std::unique_ptr<geom::Point> geos::algorithm::construct::LargestEmptyCircle::getRadiusPoint | ( | ) |
|
private |
|
private |
|
private |
Definition at line 105 of file LargestEmptyCircle.h.
|
private |
Definition at line 109 of file LargestEmptyCircle.h.
|
private |
Definition at line 110 of file LargestEmptyCircle.h.
|
private |
Definition at line 107 of file LargestEmptyCircle.h.
|
private |
Definition at line 104 of file LargestEmptyCircle.h.
|
private |
Definition at line 106 of file LargestEmptyCircle.h.
|
private |
Definition at line 103 of file LargestEmptyCircle.h.
|
private |
Definition at line 108 of file LargestEmptyCircle.h.
|
private |
Definition at line 111 of file LargestEmptyCircle.h.
|
private |
Definition at line 102 of file LargestEmptyCircle.h.