[Paraview] vtkSMProxy saving/restoring

Geoff Draper draperg at cs.utah.edu
Wed Nov 19 12:03:05 EST 2008


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
>


More information about the ParaView mailing list