[Paraview] vtkSMProxy saving/restoring

Geoff Draper draperg at cs.utah.edu
Wed Nov 19 13:01:07 EST 2008


I'm using vtkSMUndoRedoStateLoader, which is the state loader used by 
pqUndoStack.  My proxies are encapsulated within vtkUndoSet objects when 
they are saved/restored.

--Geoff

On Wed, 19 Nov 2008, Utkarsh Ayachit wrote:

> 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