PostGIS  2.2.8dev-r@@SVN_REVISION@@

◆ lw_dist2d_pt_pt()

int lw_dist2d_pt_pt ( const POINT2D P,
const POINT2D Q,
DISTPTS dl 
)

Compares incomming points and stores the points closest to each other or most far away from each other depending on dl->mode (max or min)

Definition at line 2266 of file measures.c.

References DISTPTS::distance, LW_TRUE, DISTPTS::mode, DISTPTS::p1, DISTPTS::p2, DISTPTS::twisted, POINT2D::x, and POINT2D::y.

Referenced by lw_dist2d_arc_arc(), lw_dist2d_point_point(), lw_dist2d_pre_seg_seg(), lw_dist2d_pt_arc(), lw_dist2d_pt_ptarray(), lw_dist2d_pt_ptarrayarc(), lw_dist2d_pt_seg(), lw_dist2d_ptarray_ptarray(), and lw_dist2d_seg_arc().

2267 {
2268  double hside = thep2->x - thep1->x;
2269  double vside = thep2->y - thep1->y;
2270  double dist = sqrt ( hside*hside + vside*vside );
2271 
2272  if (((dl->distance - dist)*(dl->mode))>0) /*multiplication with mode to handle mindistance (mode=1) and maxdistance (mode = (-1)*/
2273  {
2274  dl->distance = dist;
2275 
2276  if (dl->twisted>0) /*To get the points in right order. twisted is updated between 1 and (-1) every time the order is changed earlier in the chain*/
2277  {
2278  dl->p1 = *thep1;
2279  dl->p2 = *thep2;
2280  }
2281  else
2282  {
2283  dl->p1 = *thep2;
2284  dl->p2 = *thep1;
2285  }
2286  }
2287  return LW_TRUE;
2288 }
int mode
Definition: measures.h:27
POINT2D p1
Definition: measures.h:25
#define LW_TRUE
Return types for functions with status returns.
Definition: liblwgeom.h:61
POINT2D p2
Definition: measures.h:26
int twisted
Definition: measures.h:28
double distance
Definition: measures.h:24
Here is the caller graph for this function: