Let me try
- I am writing a Rhino plugin (Project P), that uses a lot of geometric functionality that has been abstracted to a Core dll (Project C), both of which depend on
RhinoCommon
. The idea is to write reusable code in Project C that could be used for other plugins, GH components, etc. - I am trying to write unit tests for Project C, to verify that the computations are correct. The tests are meant to be ran on Build in pure VS, without firing an instance of a Rhino application to handle them.
- For the tests, I am trying to load some geometry from sample
3dm
files, convert to geometry types (Brep
,Curve
, etc.) and use those in the tests. - If I use
RhinoCommon
in the unit test project, when I read 3dm files usingFile3dm
I run into this problem, because I am not inside a Rhino application. - If I use
RhinoCommon
to try to load that same geometry from a serializedjson
file, I run into the same issue when working withCommonObject
. - If I use
Rhino3dm
for either of the two options above, loading the 3dm file works great. However, now the problem is that theRhino3dm
Geometry classes in the unit tests are not compatible with theirRhinoCommon
siblings used in Project C. Therefore, can not use them to test the Project C library. - At this point in the project, we cannot change Project P and/or C to depend on
Rhino3dm
, and I also don’t think that would be good for either, since they are targeting living inside a Rhino runtime…
Sooo, I am kind of stuck here, and not sure how to move forward. Ideally, I would like to be able to load geometry from a file using RhinoCommon
headles, or find a way to marshall between a Rhino3dm
Brep
and a RhinoCommon
one for example. But even this last option would probably not work, since a project cannot depend on both RhinoCommon
and Rhino3dm
at the same time!
Any help would be much appreciated, thanks a lot @stevebaer