[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