[Paraview-developers] bug in pqPipelineFilter

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Tue Jan 30 08:26:34 EST 2018


Maxim,

BTW, this has been changed in "master", see
https://gitlab.kitware.com/paraview/paraview/merge_requests/2061

Utkarsh

On Mon, Jan 29, 2018 at 4:57 PM, Maxim Torgonskiy <kriolog at gmail.com> wrote:
> Hi Utkarsh,
>
>> There's was never meant to be any order matching between the VTK port
>> numbers and input ports provided by pqPipelineFilter... If there's a
>> convincing reason to preserve it, we can surely fix it, however.
> I finally found one. :) When I wrap my filter in a Paraview Custom filter,
> if I use a default wizard's name 'Input' it changes the input name and I
> can't search by name with pqPipelineFilter anymore.
>
> Regards,
> Maxim
>
> 2017-08-04 9:52 GMT-04:00 Maxim Torgonskiy <kriolog at gmail.com>:
>>
>> Sounds convincing, I'll switch to named access. Thank you for the
>> clarification!
>>
>> Le 3 août 2017 11:14, "Utkarsh Ayachit" <utkarsh.ayachit at kitware.com> a
>> écrit :
>>
>> While the mismatch may be confusing, ParaView deliberately opted for
>> "named" access to the inputs since the proxy mechanism does provide ability
>> to hide/ignore/change input ports. For example, proxy may not even have
>> input properties for all input ports if some of them are optional.
>>
>> On Wed, Aug 2, 2017 at 6:19 PM, Maxim Torgonskiy <kriolog at gmail.com>
>> wrote:
>>>
>>> Ok, I see. I just supposed that the order of ports is the same. Before,
>>> in my paraview plugin I used everywhere access by index (for both VTK and
>>> pqPipeline* parts) and now I should mix it with access by input name which
>>> is less consistent.
>>>
>>> Thanks,
>>> Maxim
>>>
>>>
>>>
>>> 2017-08-02 17:39 GMT-04:00 Utkarsh Ayachit <utkarsh.ayachit at kitware.com>:
>>>>
>>>> There's was never meant to be any order matching between the VTK port
>>>> numbers and input ports provided by pqPipelineFilter. The latter indeed used
>>>> a map internally using the property  name as the key for the map (hence the
>>>> change in order).
>>>>
>>>> If there's a convincing reason to preserve it, we can surely fix it,
>>>> however.
>>>>
>>>> Utkarsh
>>>>
>>>> On Wed, Aug 2, 2017 at 4:08 PM, Maxim Torgonskiy <kriolog at gmail.com>
>>>> wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> It seems that there's a bug in pqPipelineFilter::getInputPortName(int).
>>>>> I have a vtk filter which has 3 inputs and when I try to access the inputs
>>>>> with pqPipelineFilter the function getInputPortName doesn't respect their
>>>>> order:
>>>>>
>>>>> .xml :
>>>>> <?xml version="1.0"?>
>>>>> <ServerManagerConfiguration>
>>>>>   <ProxyGroup name="filters">
>>>>>     <SourceProxy class="Dummy" name="Dummy">
>>>>>       <InputProperty
>>>>>         name="Zero"
>>>>>         port_index="0"
>>>>>         command="SetInputConnection">
>>>>>         <ProxyGroupDomain name="groups">
>>>>>           <Group name="sources"/>
>>>>>           <Group name="filters"/>
>>>>>         </ProxyGroupDomain>
>>>>>         <DataTypeDomain name="input_type">
>>>>>           <DataType value="vtkPolyData"/>
>>>>>         </DataTypeDomain>
>>>>>       </InputProperty>
>>>>>       <InputProperty
>>>>>         name="One"
>>>>>         port_index="1"
>>>>>         optional="1"
>>>>>         command="SetInputConnection">
>>>>>         <ProxyGroupDomain name="groups">
>>>>>           <Group name="sources"/>
>>>>>           <Group name="filters"/>
>>>>>         </ProxyGroupDomain>
>>>>>         <DataTypeDomain name="input_type">
>>>>>           <DataType value="vtkPointSet"/>
>>>>>         </DataTypeDomain>
>>>>>       </InputProperty>
>>>>>       <InputProperty
>>>>>         name="Two"
>>>>>         port_index="2"
>>>>>         optional="1"
>>>>>         command="SetInputConnection">
>>>>>         <ProxyGroupDomain name="groups">
>>>>>           <Group name="sources"/>
>>>>>           <Group name="filters"/>
>>>>>         </ProxyGroupDomain>
>>>>>         <DataTypeDomain name="input_type">
>>>>>           <DataType value="vtkPolyData"/>
>>>>>         </DataTypeDomain>
>>>>>       </InputProperty>
>>>>>     </SourceProxy>
>>>>>   </ProxyGroup>
>>>>> </ServerManagerConfiguration>
>>>>>
>>>>> .cxx :
>>>>> int Dummy::RequestData(
>>>>>   vtkInformation *vtkNotUsed(info),
>>>>>   vtkInformationVector **inputVector,
>>>>>   vtkInformationVector *outputVector)
>>>>> {
>>>>>   pqPipelineFilter* self_pqfilter =
>>>>> qobject_cast<pqPipelineFilter*>(pqActiveObjects::instance().activeSource());
>>>>>   Q_ASSERT(self_pqfilter);
>>>>>
>>>>>   for(int i = 0; i < GetNumberOfInputPorts(); ++i)
>>>>>     qDebug() << self_pqfilter->getInputPortName(i);
>>>>>
>>>>>   return 1;
>>>>> }
>>>>>
>>>>> output :
>>>>> "One"
>>>>> "Two"
>>>>> "Zero"
>>>>>
>>>>>
>>>>> A minimal reproducible example is attached.
>>>>>
>>>>> Regards,
>>>>> Maxim
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Search the list archives at:
>>>>> http://markmail.org/search/?q=Paraview-developers
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>>>
>>>>
>>>
>>
>>
>


More information about the Paraview-developers mailing list