146{
147 uint32_t i;
150 int wn = 0;
151 int winding_number = 0;
152 int result;
153
154 for ( i = 0; i < comp->
ngeoms; i++ )
155 {
158 {
161 {
163 }
164 else
165 {
166
168 }
169 }
170 else
171 {
173 if ( ! lwcirc ) {
175 return 0;
176 }
178 {
180 }
181 else
182 {
183
185 }
186 }
187
188
191
192 wn += winding_number;
193 }
194
195
196 if (wn == 0)
198
199
201}
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
LWCIRCSTRING * lwgeom_as_lwcircstring(const LWGEOM *lwgeom)
LWLINE * lwgeom_as_lwline(const LWGEOM *lwgeom)
int ptarray_contains_point_partial(const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number)
#define LW_INSIDE
Constants for point-in-polygon return values.
int ptarrayarc_contains_point(const POINTARRAY *pa, const POINT2D *pt)
For POINTARRAYs representing CIRCULARSTRINGS.
int ptarray_contains_point(const POINTARRAY *pa, const POINT2D *pt)
Return 1 if the point is inside the POINTARRAY, -1 if it is outside, and 0 if it is on the boundary.
int ptarrayarc_contains_point_partial(const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.