PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lw_dist2d_selected_seg_seg()

int lw_dist2d_selected_seg_seg ( const POINT2D A,
const POINT2D B,
const POINT2D C,
const POINT2D D,
DISTPTS dl 
)

This is the same function as lw_dist2d_seg_seg but without any calculations to determine intersection since we already know they do not intersect.

Definition at line 2264 of file measures.c.

2265{
2266 /*A and B are the same point */
2267 if ((A->x == B->x) && (A->y == B->y))
2268 {
2269 return lw_dist2d_pt_seg(A, C, D, dl);
2270 }
2271 /*U and V are the same point */
2272
2273 if ((C->x == D->x) && (C->y == D->y))
2274 {
2275 dl->twisted *= -1;
2276 return lw_dist2d_pt_seg(D, A, B, dl);
2277 }
2278
2279 if ((lw_dist2d_pt_seg(A, C, D, dl)) && (lw_dist2d_pt_seg(B, C, D, dl)))
2280 {
2281 /* change the order of inputted geometries and that we notice by changing sign on dl->twisted */
2282 dl->twisted *= -1;
2283 return ((lw_dist2d_pt_seg(C, A, B, dl)) && (lw_dist2d_pt_seg(D, A, B, dl)));
2284 }
2285 else
2286 return LW_FALSE; /* if any of the calls to lw_dist2d_pt_seg goes wrong we return false*/
2287}
#define LW_FALSE
Definition liblwgeom.h:108
int lw_dist2d_pt_seg(const POINT2D *p, const POINT2D *A, const POINT2D *B, DISTPTS *dl)
lw_dist2d_comp from p to line A->B This one is now sending every occasion to lw_dist2d_pt_pt Before i...
Definition measures.c:2305
int twisted
Definition measures.h:55
double y
Definition liblwgeom.h:376
double x
Definition liblwgeom.h:376

References lw_dist2d_pt_seg(), LW_FALSE, DISTPTS::twisted, POINT2D::x, and POINT2D::y.

Referenced by lw_dist2d_pre_seg_seg().

Here is the call graph for this function:
Here is the caller graph for this function: