Fuse shapes resulting from a GFA

Hi friends,

I'm using a multi-steps process to build shapes.
1 => build many independent TopoDS_Solid
2 => make a General Fuse on all the solids to find split parts, and make all solids share there common parts
...
N => fuse some solids together.

For that step, I need a tool too make a Fuse in a pure topological way, without any intersection step.
BRepAlgoAPI_Fuse + BOPAlgo_GlueFull could do the trick, but some unneeded intersection steps are still performed.
BRepAlgoAPI_Fuse + BOPAlgo_PaveFiller could be the one, but since GFA is done in another step of my process, I do not have access to it.

Any advice appreciated ;-)

Mikhail Sazonov's picture

I think BOPAlgo_CellsBuilder should help in your case. Using this class you can build intersection only ones and then construct any topological objects from the splits using the same instance of the algorithm.

Vilo 176's picture

Thank Mikhail for your hint.

Sorry, I should have been more clear in my post : the 2 phases (ie. GFA and Fuse) cannot be part of the same step.
Thus, I cannot keep in memory the tool used for GFA (being BOPAlgo_CellsBuilder or BOPAlgo_Builder or anything else) to later perform the Fuse.

What I need is a tool that takes as input a fully topological model resulting from manual or GFA, and that performs CSG on it (at least Fuse).
For now I'll stay with BRepAlgoAPI_Fuse + BOPAlgo_GlueFull.

Eugeny's picture

It is not really clear what is meant by "some unneeded intersection steps are still performed."
Even for the full glue mode, there have to be some checks just to make sure that the vertices and edges coincide. If you have topologically the same vertices, edges, and faces in both arguments of the operation then you may e.g. use the BRep_Builder directly. This will be the fastest solution, but not the easiest and safest one. But in the case of topological coincidence, the BOP should also be very fast.
If you still think that the BOP performs unnecessary intersections in full glue mode, or the performance is not quite good, you are welcome to register a bug in mantis for this case.