So the Rhino C++ SDK comes with a bunch of OpenNURBS headers, but without the OpenNURBS DLL (I get an opennurbs.dll missing error when using a nurbs object). Does this mean that if I want to use OpenNURBS objects, I have to compile OpenNURBS and use it separately? It’s a little confusing.
The available OpenNURBS library is called opennurbs_public, which seems to be different from what the Rhino SDK uses.
So I’m guessing my question is, how is it possible to use OpenNURBS objects with just what is included in the Rhino SDK, and if that’s not possible, what should be done instead?
1.) The private version of openNURBS is included with Rhino, and is accessible using the Rhino C++ SDK. This version CANNOT be used outside of Rhino, as it is dependent on Rhino for some of it’s core functionality. Also, the Rhino C++ SDK does not include opennurbs.dll, as this is included with Rhino. The Rhino C++ SDK does include an import library, opennurbs.lib that you can link with in your Rhino plug-in projects. All of this is taken care of for you if you generate your C++ plug-in project using the SDK project wizard.
2.) The public version of openNURBS is available on GitHub, and allows you to add Rhino .3dm file reading and writing to non-Rhino applications. Note, the public version of openNURBS is not as full-featured as the private version.
Note, if you are writing a C++ plug-in for Rhino, then you should NOT use the public version of openNURBS.
Thank you for your answer! For this application, I want to use openNURBS and the Rhino SDK in a non-Rhino application (I have no need to render and manipulate anything, it’s just a few mesh operations in the backend). Just to be sure, it is possible to use functionalities from the Rhino SDK without Rhino, correct?
If so, I’ll use the public version of OpenNURBS and link it seperately to the project, along with the Rhino SDK.