Needed it with a radial number selector thingaling and the basic intersect (and pointIntersect from it's answers) didn't mesh too well to my problem without 'dirty' fixes.
Anyway hope it helps someone.
Code: Select all
answer windingIntersect(mouseLoc(),the points of grc "polygonmess")
function windingIntersect p0, inPoints
put 0 into winding
split p0 by comma
repeat with i = 1 to (the num of lines in inPoints-1)
put line i of inPoints into p1
put line i+1 of inPoints into p2
split p1 by comma
split p2 by comma
if (p1[2] <= p0[2]) then
if (p2[2] > p0[2]) then
if ((((p2[1]-p1[1])*(p0[2]-p1[2]))-((p0[1]-p1[1])*(p2[2]-p1[2]))) > 0) then
add 1 to winding
end if
end if
else
if (p2[2] <= p0[2]) then
if ((((p2[1]-p1[1])*(p0[2]-p1[2]))-((p0[1]-p1[1])*(p2[2]-p1[2]))) < 0) then
subtract 1 from winding
end if
end if
end if
end repeat
if (winding <> 0) then
return true
else
return false
end if
end windingIntersect