Trouble with correct display of interactive plane for Clip filter in derived render view

Situation: porting ParaView custom application from PV5.10 to 5.12.

Affected plugin: a derived “render view” where only the points related selection buttons are hidden, no own code or functionality added to standard render view (code see below).

Steps before problem arises:

  1. Generate a “cone” with appropriate “Source” (or actually no matter what)
  2. Apply a “Clip” filter - no properties changed - “Apply”
  3. Now with the “Show Plane” checkbox, display of the interactive plane can be turned on or off. This is working in PV 5.12 “original” as well as in the derived custom application.

Steps that generate problem:

  1. While the display is “off”, split the render view vertically and create another render view
    → Even though no objects are shown in the second render view, the “interactive plane” is displayed - in both PV 5.12 “original” and the derived application! Note that the “Clip” filter is selected in the pipeline browser, so the “Properties” panel shows the related properties - and indeed the “Show Plane” checkbox is still “off”
  2. Click into the left (original) render view (where the clipped cone is visible)
    → Now the “interactive plane” is displayed also there, and in the properties panel the checkbox jumps to “on”. Again in both PV 5.12 “original” and derived application
  3. Click back into the right render view and turn on the “Clip” object in the pipeline browser
    → Now in both render views the “interactive plane” is shown, again in both softwares.
  4. The next step is different now for the two softwares: While in “original PV 5.12”, the visibility of the “interactive plane” can be turned off again (affecting both views), this is not possible in the derived application: there the checkbox can now be on or off, but the display stays always in both render views.

To me this looks like there are two issues:

a) Something not really as it should be in PV 5.12 “original”
b) A strange difference in the behaviour between the two softwares - and this although the new plugin uses the same code

Code of the derived render view - 3 files:

CMakeLists.txt:

set(plugin_name AtgRenderView)

paraview_add_plugin(${plugin_name}
  VERSION "1.2.0"
  SERVER_MANAGER_XML plugin.xml
  XML_DOCUMENTATION OFF)

# the only purpose of this is to bring the paraview.plugin file into QtCreator
add_custom_target(${plugin_name}_plugin_spec
  SOURCES
    "${CMAKE_CURRENT_SOURCE_DIR}/paraview.plugin"
    "${CMAKE_CURRENT_SOURCE_DIR}/plugin.xml")

paraview.plugin:

NAME
  AtgRenderView
DESCRIPTION
  Render view with reduced selection functionality, constrained to
  cells only - in order not to confuse the users with point selection
  that is never required for block model handling.
REQUIRES_MODULES
  VTK::CommonCore

plugin.xml:

<!--
 Program: AthosGEO
 Copyright (c) 2018 cobo GmbH
 All rights reserved.
 AthosGEO View is a free software based on ParaView; you can redistribute
 and/or modify it under the same terms as ParaView
-->

<ServerManagerConfiguration>
  <ProxyGroup name="views">
    <RenderViewProxy name="AtgRenderView"
                     class="vtkPVRenderView"
                     label="Athos Render View"
                     processes="client|renderserver|dataserver"
                     base_proxygroup="views"
                     base_proxyname="RenderView">

      <Hints>
        <StandardViewFrameActions default_actions="on">
          <!-- This is the full list of view frame actions:
            * all views:
            AddSelection
            SubtractSelection
            ToggleSelection
            BackButton
            ForwardButton
            captureViewAction
            * chart view:
            SelectPolygon
            SelectRectangle
            * render view:
            ToggleInteractionMode
            AdjustCamera
            SelectSurfaceCells
            SelectSurfacePoints
            SelectFrustumCells
            SelectFrustumPoints
            SelectPolygonSelectionCells
            SelectPolygonSelectionPoints
            SelectBlock
            InteractiveSelectSurfacePointData
            InteractiveSelectSurfaceCellData
            InteractiveSelectSurfaceCells
            InteractiveSelectSurfacePoints
            HoveringSurfacePoints
            HoveringSurfaceCells
            Grow Selection
            Shrink Selection
            ClearSelection
            Notes:
            - These actions can either be turned OFF by defining a sub-element
              with an attribute "visibility" with value "never"
            - Or they can be first all turned off with an attribute (above)
              named "default_actions" set to "none", and then the single actions
              turned ON with a sub-element with attribute "visibility" anything
              else than "never"
          -->
          <!--
          <SelectSurfaceCells visibility="on" />
          -->
          <SelectSurfacePoints visibility="never" />
          <SelectFrustumPoints visibility="never" />
          <SelectPolygonSelectionPoints visibility="never" />
          <SelectBlock visibility="never" />
          <InteractiveSelectSurfacePointData visibility="never" />
          <InteractiveSelectSurfaceCellData visibility="never" />
          <InteractiveSelectSurfacePoints visibility="never" />
          <HoveringSurfacePoints visibility="never" />
        </StandardViewFrameActions>
      </Hints>
    </RenderViewProxy>
  </ProxyGroup>
</ServerManagerConfiguration>

Note: All the above happens with the “official release” of PV 5.12.0 - and right now I see that there is already an official release 5.12.1: Is there a chance that the above problems are resolved…??

Sounds like the classic widgets issue we are having some times: https://gitlab.kitware.com/paraview/paraview/-/issues/21628

That seems very much plausible!

Another thing that I just observe with version 5.12 that still worked with 5.10 and which is also 3D widgets related: The “polyline source” does not work any more at all:

  • With PV 5.10 I can open some object (like an unstructured grid). Then I add a “polyline filter” in order to interactively generate some polyline in the surrounding of that object. For this reason, I move the mouse pointer to where I want to start the line and press the “1” key - and the first point jumps there. Then the same thing with the end point and “2”. From then I can continue defining more points etc.

  • If I do exactly the same thing with PV 5.12, nothing happens if I press the “1” or “2” keys, nor anything else: There is simply no interactivity at all!

I have trouble to really believe this, so I tried over and over again, but still - nothing else. The reason why I did not believe is the fact that it is such a basic function so I can hardly believe I am the first one who tried that since version 5.12.0 is officially out… ???

Sounds like an issue! Could you open it ? https://gitlab.kitware.com/paraview/paraview/-/issues/

I added an issue: https://gitlab.kitware.com/paraview/paraview/-/issues/22663

I just checked if the finding of @charles.gueunet possibly applies also to my issue as described here: The answer is YES: If I make 100% sure that no node editor is loaded (by temporarily renaming the .so file), the 3D widget behaves as expected also in my own PV 5.12 derived custom application

Can you reproduce the issue only with ParaView without plugins loaded ?

You mean the PolyLine source issue? Yes, that one is done with plain ParaView 5.12.0, downloaded and unzipped on Ubuntu and started. I would not “dare” posting a ParaView issue if it is actually happening only in my derived software! :smiley:

No I mean the widget issue that seems similar to https://gitlab.kitware.com/paraview/paraview/-/issues/21628 ?

Now I checked and yes: With the NodeEditor.so renamed (and double checked that there is really no Node Editor loaded!), I could repeat the above steps and everything was just fine: both render views respected the on/off for the 3D widget correctly.

Then I realized still one thing that looked strange: If in the second view the clipped cone was not visible, but still selected in the pipeline browser, I could turn the 3d widget on and off even without the related object. However, I checked then if I could achieve the same also with PV 5.10 - and yes: It behaves the same way.

Meaning: I would also conclude that the uncorrect behaviour is somehow related with the Node Editor! And without that NE, the new 3d widget (5.12) behaves like the old one (5.10).

I may add that also in my own plugins I had some trouble when I enabled the Node Editor. However this may not be really related - except for the fact that with the Node Editor, certain property widgets exist twice (a second instance in the node editor!) - while certain functions may assume that there is always only one. Actually I had to develop certain “hacks” (that still do not work completely…) such that the property widget code can find out whether it is part of the node editor or not - and then do certain things only in the latter case.