vtkOBBTree not giving full coverage even for the sample solid

The example VisualizeOBBTree, when run with NumberOfCellsPerNode = 5 and MaxLevel = 10 gives what follows for the sample solid, a simple convex sphere-like solid.

Why is that?

The header comments in the source code reports this quite cryptic sentence:

 * @warning
 * Since this algorithm works from a list of cells, the OBB tree will only
 * bound the "geometry" attached to the cells if the convex hull of the
 * cells bounds the geometry.

and another one which should not apply for this simple case:

 * @warning
 * Long, skinny cells (i.e., cells with poor aspect ratio) may cause
 * unsatisfactory results.

Thanks in advance.

My guess is that when displaying level “5” then all OBB nodes of the specified level 5 are shown. It may be that in some regions the tree building terminated at lower levels <5 so these appear to not have coverage.

I was guessing something similar, but actually the uncovered areas are quite huge, so there is no reason to think that some level 4 boxes (which are, given the simmetry of the example, more or less of equal volume) cannot be split any longer.
IMHO the algorithm does not properly account for the correct portion of space given by the intersection of the original mesh with an OBB at some level (which is somewhat reported with an unclear wording in the first warning in the comments), but this would be a (severe) bug.

The community is quite responsive to issues, so please send code/data that demonstrates an issue. Holding an opinion about whether a bug exists or not is very hard to debug :slight_smile:

The information I provided is enough to replicate the behaviour, as I stuck to a public example on purpose.
I provided a possible explanation as a hint of what is (and is not) occurring just in reply to your ‘opinion’.

Regards.