I mangle and decimate large datasets for engineers and scientists to get them in shape to be imported into tools like CAD and Matlab. I had previously written a simple tool which would get rid of all points outside a bounding box; but one of my engineers wanted to be able to specify an arbitrary polygon instead of just a box.
I snipped out my simple box code and dropped in Math::Polygon code. Everything worked perfectly on the very first try, no bugs, bounding a 45M dataset with an irregular 27-vertice poly perfectly (and chopping the dataset itself down to 4.4M).
THANK YOU for this module! There was MUCH wailing and gnashing of teeth when I thought I was going to have to implement this stuff myself. =)
This module saved me a lot of time! It's easy to use despite its power and provides both functional and OO interfaces.
The only thing I dislike is the usage of CamelCase for method names, e.g. $obj->is_clockwise would be more perlish than $obj->isClockwise imho.