Yes, that's true, except in the case where both endpoints are intersected. You still have to check for this and discard such a segment from the count:
*----------*
| |
| | A=1
| |
| @====X-----X==========>
| B=0 |
| | C=0
| |
*----------------*
Moving clockwise, the second endpoint on A counts, since it wasn't part of the previous segment. If we counted the second endpoint of B, however, we'd end up with an even number, because this point cannot also count in C. So we have to discard segment B entirely. | [reply] [d/l] |
You're right, and we mustn't forget anther nasty case:
@=======*=====>
/ \
/ \
/_____\
Here, we want to count the end-point twice! Endpoints are nasty. If you intersect one, you need to be careful.
--Dave | [reply] |