[Paraview] vtkSMProxy saving/restoring

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Wed Nov 19 12:49:17 EST 2008


What state loader are you using? If you use vtkSMPQStateLoader or 
subclass it should not try to reassing IDs.

Utkarsh

Geoff Draper wrote:
> Hello,
> 
> I'm also facing a related problem when I save/restore vtkSMProxy's. The 
> proxy ID is stored in the XML file. So when I reload the proxies, the 
> StateLoader attempts to recreate the proxy with the same ID as before. 
> But because I'm running a new ParaView session, sometimes the saved ID 
> has already been reserved by another object in the current session, 
> causing a collision.
> 
> When this happens, ParaView aborts inside the function:
> vtkClientServerInterpreter::ProcessCommandAssign(const 
> vtkClientServerStream& css, int midx)
> The error message is "Attempt to assign existing ID".
> 
> Has anyone else ever dealt with this before?  Is there a known 
> workaround? Am I completely off base?
> 
> Thank you!
> --Geoff
> 
> On Wed, 19 Nov 2008, Nehme Bilal wrote:
> 
>>
>> Thank you Utkarsh !
>>
>> it works but I have some problems like:
>> - after restoring the proxy, changing some display properties in 
>> Paraview has no effect (like color ...)
>> - only the display properties are saved/restored. (variables in object 
>> inspector "properties" tab are not restored)
>>
>> It's probably the way that I'm casting the source proxy and some staff 
>> like that.
>>
>> I'll try to solve these problems and let you know.
>>
>> thank you !
>>
>>
>> On Wed, 19 Nov 2008 10:20:52 -0500
>> Utkarsh Ayachit <utkarsh.ayachit at kitware.com> wrote:
>>> Here's one way of doing it:
>>>
>>> vtkSMProxyManager* pxm = vtkSMObject::GetProxyManager();
>>> vtkSMProxy *tempProxy = pxm->NewProxy(
>>>   src->GetXMLGroup(),
>>>   src->GetXMLName());
>>> tempProxy->Copy(src);
>>>
>>> ....
>>> src->Copy(tempProxy);
>>>
>>> Utkarsh
>>>
>>> Nehme Bilal wrote:
>>>>
>>>> tempProxy is just a proxy I created using:
>>>> vtkSMProxy tempProxy = vtkSMProxy::New();
>>>>
>>>> I am trying to save/restore all the object properties displayed in 
>>>> the object inspector.
>>>>
>>>> On Wed, 19 Nov 2008 09:30:55 -0500
>>>>  Utkarsh Ayachit <utkarsh.ayachit at kitware.com> wrote:
>>>>> Nehme,
>>>>>
>>>>> What properties are you changing/trying to restore? Is "tempProxy" 
>>>>> of the same type as "src"?
>>>>>
>>>>> Utkarsh
>>>>>
>>>>> Nehme Bilal wrote:
>>>>>> Hello,
>>>>>>
>>>>>> Sorry I missed a few commas in the last message. this is the 
>>>>>> correct one:
>>>>>>
>>>>>> I am looking for a way to save a proxy properties and restore it 
>>>>>> later.
>>>>>> The only way I found is by saving and restoring the state using:
>>>>>> virtual vtkPVXMLElement* SaveState(vtkPVXMLElement* root);
>>>>>> virtual int LoadState(vtkPVXMLElement* element, 
>>>>>> vtkSMStateLoaderBase* loader);
>>>>>>
>>>>>> I don't want to use LoadState because this method create a new 
>>>>>> proxy. I just want to restore all properties to the existing proxy.
>>>>>> There is also a method called Copy (void Copy(vtkSMProxy* src), 
>>>>>> this method will copy all src properties to another proxy:
>>>>>>
>>>>>> //copying properties to tempProxy
>>>>>> tempProxy->Copy(src,0,vtkSMProxy::COPY_PROXY_PROPERTY_VALUES_BY_CLONING); 
>>>>>>
>>>>>> I tried to change some display properties in Paraview and then 
>>>>>> restore using:
>>>>>> src->Copy(tempProxy,0,vtkSMProxy::COPY_PROXY_PROPERTY_VALUES_BY_CLONING); 
>>>>>> src->UpdateVTKObjects();
>>>>>>
>>>>>> but nothing is restored ! why? Is there any other way to do that?
>>>>>> (suppose that I have only on source)
>>>>>>
>>>>>> Thank you
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> ParaView mailing list
>>>>>> ParaView at paraview.org
>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>>
>>>>
>>>>
>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
> _______________________________________________
> ParaView mailing list
> ParaView at paraview.org
> http://www.paraview.org/mailman/listinfo/paraview
> 


More information about the ParaView mailing list