What is “ON_Brep”

What is “ON_Brep”? What does “ON_” refer to?

ON refers to OpenNurbs

See here:
https://developer.rhino3d.com/api/cpp/class_o_n___brep.html

Does that help?

1 Like

where people need openNurbs? since Rhino.Geometry already contains Brep class.

Rhino.Geometry refers to a namespace in RhinoCommon, the .NET programming interface. ON_Brep is used in C++ programming.
In fact, when you use the RhinoCommon .NET programming interface, internally it uses the OpenNURBS C++ library as well. You can think of Rhino.Geometry.Brep as a .NET wrapper for the C++ ON_Brep class.

1 Like

Thank you. So Rhino basically is a C# wrapper of openNurbs.

Why do some people prefer to use openNurbs in Rhino while RhinoCommon is available?
Sorry for my stupid question. I am a newbie.

The Rhino program is built on top of the RhinoSDK and OpenNURBS like so:

  -----Rhino-----
  |             |
Rhino-SDK -> OpenNURBS

OpenNURBS is, as the name suggests, open source. It contains the full geometry data model to allow reading and writing from the 3dm file format. The Rhino SDK, which is not open source, contains all the advanced geometry algorithms, for e.g. boolean operations, trimming, surface intersections, etc. etc. To use the Rhino SDK you need a Rhino license and run your plug-in inside the Rhino process.

The RhinoCommon .NET programming interface wraps around both the Rhino SDK and OpenNURBS.

1 Like

How to define “use the Rhino SDK”? If use “Rhino.” in my code, do I need a Rhino license?

No, you can write any code you want against RhinoCommon. But it will only run inside a Rhino process, which requires a Rhino license.

1 Like

Thank you for your answer. :grinning: