[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