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

◆ itree_point_in_ring()

static IntervalTreeResult itree_point_in_ring ( const IntervalTree itree,
uint32_t  ringNumber,
const POINT2D pt 
)
static

Definition at line 435 of file intervaltree.c.

436{
437 int winding_number = 0;
438 const IntervalTreeNode *node = itree->indexes[ringNumber];
439 const POINTARRAY *pa = itree->indexArrays[ringNumber];
440 IntervalTreeResult rslt = itree_point_in_ring_recursive(node, pa, pt, &winding_number);
441
442 /* Boundary case is separate from winding number */
443 if (rslt == ITREE_BOUNDARY) return rslt;
444
445 /* Not boundary, so evaluate winding number */
446 if (winding_number == 0)
447 return ITREE_OUTSIDE;
448 else
449 return ITREE_INSIDE;
450}
static IntervalTreeResult itree_point_in_ring_recursive(const IntervalTreeNode *node, const POINTARRAY *pa, const POINT2D *pt, int *winding_number)
IntervalTreeResult
@ ITREE_BOUNDARY
@ ITREE_INSIDE
@ ITREE_OUTSIDE
struct IntervalTreeNode ** indexes
POINTARRAY ** indexArrays

References IntervalTree::indexArrays, IntervalTree::indexes, ITREE_BOUNDARY, ITREE_INSIDE, ITREE_OUTSIDE, and itree_point_in_ring_recursive().

Referenced by itree_point_in_multipolygon().

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