Yet another interesting graphic library I thought you might be interested in:
"The openNURBS Toolkit consists of the source code for a library that reads and writes .3DM files used by Rhino and over 250 other applications. In addition, the toolkit provides NURBS evaluation and other simple geometry tools."
That is an interesting library, thanks for the link. The mere fact that it reads 3DM files makes it interesting in and of itself as it would make for an easy means to write a geometry converter/importer.
BRL-CAD already has a NURBS primitive implementation that was worked on about 10 years ago. The code was never brought to a pristine finished state unfortunately but was actually relatively completed from a raytrace perspective -- the main aspect left unfinished was any hooks into MGED for creating/manipulating them outside of code.
It would be interesting to compare the openNURBS library performance and feature set to see what sort of benefits could be derived. The only problem I see with the toolkit is that it is written in C++, whereas the bulk of BRL-CAD is currently C only. This isn't so much of a problem, as C++ is being used to a limited extent and being planned for future projects (e.g. next generation modeler for example), but it is a consideration nonetheless.
(Sorry for the delay answering this. Unfortunately my development box was stolen and I don't forsee replacing it in a near future :(. )
I think the way to go with OpenNURBS would be to use it to write a converter and try to bring the NURBS support in BRLCAD to good shape independently. As you say the mere support for 3DM files is surely worth it. OpenNURBS exists basicly to support the Rhino format; as far as I can tell (from the forums) the support for doing graphic manipulation is limited or non-existent.
There's also a NURBS++ project on libnurbs.sourceforge.net, but although it's a good reference it's probably not the way to go for BRLCAD.
I don't know how this could relate to the current NURBS support but Blender seems to be working nicely in that direction too!
libNurbana is a C++ library with a C wrapper library to support NURBS:
Pedro, Thanks for the link. I'm aware of that (slightly parallel) effort though it is nice to see that they've made some recent progress. It was stagnant for quite a while. Nurbana was written by Justin Shumaker. Justin was also a BRL-CAD developer for a couple years though he didn't work on NURBS back then. He worked on adding photon mapping and then later implemented ADRT (which provides a nice path tracer and high-performance triangle ray tracer).
The world is a handkerchief ;-). Happy Holidays.
Log in to post a comment.