Hyper Tree Grid super cursor needs fixes
The super cursors that can be used to access data from neighboring trees are broken. In the current state, this feature is barely usable. I'll list a few bugs I've encountered:
-
When accessing a neighbor from a border of the hyper tree grid, i.e. when accessing a non-existing node outside the extent, the index of this non existing node being returned is
0
, which refers to an existing cell. It should be something like~0
for example, with~0
being astatic constexpr
attribute ofvtkHyperTreeGrid
. -
When wanting to create a
vtkHyperTreeGridNonOrientedGeometryCursor
from avtkHyperTreeGridNonOrientedSuperCursor
, there is aassert(false)
in the code, which will always fail. The issue here is that the created cursor, which should be able to access its parent since it is not oriented, cannot do so, unless we create the cursor by walking from the root of itsvtkHyperTree
to the node. This just needs to be implemented, with a warning in the documentation on the bad performance of such a procedure. -
The
vtkHyperTreeGridOrientedGeometryCursor
that one can create fromvtkHyperTreeGridNonOrientedSuperCursor
has non initialized pointers, such asScales
. This causes random crashes in methods needing this pointer.
There might be other issues. The idea of this issue would be to fix the known issues that I presented, and to do a sweep through the code related to supercursors, testing every method to see if there are other broken parts.