19 #ifndef GEOS_ALGORITHM_DISTANCE_POINTPAIRDISTANCE_H
20 #define GEOS_ALGORITHM_DISTANCE_POINTPAIRDISTANCE_H
22 #include <geos/constants.h>
23 #include <geos/geom/Coordinate.h>
37 class PointPairDistance {
42 distanceSquared(DoubleNotANumber),
53 initialize(
const geom::Coordinate& p0,
const geom::Coordinate& p1)
57 distanceSquared = p0.distanceSquared(p1);
64 return std::sqrt(distanceSquared);
67 const std::array<geom::Coordinate, 2>&
68 getCoordinates()
const
73 const geom::Coordinate&
74 getCoordinate(
size_t i)
const
76 assert(i < pt.size());
83 setMaximum(ptDist.pt[0], ptDist.pt[1]);
93 double distSq = p0.distanceSquared(p1);
94 if(distSq > distanceSquared) {
95 initialize(p0, p1, distSq);
100 setMinimum(
const PointPairDistance& ptDist)
102 setMinimum(ptDist.pt[0], ptDist.pt[1]);
106 setMinimum(
const geom::Coordinate& p0,
const geom::Coordinate& p1)
112 double distSq = p0.distanceSquared(p1);
113 if(distSq < distanceSquared) {
114 initialize(p0, p1, distSq);
133 initialize(
const geom::Coordinate& p0,
const geom::Coordinate& p1,
138 distanceSquared = distSquared;
142 std::array<geom::Coordinate, 2> pt;
144 double distanceSquared;
153 #endif // GEOS_ALGORITHM_DISTANCE_POINTPAIRDISTANCE_H