GEOMAlgo_Splitter/BOPAlgo_Splitter do not reconstruct shells/compounds


 up to a few OCCT 6.9.1 I was using GEOMAlgo_Splitter from Salome in order to make an "imprinting" of adjacent shapes so that they can share common subshapes.

Now,  I have started to use OCCT 7.2.1-dev (master branch) with the development branch of Salome (which has yet been ported to OCCT 7.2.1-dev).

Adjacent shapes are stored in an OCAF tree and typically consist of solids, compounds and shells, the latter being used to represent boundary conditions.

The problem is that the compounds and the shells are not reconstructed any more even when I call PS.SetLimit(TopAbs_COMPOUND) (PS being my instance of GEOMAlgo_Splitter)

Using GEOMAlgo_Splitter::IsDeleted(shape), I have seen that the shapes of type SHELL/COMPOUND (included into the arguments) are simply deleted instead of being inserted into the lists PS.Modified(shape)  or  PS.Generated(shape).

The situation does not change using BOPAlgo_Splitter (which was recently added to OCC) in place of GEOMAlgo_Splitter from Salome.

In this case it is even not possible to specify the reconstruction limit because the function BOPAlgo_Splitter::SetLimit(TopAbs_ShapeEnum) does not exits inside of OCC.

I would like to ask if there is a simple way to enforce the reconstruction of shapes of types SHELL and COMPOUND from BOPAlgo_Splitter or GEOMAlgo_Splitter.


Walter Steffè






Walter Steffè's picture

I am sorry, but it was my fault. The shells are indeed reconstructed. 

I was looking inside of PS.modified(shape) but for arguments of types WIRE, SHELL, COMPSOLID, COMPOUND the results are stored in PS.Images(shape) and not in PS.modified(shape).

Thanks and Merry Christmas