Face Warping/Bending

I create 2D shapes defined as TopoDS_Face, created from points and BezierCurves. All is well in my happy little 2D world...

But, I now have need to *bend* these 2D faces, in a single axis, from 90-360degrees. To explain, imagine a 2D rectangle bending around to create a pipe/cylinder shape (but not connected).

Although I've created a mathematical concept to do this, its not working properly and I'm getting angry with it. Thought I'd then ask the question....

Is there an OpenCascade function which can do this?

cheers!