Does anyone have good implementation strategies or resources to build a b-rep simulation system?
OpenCascade is apparently a good b-rep modeling library (used by FreeCad and PythonOCC, very cool), but the library is huge, complex, and perhaps not a good starting point to learn about b-rep modeling mechanisms.
I have done quite a bit of research, and while fundamental mathematics is useful for understanding why everything works, it left me with some implementation issues.
half edge data- structure seems to be the preferred way to store body information in b-rep implementations.
So, a few questions in a specific order:
Using a semi-task data structure, how is the rendering usually done? Hard Boundary Triangulation?
How are circular surfaces / curved surfaces typically implemented? For example, the cylinder in one basic introduction to b-rep, which I read, was internally stored as a prism. The extruded triangle IE and metadata were stored around the edge of the caps, indicating that they were truly circular.
How are logical operations usually performed? I read about generating a BSP tree along intersection curves, then combining these trees to generate new geometry. Are there other ways to implement logical operations and what kind of pro / con do they have?
Thanks!
If you want to provide an example code, donβt worry about the language - the questions are more about implementation details of the algorithmic / data structure.
source share