[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