The library comes in two parts. First, there's a geometry section, which describes abstract models of Hexes, Areas, Paths and Boundaries. This is complete and ready to use. Secondly there's an SVG section, that contains utilities for rendering the geometry objects into SVG. I'm a little less-sure about the interface to this section. Nevertheless, it's still perfectly functional.
Hopefully this will enable me to write that web-game, the next time the urge strikes me. What web-game? Well, I keep getting ideas for little online games that would use a hex grid. I've started writing more than one, but always given up really quickly. The mechanics of the hex-grid aren't as simple as they look, and when I'm all fired up about writing a game I don't have the patience to fiddle with sixfold geometry. But sadly, a bit of fiddling is required.
This time when I got the urge to write a little web-game, I stopped myself. I realised that I wouldn't get anywhere because I needed a library of hex-routines. Google turned up nothing, so I decided to put all that energy into writing the library. The next time I get the urge, this library will be ready and waiting.
Still to do
I've used SWIG to translate the C++ interface into Python. I'm not sure that's such a good idea, because it makes deployment a real pain. It would be great if someone who knows about deploying Python packages could help me out here. Failing that, I suppose that I could implement the whole lot in pure-Python. Once the algorithms are correct, it's just legwork to translate it into a different language. I'm reluctant though, because it will be difficult to keep all those versions in synch.
So, please, please try out libhex. Let me know how you get on.