ID 328930 - Viewport.insertLayer() doesn't respect the given index

Follow

Problem summary:

Calling Viewport.insertLayer() will insert a new ViewportLayer into a viewport, however it does not correctly update the internal look-up tables, so getting layers by name etc does not work correctly from that point on.

Steps to reproduce:

1.Open the hydra viewer

2. Run the following code in the Python tab:


tab = UI4.App.Tabs.FindTopTab('Hydra Viewer')
delegate = tab.getViewerDelegateByIndex(0)
for vp in tab.getViewports(delegate):
    vp.insertLayer("GridLayer", "newGrid", 2)
    for i in range(vp.getNumberOfLayers()):
        print vp.getLayerName(i)

Expected behaviour:


The output should be:
CameraControlLayer
GridLayer
newGrid
SceneLayer
CameraGateLayer
BallLayer
GLManipulatorLayer
HUDLayer

Actual behaviour:

The output is: 


CameraControlLayer
GridLayer
SceneLayer
CameraGateLayer
BallLayer
GLManipulatorLayer
HUDLayer
<blank line>

Workaround:

No known workaround.

Reproduced versions/platforms:

  • 3.0v1a4

Customer version/platform:

Not supplied

    We're sorry to hear that

    Please tell us why