Hi Utkarsh, Multiple input ports are exactly what I want. But I can't get it to work. I've attached my last XML plugin attempt with different port_index definition.
When I try to use it, I have the following error: /ParaViewVTK/Common/ExecutionModel/vtkAlgorithm.cxx, line 893 vtkPythonProgrammableFilter (0x6c7a510): Attempt to connect input port index 1 for an algorithm with 1 input ports. Should I add something to tell ParaView that this filter has multiple input ports? Should I use a different class than the vtkPythonProgrammableFilter? Regards, -- Loïc 2016-07-15 17:36 GMT+02:00 Utkarsh Ayachit <utkarsh.ayac...@kitware.com>: > Sorry for chiming in late, but here are some things to note: > > * Both Dennis and Cory are talking about multiple connections on the > same input port. This is arguably not too well supported since the > order cannot be determined easily. > * Seems to me you want multiple input ports, each with a single > connection. That's supported. Just not by the Python Filter Generator > Script. Once you have the XML for the filter, you can indeed just add > another <InputProperty /> tag to it as follows (note the "port_index" > attribute): > > <InputProperty command="SetInputConnection" > name="Input2" > port_index="2"> > <!-- fill with relevant domain information --> > </InputProperty> > > Then, your python filter code can access data on each input port as: > > input1 = self.GetInputDataObject(0, 0) > input2 = self.GetInputDataObject(1, 0) > > Here there's no confusion which data is on which input port. > > Hope that helps, > Utkarsh > > > On Fri, Jul 15, 2016 at 7:44 AM, Dennis Conklin > <dennis_conk...@goodyear.com> wrote: > > LB, > > > > > > > > Yes, it is troublesome to not be able to tell which input is which inside > > the Programmable filter. Something I have done in the past is > > differentiate them inside the filter. I have tested for element type to > > tell them apart, for example. Something else I have heard of but have > not > > had to use is assigning a unique variable to one input and then testing > for > > that inside the filter to determine which input is which. > > > > > > > > None of this may address your general problem, but here’s hoping. > > > > > > > > Dennis > > > > > > _______________________________________________ > > 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 > > > > Search the list archives at: http://markmail.org/search/?q=ParaView > > > > Follow this link to subscribe/unsubscribe: > > http://public.kitware.com/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 > > Search the list archives at: http://markmail.org/search/?q=ParaView > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/paraview >
<ServerManagerConfiguration> <ProxyGroup name="filters"> <SourceProxy name="TestMuliPort" class="vtkPythonProgrammableFilter" label="estMuliPort SFE"> <InputProperty name="Source" command="SetInputConnection" port_index="0"> <ProxyGroupDomain name="groups"> <Group name="sources"/> <Group name="filters"/> </ProxyGroupDomain> <DataTypeDomain name="input_type"> <DataType value="vtkDataSet"/> </DataTypeDomain> </InputProperty> <InputProperty name="Target" command="SetInputConnection" port_index="1"> <ProxyGroupDomain name="groups"> <Group name="sources"/> <Group name="filters"/> </ProxyGroupDomain> <DataTypeDomain name="input_type"> <DataType value="vtkDataSet"/> </DataTypeDomain> </InputProperty> <IntVectorProperty command="SetOutputDataSetType" default_values="8" name="OutputDataSetType" number_of_elements="1" panel_visibility="never"> </IntVectorProperty> <StringVectorProperty name="Script" command="SetScript" number_of_elements="1" default_values="print self.GetInputDataObject(0, 0)
print self.GetInputDataObject(1, 0)
" panel_visibility="advanced"> <Hints> <Widget type="multi_line"/> </Hints> </StringVectorProperty> </SourceProxy> </ProxyGroup> </ServerManagerConfiguration>
_______________________________________________ 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 Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/paraview