GEOS  3.13.0dev
Public Member Functions | Static Public Member Functions | List of all members
geos::algorithm::construct::MaximumInscribedCircle Class Reference

#include <MaximumInscribedCircle.h>

Public Member Functions

 MaximumInscribedCircle (const geom::Geometry *polygonal, double tolerance)
 
std::unique_ptr< geom::PointgetCenter ()
 
std::unique_ptr< geom::PointgetRadiusPoint ()
 
std::unique_ptr< geom::LineStringgetRadiusLine ()
 

Static Public Member Functions

static std::unique_ptr< geom::PointgetCenter (const geom::Geometry *polygonal, double tolerance)
 
static std::unique_ptr< geom::LineStringgetRadiusLine (const geom::Geometry *polygonal, double tolerance)
 
static std::size_t computeMaximumIterations (const geom::Geometry *geom, double toleranceDist)
 

Detailed Description

Computes the Euclidean distance (L2 metric) from a Point to a Geometry.

Also computes two points which are separated by the distance.

Member Function Documentation

◆ computeMaximumIterations()

static std::size_t geos::algorithm::construct::MaximumInscribedCircle::computeMaximumIterations ( const geom::Geometry geom,
double  toleranceDist 
)
static

Computes the maximum number of iterations allowed. Uses a heuristic based on the area of the input geometry and the tolerance distance. The number of tolerance-sized cells that cover the input geometry area is computed, times a safety factor. This prevents massive numbers of iterations and created cells for casees where the input geometry has extremely small area (e.g. is very thin).

Parameters
geomthe input geometry
toleranceDistthe tolerance distance
Returns
the maximum number of iterations allowed

◆ getCenter() [1/2]

std::unique_ptr<geom::Point> geos::algorithm::construct::MaximumInscribedCircle::getCenter ( )

Gets the center point of the maximum inscribed circle (up to the tolerance distance).

Returns
the center point of the maximum inscribed circle

◆ getCenter() [2/2]

static std::unique_ptr<geom::Point> geos::algorithm::construct::MaximumInscribedCircle::getCenter ( const geom::Geometry polygonal,
double  tolerance 
)
static

Computes the center point of the Maximum Inscribed Circle of a polygonal geometry, up to a given tolerance distance.

Parameters
polygonala polygonal geometry
tolerancethe distance tolerance for computing the center point
Returns
the center point of the maximum inscribed circle

◆ getRadiusLine() [1/2]

std::unique_ptr<geom::LineString> geos::algorithm::construct::MaximumInscribedCircle::getRadiusLine ( )

Gets a line representing a radius of the Largest Empty Circle.

Returns
a line from the center of the circle to a point on the edge

◆ getRadiusLine() [2/2]

static std::unique_ptr<geom::LineString> geos::algorithm::construct::MaximumInscribedCircle::getRadiusLine ( const geom::Geometry polygonal,
double  tolerance 
)
static

Computes a radius line of the Maximum Inscribed Circle of a polygonal geometry, up to a given tolerance distance.

Parameters
polygonala polygonal geometry
tolerancethe distance tolerance for computing the center point
Returns
a line from the center to a point on the circle

◆ getRadiusPoint()

std::unique_ptr<geom::Point> geos::algorithm::construct::MaximumInscribedCircle::getRadiusPoint ( )

Gets a point defining the radius of the Maximum Inscribed Circle. This is a point on the boundary which is nearest to the computed center of the Maximum Inscribed Circle. The line segment from the center to this point is a radius of the constructed circle, and this point lies on the boundary of the circle.

Returns
a point defining the radius of the Maximum Inscribed Circle

The documentation for this class was generated from the following file: