For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

Boolean operations algorithm

Aviv Hurvitz's picture


I'm using the Boolean cut operation and I'm very pleased with it. I've been looking at the code and trying to figure out how it works. I saw no mention of the name of the algorithm used or any overview of its workings. Could anyone give me more information about the algorithm? I'd be grateful for answers to any of the following questions:

1. Does the algorithm have a name and if so what is it?
2. Was the algorithm ever published in academic literature? Would you please give me a reference?
3. Do you know of any bound on the asymptotic run-time complexity of the algorithm? (i.e. big-O notation)
4. And my primary question, how does it work?

I've been using OpenCascade for a while now and I noticed that while the documentation is fairly good, it doesn't do OCC justice. OCC is full of undocumented features and pleasant surprises. The algorithms and data structures used for the Boolean operations are just one example of this. The code is very organized but has few comments. The CDL files are terse. Trying to figure out the big picutre is an exercise in reverse-engineering. If you are an OCC developer, don't take this the wrong way. The quality of the code is really outstanding.