[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