I have made a set of classes that facilitates texture mapping (quadwarp, bezierwarp, keystone, etc.) on straight or curved projection surfaces. I have also a class (ClusterBezierWarp) that is intended for texture mapping in a cluster projection set-up (edge blending, etc.).
The library is named
mappingtools and is available here: