[Paraview] Object Inspector Tabs

Brian Panneton brian.panneton at gmail.com
Fri Sep 16 15:12:24 EDT 2011


I see that Summary Panels will be release in ParaView 4. Do you have any
idea when the expected release date will be?

On Tue, Sep 13, 2011 at 5:21 PM, Brian Panneton <brian.panneton at gmail.com>wrote:

> 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/20110916/e4a9d2f5/attachment-0001.htm>


More information about the ParaView mailing list