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

◆ lwpoly_covers_lwline()

int lwpoly_covers_lwline ( const LWPOLY poly,
const LWLINE line 
)

Definition at line 2526 of file lwgeodetic.c.

2527{
2528 /* Nulls and empties don't contain anything! */
2529 if ( ! poly || lwgeom_is_empty((LWGEOM*)poly) )
2530 {
2531 LWDEBUG(4,"returning false, geometry1 is empty or null");
2532 return LW_FALSE;
2533 }
2534
2535 /* Nulls and empties don't contain anything! */
2536 if ( ! line || lwgeom_is_empty((LWGEOM*)line) )
2537 {
2538 LWDEBUG(4,"returning false, geometry2 is empty or null");
2539 return LW_FALSE;
2540 }
2541
2542 if (LW_FALSE == lwpoly_covers_pointarray(poly, line->points))
2543 {
2544 LWDEBUG(4,"returning false, geometry2 has point outside of geometry1");
2545 return LW_FALSE;
2546 }
2547
2548 /* check for any edge intersections, so nothing is partially outside of poly1 */
2549 if (LW_TRUE == lwpoly_intersects_line(poly, line->points))
2550 {
2551 LWDEBUG(4,"returning false, geometry2 is partially outside of geometry1");
2552 return LW_FALSE;
2553 }
2554
2555 /* no abort condition found, so the poly2 should be completely inside poly1 */
2556 return LW_TRUE;
2557}
#define LW_FALSE
Definition liblwgeom.h:94
#define LW_TRUE
Return types for functions with status returns.
Definition liblwgeom.h:93
int lwpoly_intersects_line(const LWPOLY *lwpoly, const POINTARRAY *line)
Checks if any edges of lwpoly intersect with the line formed by the pointarray return LW_TRUE if any ...
int lwpoly_covers_pointarray(const LWPOLY *lwpoly, const POINTARRAY *pta)
return LW_TRUE if all points are inside the polygon
#define LWDEBUG(level, msg)
Definition lwgeom_log.h:101
static int lwgeom_is_empty(const LWGEOM *geom)
Return true or false depending on whether a geometry is an "empty" geometry (no vertices members)
Definition lwinline.h:199

References LW_FALSE, LW_TRUE, LWDEBUG, lwgeom_is_empty(), lwpoly_covers_pointarray(), lwpoly_intersects_line(), and LWLINE::points.

Referenced by lwgeom_covers_lwgeom_sphere().

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