Will this library have a C interface? If so, most any language can use it – if C++ interface only, then only C++, and since C++ doesn’t have a binary api… I think composition of functions is the primary desirable language feature for CSG modeling, object oriented stuff, not so much. Closures would be nice too, so I could have a way to write a function like:
to for example, evenly distribute 10 of “something” around a circle without regard to what “something” was or how many parameters it might take.
In any case, I did a really hacky C/openscad library here just as some “recreational computer programming”:
http://smcameron.github.com/opencscad/ Yours will no doubt be superior since you plan to get away from outputting openSCAD code.
In my little openSCAD C library, I considered implementing a form of “closures” by simply redirecting the openscad code into a temporary buffer, to be replayed by whatever needed the “closure”, so I could do something like this:
buffer = closure(make_some_complicated_object(whatever, params)); /* closure() just dumps the openscad code into a buffer which it returns. */
and distribute_closure_around_circle could be written without knowledge of what it was distributing, since what it would be distributing is just a text buffer containing arbitrary openscad code.
I never really tried that out to see if it would work though.