[Paraview] Object Inspector Tabs

Brian Panneton brian.panneton at gmail.com
Tue Sep 13 17:21:59 EDT 2011


I have been away from this for a little while and now I'm coming back to it.


The Summary Panels do look like what I am trying to end up with. So
essentually, would I have to move all the representation controls that I
have on the Properties tab over to the Display tab and then add each of them
to the Summary Tab through the XML?

Thanks,
Brian Panneton

On Tue, Aug 30, 2011 at 9:52 AM, Utkarsh Ayachit <
utkarsh.ayachit at kitware.com> wrote:

> Brian,
>
> We were currently working on a "Summary Panel" mechanism that looks
> very close to what you're trying to do. You might want to take a look:
> http://paraview.org/ParaView3/index.php/Summary_Panels
>
> Utkarsh
>
> On Fri, Aug 12, 2011 at 9:55 AM, Panneton, Brian C USA CTR (US)
> <brian.c.panneton.ctr at mail.mil> wrote:
> > In addition, is it possible to have the panel determine which
> representation
> > is up? The options I am adding really only affect the representation that
> is
> > part of the plugin. Thus, I could disable them when a different
> > representation is up.
> >
> > ________________________________
> > From: Brian Panneton [brian.panneton at gmail.com]
> > Sent: Monday, August 08, 2011 7:54 PM
> > To: Utkarsh Ayachit
> > Cc: Panneton, Brian C USA CTR (US); ParaView
> > Subject: Re: [Paraview] Object Inspector Tabs
> >
> > My plugin would act like the display tab and affect the active view. For
> the
> > case when the source is created I guess it could just be saved. In
> general,
> > the representation options just affect how the data actually looks (size,
> > color, and things like toggles for labels and bar scales).
> >
> > However in this case would I not just be storing it in the
> vtkMultiBlockSet
> > and reading it out when I load the Representation? In that case I can
> just
> > have all the widgets on the panel be part of the reader. The reason I was
> > trying to avoid this is that I am making a time based plugin which will
> be
> > calling the readers Request Data very often, thus I was hoping to avoid
> > copying the data as often.
> >
> > An example would be great if there is another way.
> >
> > Thanks,
> > Brian
> >
> > On Mon, Aug 8, 2011 at 5:29 PM, Utkarsh Ayachit
> > <utkarsh.ayachit at kitware.com> wrote:
> >>
> >> Brian,
> >>
> >> There are a few things to remember about ParaView:
> >> * the source/filter and it's representation proxy are created
> >> separately. The representation is generally not created until after
> >> the first accept.
> >> * a source can have multiple representation proxies (one for each
> >> view). As view are split/closed/visibility changed, these
> >> representation can get created/deleted dynamically. pqPipelineSource
> >> fires signals (representationAdded / representationRemoved) when that
> >> happens.
> >> * there is at most one active view at one time. Sicne there's one
> >> representation proxy per source per view, you'll see that the display
> >> tab is refreshed as one changes the active view.
> >>
> >> Now based on this, you need to decide how your panel is going to behave:
> >> * Does it affect all representations in all views, or does it behave
> >> like the display-tab and affect only the active view.
> >> * When the source if first created, it's not going to have any
> >> representations, how do you want the panel to behave in that case. One
> >> possibility is that the checkbox-value is saved and then when
> >> represenation is added, you change the property based on the value of
> >> the checkbox.
> >>
> >> If you don't mind elaborating on the use-case that you're trying to
> >> solve, I can hack the plugin you sent me to behave accordingly.
> >>
> >> Utkarsh
> >>
> >>
> >>
> >>
> >>
> >> On Mon, Aug 8, 2011 at 1:20 PM, Utkarsh Ayachit
> >> <utkarsh.ayachit at kitware.com> wrote:
> >> > Can you package your code a plugin that you can share and I can try it
> >> > out? It will be easier to figure out the problems when I look at the
> >> > code.
> >> >
> >> > Utkarsh
> >> >
> >> > On Mon, Aug 8, 2011 at 12:57 PM, Panneton, Brian C USA CTR (US)
> >> > <brian.c.panneton.ctr at mail.mil> wrote:
> >> >> I'm still somewhat unsure on how to do this since I now have two
> >> >> ProxyGroups (sources and representations) within one Custom Panel.
> When I
> >> >> do, vtkSMIntVectorProperty* prop =
> >> >>
> dynamic_cast<vtkSMIntVectorProperty*>(this->proxy()->GetProperty("GlyphLegend"));,
> >> >> prop is null. When I do this for widgets that are within the
> ProxyGroup
> >> >> 'source' they work and can be updated as you would expect.
> >> >>
> >> >> My guess is because I should be using a different proxy. I tried to
> do
> >> >> this by using
> this->proxy()->GetProxyManager()->GetProxy("representations",
> >> >> "MyRepresentation") however this just segfaults.
> >> >>
> >> >> Any ideas?
> >> >> ________________________________________
> >> >> From: Utkarsh Ayachit [utkarsh.ayachit at kitware.com]
> >> >> Sent: Friday, August 05, 2011 4:15 PM
> >> >> To: Panneton, Brian C USA CTR (US)
> >> >> Subject: Re: [Paraview] Object Inspector Tabs
> >> >>
> >> >> Is yours a custom panel? In that case you have to manually update the
> >> >> property using the value from the widget (use can use
> >> >> this->propertyManager() to help you with linking widgets to
> >> >> properties).
> >> >>
> >> >> On Fri, Aug 5, 2011 at 12:03 PM, Panneton, Brian C USA CTR (US)
> >> >> <brian.c.panneton.ctr at mail.mil> wrote:
> >> >>> Ah, I had the functions in protected. Once I moved them to public it
> >> >>> worked.
> >> >>>
> >> >>> However, it only called the Set on initial load. It does not call it
> >> >>> after I modify it and press the accept button. In my panel I have
> created a
> >> >>> QObject::connect for the widget and the signal stateChanged(int). I
> catch
> >> >>> the signal and do this->SetModified(), allowing me to hit accept.
> Once I hit
> >> >>> accept, the SetSomeBoolVar(int) never gets called.
> >> >>>
> >> >>> Do I have to manually update the Property throught the proxy? I had
> >> >>> thought it would be taken care of for me.
> >> >>>
> >> >>> Thanks,
> >> >>> Brian
> >> >>>
> >> >>> ________________________________________
> >> >>> From: Utkarsh Ayachit [utkarsh.ayachit at kitware.com]
> >> >>> Sent: Friday, August 05, 2011 11:07 AM
> >> >>> To: Panneton, Brian C USA CTR (US)
> >> >>> Cc: ParaView
> >> >>> Subject: Re: [Paraview] Object Inspector Tabs
> >> >>>
> >> >>> The fact that "SetSomeBoolVar" is not in the *CLientServer.cxx file
> is
> >> >>> the problem. It has nothing to do with the XML, but for some reason
> >> >>> the parser that generates the CLientServer.cxx file decided that the
> >> >>> method is not "wrappable". If you can attach the header file, I may
> be
> >> >>> able to tell what the issue may be.
> >> >>>
> >> >>> Utkarsh
> >> >>>
> >> >>> On Fri, Aug 5, 2011 at 10:50 AM, Panneton, Brian C USA CTR (US)
> >> >>> <brian.c.panneton.ctr at mail.mil> wrote:
> >> >>>> The file was created, however it does not contain "SetSomeBoolVar".
> >> >>>> Does it matter that I have two ProxyGroups in my
> ServerManagerConfiguration:
> >> >>>> sources and representations?
> >> >>>> ________________________________________
> >> >>>> From: Utkarsh Ayachit [utkarsh.ayachit at kitware.com]
> >> >>>> Sent: Friday, August 05, 2011 10:19 AM
> >> >>>> To: Panneton, Brian C USA CTR (US)
> >> >>>> Cc: ParaView
> >> >>>> Subject: Re: [Paraview] Object Inspector Tabs
> >> >>>>
> >> >>>> Try to locate vtkMyRepresentationClientServer.cxx file in the
> binary
> >> >>>> directory. Was that generated? Open and see if it include a
> condition
> >> >>>> for "SetSomeBoolVar" in it.
> >> >>>>
> >> >>>> Utkarsh
> >> >>>>
> >> >>>> On Fri, Aug 5, 2011 at 10:07 AM, Panneton, Brian C USA CTR (US)
> >> >>>> <brian.c.panneton.ctr at mail.mil> wrote:
> >> >>>>> Yes, this is what I have for ADD_PARAVIEW_PLUGIN
> >> >>>>>
> >> >>>>> [code]
> >> >>>>> ADD_PARAVIEW_PLUGIN(MyPlugin "1.0"
> >> >>>>>    SERVER_MANAGER_XML plugin/MyPlugin.xml
> >> >>>>>    SERVER_MANAGER_SOURCES
> >> >>>>>        vtkReader/vtkMyReader.cxx
> >> >>>>>        representations/vtkMyRepresentation.cxx
> >> >>>>>    GUI_RESOURCE_FILES plugin/MyPluginGUI.xml
> >> >>>>>    GUI_INTERFACES ${IFACES}
> >> >>>>>    SOURCES panel/MyReaderPanel.cxx
> >> >>>>>            ${MOC_SRCS} ${IFACE_SRCS}
> >> >>>>>            ${RCS_SOURCES} ${UI_BUILT_SOURCES}
> >> >>>>> )
> >> >>>>> [/code]
> >> >>>>>
> >> >>>>> For my ProxyGroup representations XML I have this:
> >> >>>>>
> >> >>>>> [code]
> >> >>>>> <ProxyGroup name="representations">
> >> >>>>>        <RepresentationProxy name="MyRepresentation"
> >> >>>>>            class="vtkMyRepresentation"
> >> >>>>>            processes="client|renderserver|dataserver"
> >> >>>>>            base_proxygroup="representations"
> >> >>>>>            base_proxyname="SurfaceRepresentation">
> >> >>>>>
> >> >>>>>               <IntVectorProperty
> >> >>>>>                  name="GlyphLegend"
> >> >>>>>                  command="SetSomeBoolVar"
> >> >>>>>                  number_of_elements="1"
> >> >>>>>                  default_values="1">
> >> >>>>>                 <BooleanDomain name="bool"/>
> >> >>>>>              </IntVectorProperty>
> >> >>>>>        </RepresentationProxy>
> >> >>>>>
> >> >>>>>        <Extension name="GeometryRepresentation">
> >> >>>>>            <RepresentationType subproxy="MyRepresentation"
> >> >>>>>                text="My Mapper" subtype="Surface" />
> >> >>>>>
> >> >>>>>            <SubProxy>
> >> >>>>>                <Proxy name="MyRepresentation"
> >> >>>>>                    proxygroup="representations"
> >> >>>>>                    proxyname="MyRepresentation">
> >> >>>>>                </Proxy>
> >> >>>>>                <ShareProperties subproxy="SurfaceRepresentation">
> >> >>>>>                    <Exception name="Input" />
> >> >>>>>                    <Exception name="Visibility" />
> >> >>>>>                    <Exception name="Representation" />
> >> >>>>>                </ShareProperties>
> >> >>>>>            </SubProxy>
> >> >>>>>        </Extension>
> >> >>>>>    </ProxyGroup>
> >> >>>>> [/code]
> >> >>>>>
> >> >>>>>
> >> >>>>> Then in vtkMyRepresentation I have a setter and getter for
> >> >>>>> SetSomeBoolVar(int) and GetSomeBoolVar().
> >> >>>>>
> >> >>>>> I also have a ProxyGroup for sources but I didn't think that would
> >> >>>>> conflict.
> >> >>>>>
> >> >>>>> Thanks,
> >> >>>>> Brian
> >> >>>>>
> >> >>>>>
> >> >>>>> ________________________________________
> >> >>>>> From: Utkarsh Ayachit [utkarsh.ayachit at kitware.com]
> >> >>>>> Sent: Friday, August 05, 2011 9:54 AM
> >> >>>>> To: Panneton, Brian C USA CTR (US)
> >> >>>>> Cc: ParaView
> >> >>>>> Subject: Re: [Paraview] Object Inspector Tabs
> >> >>>>>
> >> >>>>> What's your CMakeLists. txt file? Was vtkMyRepresentation
> specified
> >> >>>>> as
> >> >>>>> SERVER_MANAGER_SOURCES in the ADD_PARAVIEW_PLUGIN call?
> >> >>>>>
> >> >>>>> Utkarsh
> >> >>>>>
> >> >>>>>
> >> >>>>> On Thu, Aug 4, 2011 at 5:00 PM, Panneton, Brian C USA CTR (US)
> >> >>>>> <brian.c.panneton.ctr at mail.mil> wrote:
> >> >>>>>> Okay, so instead of adding tabs like Properties, Display and
> >> >>>>>> Information, I created a Qt TabWidget which possibly does what I
> want but I
> >> >>>>>> am not sure.
> >> >>>>>>
> >> >>>>>> Right now, on my custom panel, I have options that modify the
> input
> >> >>>>>> to my reader. I am looking to also add options to modify part of
> my custom
> >> >>>>>> representation. Am I able to do this from my current custom
> panel? How would
> >> >>>>>> the XML look?
> >> >>>>>>
> >> >>>>>> I tried setting up my SMC as such without luck:
> >> >>>>>> [code]
> >> >>>>>> <ServerManagerConfiguration>
> >> >>>>>>  <ProxyGroup name="representations">
> >> >>>>>>   <RepresentationProxy name ... class="vtkMyRepresentation" ..>
> >> >>>>>>    ... < { properties defined here such as intvectorproperty} >
> ...
> >> >>>>>>    </RepresentationProxy>
> >> >>>>>>  </ProxyGroup>
> >> >>>>>>  <ProxyGroup name="sources">
> >> >>>>>>    <SourceProxy name ... class="vtkMyReader" ..>
> >> >>>>>>    ... < { properties defined here } > ...
> >> >>>>>>    </SourceProxy>
> >> >>>>>>  </ProxyGroup>
> >> >>>>>> </ServerManagerConfiguration>
> >> >>>>>> [/code]
> >> >>>>>>
> >> >>>>>> But this will end up giving me the error even though I have a
> >> >>>>>> vtkMyRepresentation::SetMyProperty(int) in the source:
> >> >>>>>> [code]
> >> >>>>>> vtkPVSessionCore (0x16e71130): Object type: vtkMyRepresentation,
> >> >>>>>> could not find requested method: "SetMyProperty"
> >> >>>>>> or the method was called with incorrect arguments.
> >> >>>>>>
> >> >>>>>> while processing
> >> >>>>>> Message 0 = Invoke
> >> >>>>>>  Argument 0 = vtk_object_pointer {vtkMyRepresentation
> (0x1829dfb0)}
> >> >>>>>>  Argument 1 = string_value {SetMyProperty}
> >> >>>>>>  Argument 2 = int32_value {1}
> >> >>>>>> [/code]
> >> >>>>>>
> >> >>>>>> Any ideas?
> >> >>>>>>
> >> >>>>>> Thanks,
> >> >>>>>> Brian
> >> >>>>>> ________________________________________
> >> >>>>>> From: Utkarsh Ayachit [utkarsh.ayachit at kitware.com]
> >> >>>>>> Sent: Thursday, August 04, 2011 12:09 PM
> >> >>>>>> To: Brian C. Panneton (CONTR)
> >> >>>>>> Cc: paraview at paraview.org
> >> >>>>>> Subject: Re: [Paraview] Object Inspector Tabs
> >> >>>>>>
> >> >>>>>> Nope, this is not possible through plugins yet. You can add a
> >> >>>>>> brand-new dock widget through plugins but not add a new tab to
> the
> >> >>>>>> Object Inspector widget.
> >> >>>>>>
> >> >>>>>> Utkarsh
> >> >>>>>>
> >> >>>>>> On Thu, Aug 4, 2011 at 11:56 AM, Brian C. Panneton (CONTR)
> >> >>>>>> <brian.c.panneton.ctr at us.army.mil> wrote:
> >> >>>>>>> I was wondering if there was an example of how to add a new tab
> to
> >> >>>>>>> the
> >> >>>>>>> Object Inspector for a plugin. I remember being told that it is
> >> >>>>>>> possible,
> >> >>>>>>> but I can't seem to find any examples.
> >> >>>>>>>
> >> >>>>>>> Thanks,
> >> >>>>>>> Brian Panneton
> >> >>>>>>> _______________________________________________
> >> >>>>>>> Powered by www.kitware.com
> >> >>>>>>>
> >> >>>>>>> Visit other Kitware open-source projects at
> >> >>>>>>> http://www.kitware.com/opensource/opensource.html
> >> >>>>>>>
> >> >>>>>>> Please keep messages on-topic and check the ParaView Wiki at:
> >> >>>>>>> http://paraview.org/Wiki/ParaView
> >> >>>>>>>
> >> >>>>>>> Follow this link to subscribe/unsubscribe:
> >> >>>>>>> http://www.paraview.org/mailman/listinfo/paraview
> >> >>>>>>>
> >> >>>>>>
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>
> >> >
> >> _______________________________________________
> >> Powered by www.kitware.com
> >>
> >> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >>
> >> Please keep messages on-topic and check the ParaView Wiki at:
> >> http://paraview.org/Wiki/ParaView
> >>
> >> Follow this link to subscribe/unsubscribe:
> >> http://www.paraview.org/mailman/listinfo/paraview
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110913/c05ca198/attachment-0001.htm>


More information about the ParaView mailing list