Problem of modeling with non-regular boolean operation

Hello all,
I am dealing with non-regular boolean operation using the tool BOPAlgo_Cellsbuilder class. I found that in some situations the boolean operations will go wrong when dealing with complex shapes that have tiny parts. For example, I built 3 cones and tried to build a single branch with them using BOPAlgo_CellsBuilder. It was supposed to make several seperate cells that stick to each other firstly,and then remove the shared faces and boundaries to make the compound a single shape that has no faces,edges or verteces inside the shape.
However I found that there are always some faces or edges remained in the final shape.I tried some methods to solve the problem,such as changing tolerance, setting the nonDestructive Flag true. But none of them worked.
My codes and models are uploaded.If anyone met the same problem or knows how to solve it, please reply. Thank you!